/* ELVI – layouty 38/39; selektory používajú iba triedy odvodeného prototypu. */
.elvi-prototype{padding-top:150px!important;padding-bottom:60px!important}.elvi-prototype h1{font-size:40px;line-height:1.2}.elvi-prototype h2,.elvi-prototype h2 a{font-size:26px;line-height:1.3}.elvi-prototype img{max-width:100%;height:auto}@media(max-width:575px){.elvi-prototype{padding-top:110px!important}.elvi-prototype h1{font-size:28px}.elvi-prototype h2,.elvi-prototype h2 a{font-size:22px}}
.elvi-prototype .elvi-public-field{margin:0 0 10px}.elvi-prototype .elvi-public-business_status,.elvi-prototype .elvi-public-transaction,.elvi-prototype .elvi-public-property_type{font-weight:600}.elvi-prototype .elvi-public-price{font-size:1.25rem;font-weight:700}.elvi-prototype .elvi-public-price::before{content:"Cena: "}.elvi-prototype .elvi-public-currency::before{content:"Mena: "}.elvi-prototype .elvi-public-units::before{content:"Jednotka: "}.elvi-prototype .elvi-public-usable_area::before{content:"Úžitková plocha: "}.elvi-prototype .elvi-public-usable_area::after,.elvi-prototype .elvi-public-building_area::after,.elvi-prototype .elvi-public-land_area::after{content:" m²"}.elvi-prototype .elvi-public-building_area::before{content:"Zastavaná plocha: "}.elvi-prototype .elvi-public-land_area::before{content:"Plocha pozemku: "}.elvi-prototype .elvi-public-rooms_count::before{content:"Izby: "}.elvi-prototype .elvi-public-floor::before{content:"Podlažie: "}.elvi-prototype .elvi-public-agent::before{content:"Maklér: "}.elvi-prototype .elvi-public-public_map{margin-top:24px;height:320px!important}
.elvi-listing-contact-form{margin-top:20px}.elvi-listing-contact-form .sppb-btn .fas{margin-left:5px}.elvi-detail-price-agreement{font-weight:700}.elvi-detail-video{margin:24px 0}.elvi-detail-public-map{display:block;height:320px!important;min-height:320px!important}
.elvi-section-heading{margin-top:52px}.elvi-feature{display:inline-flex;flex-direction:column;vertical-align:top;box-sizing:border-box;width:calc(33.333% - 14px);min-height:74px;margin:0 18px 18px 0!important;padding:14px 16px;border:1px solid #ececf0;border-radius:4px;font-weight:600}.elvi-feature::before{display:block;margin-bottom:4px;color:#8c8c95;font-size:12px;font-weight:500}.elvi-feature-type::before{content:"Typ"}.elvi-feature-transaction::before{content:"Ponuka"}.elvi-feature-status::before{content:"Stav"}.elvi-feature-area::before{content:"Úžitková plocha"}.elvi-feature-area::after{content:" m²"}.elvi-feature-rooms::before{content:"Izby"}.elvi-detail-floor-plans .sppb-gallery{display:block}.elvi-detail-floor-plans .sppb-gallery li{width:100%;margin:0}.elvi-detail-floor-plans .sppb-gallery img{display:block;width:100%!important;height:auto!important;max-width:100%;object-fit:contain}.elvi-amenity-grid .sppb-dynamic-content-collection__item{display:flex;gap:10px}.elvi-amenity-grid .sppb-dynamic-content-text{display:inline-flex;align-items:center;gap:10px}.elvi-amenity-icon{color:#bf9b30}
.elvi-listing-cards .sppb-dynamic-content-image{margin-bottom:20px}.elvi-listing-cards .elvi-card-transaction,.elvi-listing-cards .elvi-card-status{display:inline-block;margin:0 8px 12px 0!important;font-size:12px;font-weight:700;text-transform:uppercase}.elvi-listing-cards .elvi-card-status{color:#777}.elvi-listing-cards .elvi-card-title{margin:0 0 10px!important}.elvi-listing-cards .elvi-card-location{color:#777}.elvi-listing-cards .elvi-card-area,.elvi-listing-cards .elvi-card-rooms{display:inline-block;margin-right:14px!important}.elvi-listing-cards .elvi-card-area::after{content:" m²"}.elvi-listing-cards .elvi-card-rooms::after{content:" izby"}.elvi-listing-cards .elvi-card-price,.elvi-listing-cards .elvi-card-price-agreement{margin-top:10px!important;font-size:20px;font-weight:700}.elvi-listing-cards .elvi-card-price::after{content:" EUR"}.elvi-demo-derived-cards .elvi-card-price-value::after{content:""!important}.elvi-demo-derived-cards .elvi-card-price-agreement{display:none}.elvi-demo-derived-cards .elvi-demo-badge-transaction{position:absolute;background:#302a3b;padding:8px 12px;border-radius:30px;color:#fff;top:11px;left:15px}.elvi-demo-derived-cards .elvi-demo-badge-status{position:absolute;background:#b88d2b;padding:8px 12px;border-radius:30px;color:#fff;top:49px;left:15px;font-size:12px;font-weight:700;text-transform:uppercase}@media(max-width:767px){.elvi-feature{width:calc(50% - 10px);margin-right:10px!important}.elvi-section-heading{margin-top:38px}}

/* Zoznam 39: pôvodná demo typografia, prehľadný filter a štyri verejné údaje v karte. */
.elvi-list-page .elvi-list-hero { padding: 215px 0 56px; }
.elvi-list-page .elvi-list-hero .sp-page-title-sub-heading { max-width: 75%; }
.elvi-list-page .elvi-prototype-filters { margin-bottom: 48px; }
.elvi-search-form { padding: 28px; background: #fff; border: 1px solid #e8e8e8; border-radius: 16px; }
.elvi-prototype-filters > [hidden] { display: none !important; }
.elvi-search-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; }
.elvi-search-field { min-width: 0; }
.elvi-search-field > label { display: block; font-size: 14px; font-weight: 500; line-height: 1.5; margin-bottom: 10px; color: #302a3b; }
.elvi-search-field-77 { grid-area: 1 / 1; }
.elvi-search-field-101 { grid-area: 1 / 2; }
.elvi-search-field-233 { grid-area: 1 / 3; }
.elvi-search-field-79 { grid-area: 2 / 1; }
.elvi-search-field-87 { grid-area: 2 / 2; }
.elvi-search-field-90 { grid-area: 2 / 3; }
.elvi-search-field select,
.elvi-search-bound { background-color: #f5f5f5; border: 1px solid #ececf0; border-radius: 8px; color: #302a3b; }
.elvi-search-field select {
  display: block; width: 100%; height: 56px; padding: 0 40px 0 16px; font: inherit; font-size: 15px;
  appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23302a3b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-position: right 16px center; background-repeat: no-repeat;
  text-overflow: ellipsis;
}
.elvi-search-field select:hover, .elvi-search-bound:hover { border-color: #b8bbc2; }
.elvi-search-field select:focus-visible, .elvi-search-bound:focus-within { outline: 2px solid #302a3b; outline-offset: 3px; }
.elvi-search-range-inputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.elvi-search-bound { display: flex; align-items: center; gap: 8px; min-width: 0; margin: 0; padding: 0 12px; height: 56px; }
.elvi-search-bound > span { font-size: 12px; color: #686773; }
.elvi-search-bound input { min-width: 0; width: 100%; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0; font: inherit; font-size: 14px; color: #302a3b; }
.elvi-search-bound input:focus { outline: none; }
.elvi-search-range-track {
  position: relative; height: 36px; margin: 10px 10px 0;
  --range-start: 0%; --range-end: 100%;
}
.elvi-search-range-track::before { content: ""; position: absolute; inset: 16px 0 auto; height: 4px; border-radius: 4px; background: linear-gradient(to right, #dedee3 0 var(--range-start), #302a3b var(--range-start) var(--range-end), #dedee3 var(--range-end) 100%); }
.elvi-search-range-track input[type="range"] { position: absolute; inset: 0; width: 100%; height: 36px; margin: 0; padding: 0; appearance: none; background: transparent; pointer-events: none; border: 0; }
.elvi-search-range-track input[type="range"]::-webkit-slider-thumb { appearance: none; pointer-events: auto; cursor: grab; height: 20px; width: 20px; border-radius: 50%; background: #302a3b; border: 3px solid #fff; box-shadow: 0 0 0 1px #302a3b; }
.elvi-search-range-track input[type="range"]::-moz-range-thumb { pointer-events: auto; cursor: grab; height: 14px; width: 14px; border-radius: 50%; background: #302a3b; border: 3px solid #fff; box-shadow: 0 0 0 1px #302a3b; }
.elvi-search-range-track input[type="range"]:focus-visible { outline: 2px solid #302a3b; outline-offset: 4px; border-radius: 6px; }
.elvi-search-range-track input[type="range"]:focus { z-index: 1; }
.elvi-search-actions { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 28px; }
.elvi-search-reset { font-size: 14px; color: #686773; text-decoration: underline; text-underline-offset: 4px; }
.elvi-search-submit { display: inline-flex; justify-content: center; align-items: center; min-height: 52px; padding: 12px 28px; border: 1px solid #302a3b; border-radius: 8px; background: #302a3b; color: #fff; font: inherit; font-weight: 500; cursor: pointer; transition: background .2s; }
.elvi-search-submit:hover { background: #19151f; }
.elvi-search-submit:focus-visible, .elvi-search-reset:focus-visible, .elvi-card-detail-button:focus-visible { outline: 2px solid #302a3b; outline-offset: 4px; }
.elvi-list-design-cards > .sppb-dynamic-content-collection__item { display: flex; flex-direction: column; min-width: 0; }
.elvi-list-design-cards > .sppb-dynamic-content-collection__item > .sppb-addon-wrapper:last-child { margin-top: auto; width: 100%; }
.elvi-list-design-cards [hidden] { display: none !important; }
.elvi-list-design-cards .sppb-dynamic-content-image { margin-bottom: 0; }
.elvi-list-design-cards .elvi-photo-missing { display: flex; align-items: center; justify-content: center; aspect-ratio: 4/3; border-radius: 8px; background: #f2f2f4; padding: 24px; }
.elvi-list-design-cards .elvi-photo-placeholder { color: #686773; font-size: 13px; text-align: center; }
.elvi-list-design-cards .elvi-card-locality { display: flex !important; align-items: center; flex-wrap: wrap; gap: 4px; margin: 20px 0 15px; min-height: 18px; color: rgba(48,42,59,.6); font-size: 12px; }
.elvi-list-design-cards .elvi-card-locality .sppb-dynamic-content-text { margin: 0; color: inherit; font-size: inherit; }
.elvi-list-design-cards .property-list-title { line-height: 1.2 !important; }
.elvi-list-design-cards .elvi-card-facts { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 12px; padding: 20px 0; border-top: 1px solid #ececf0; }
.elvi-list-design-cards .elvi-card-fact { min-width: 0; text-align: center; }
.elvi-list-design-cards .elvi-card-fact-value { display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 0; font-size: 14px; font-weight: 500; line-height: 1.3; }
.elvi-list-design-cards .elvi-card-fact-value i { color: #302a3b; font-size: 20px; }
.elvi-list-design-cards .elvi-fact-value { overflow-wrap: anywhere; }
.elvi-list-design-cards .elvi-card-fact-label { margin-top: 6px; font-size: 10px; line-height: 1.4; color: #686773; }
.elvi-list-design-cards .elvi-card-fact-label p { margin: 0; }
.elvi-list-design-cards .elvi-card-footer { display: flex !important; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid #ececf0; }
.elvi-list-design-cards .elvi-card-footer .property-list-price { margin: 0; }
.elvi-list-design-cards .elvi-card-detail-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; border-radius: 8px; background: #c5ee88; color: #191919; font-size: 13px; font-weight: 500; }
.elvi-list-design-cards .elvi-card-detail-button:hover { background: #b4e171; }
/* Oddeliť stránkovanie od kariet a zachovať presný zápis slovenských tlačidiel. */
.elvi-list-page .sppb-dynamic-content-collection__pagination { margin-top: 40px; }
.elvi-list-page [data-sppb-load-more-button] { min-height: 52px; padding: 12px 28px !important; border: 1px solid #302a3b; border-radius: 8px; background: #302a3b; color: #fff; font: inherit; font-weight: 500; text-transform: none !important; }
.elvi-list-page [data-sppb-load-more-button]:hover { background: #19151f; color: #fff; }
.elvi-list-page [data-sppb-load-more-button]:focus-visible { outline: 2px solid #302a3b; outline-offset: 4px; }
.elvi-list-page button, .elvi-list-page .sppb-btn, .elvi-list-page .elvi-card-detail-button { text-transform: none !important; }
@media (max-width: 1199px) {
  .elvi-list-page .elvi-list-hero { padding-top: 170px; }
  .elvi-list-page .elvi-list-hero .sp-page-title-sub-heading { max-width: 80%; }
}
@media (max-width: 991px) {
  .elvi-search-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elvi-search-field-77 { grid-area: 1 / 1; } .elvi-search-field-101 { grid-area: 1 / 2; }
  .elvi-search-field-233 { grid-area: 2 / 1; } .elvi-search-field-90 { grid-area: 2 / 2; }
  .elvi-search-field-79 { grid-area: 3 / 1; } .elvi-search-field-87 { grid-area: 3 / 2; }
}
@media (max-width: 767px) {
  .elvi-list-page .elvi-list-hero { padding: 150px 0 36px; }
  .elvi-list-page .elvi-list-hero .sp-page-title-sub-heading { max-width: 100%; }
  .elvi-search-form { padding: 20px; }
  .elvi-list-page .elvi-prototype-filters { margin-bottom: 32px; }
}
@media (max-width: 575px) {
  .elvi-search-fields { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .elvi-search-fields .elvi-search-field { grid-area: auto; }
  .elvi-search-field-90 { order: 1; } .elvi-search-field-79 { order: 2; } .elvi-search-field-87 { order: 3; }
  .elvi-search-actions { flex-direction: column-reverse; align-items: stretch; gap: 18px; }
  .elvi-search-reset { text-align: center; }
}

/* Detail 38: retain the demo composition and give public facts one responsive grid. */
.elvi-detail-page [hidden] { display: none !important; }
.elvi-detail-page .elvi-section-heading { margin-top: 0; }
.elvi-detail-page .elvi-detail-description { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.elvi-detail-page .elvi-detail-description p:last-child { margin-bottom: 0; }
.elvi-detail-page .elvi-detail-facts { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: stretch; }
.elvi-detail-page .elvi-detail-facts > .sppb-addon-wrapper { min-width: 0; height: 100%; }
.elvi-detail-page .elvi-feature { display: flex; width: 100%; height: 100%; margin: 0 !important; padding: 18px; border: 1px solid #e8e8e8; border-radius: 12px; background: #f8f8f8; font-size: 15px; line-height: 1.45; overflow-wrap: anywhere; }
.elvi-detail-page .elvi-feature::before { margin-bottom: 8px; font-size: 12px; color: #686773; }
/* Keep the area and its unit on the same line inside the fact card. */
.elvi-detail-page .elvi-feature-area::after { content: none; }
.elvi-detail-page .elvi-amenity-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px !important; }
.elvi-detail-page .elvi-amenity-grid > .sppb-dynamic-content-collection__item { align-items: center; min-width: 0; gap: 10px; }
.elvi-detail-page .elvi-detail-amenity { margin: 0; font-size: 14px; line-height: 1.5; }
.elvi-detail-page .elvi-amenity-icon { color: #302a3b; }
.elvi-detail-page .elvi-detail-floor-plans img { border: 1px solid #e8e8e8; border-radius: 12px; }
.elvi-detail-page .elvi-detail-video { margin: 0; overflow: hidden; border-radius: 12px; }
.elvi-detail-page .elvi-detail-public-map { border-radius: 12px; overflow: hidden; }
.elvi-detail-page .elvi-detail-contact-card { padding: 24px !important; background: #fff !important; border: 1px solid #e8e8e8; border-radius: 16px !important; }
.elvi-detail-page .elvi-listing-contact-form { margin-top: 0; }
.elvi-detail-page .elvi-listing-contact-form input:not([type="checkbox"]):not([type="hidden"]), .elvi-detail-page .elvi-listing-contact-form textarea { border: 1px solid #e8e8e8; border-radius: 8px; background: #f5f5f5; font-size: 15px; }
.elvi-detail-page .elvi-listing-contact-form textarea { min-height: 120px; }
.elvi-detail-page .elvi-listing-contact-form .sppb-btn { min-height: 48px; border-radius: 8px; background: #302a3b; color: #fff; text-transform: none !important; }
.elvi-detail-page .elvi-listing-contact-form .sppb-btn:hover { background: #19151f; }
.elvi-detail-page .elvi-listing-contact-form .sppb-btn:focus-visible { outline: 2px solid #302a3b; outline-offset: 4px; }
@media (max-width: 991px) {
  .elvi-detail-page .elvi-detail-sidebar { margin-top: 40px; }
}
@media (max-width: 575px) {
  .elvi-detail-page .elvi-detail-facts, .elvi-detail-page .elvi-amenity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .elvi-detail-page .elvi-feature { padding: 14px; }
  .elvi-detail-page .elvi-detail-contact-card { padding: 20px !important; }
}

/* Isolated phase-3 agent pages; menu and existing company pages remain unchanged. */
.elvi-agents-index-page .elvi-agents-list .sppb-dynamic-content-collection__items { align-items: stretch; }
.elvi-agents-index-page .elvi-agents-list .sppb-dynamic-content-collection__item { height: 100%; }
.elvi-agents-index-page .elvi-agent-card-info { display: flex; flex-direction: column; gap: 6px; }
.elvi-agents-index-page .elvi-agent-card-name { margin-bottom: 6px; }
.elvi-agents-index-page .elvi-agent-card-phone,
.elvi-agents-index-page .elvi-agent-card-email { margin: 0; overflow-wrap: anywhere; }
.elvi-agent-detail-page .elvi-agent-profile-media,
.elvi-agent-detail-page .elvi-agent-profile-info { min-width: 0; }
.elvi-agent-detail-page .elvi-agent-profile-portrait img { width: 100%; border-radius: 16px; object-fit: cover; }
.elvi-agent-detail-page .elvi-agent-profile-name { margin-bottom: 12px; }
.elvi-agent-detail-page .elvi-agent-profile-office { margin-bottom: 24px; color: #686773; }
.elvi-agent-detail-page .elvi-agent-profile-phone,
.elvi-agent-detail-page .elvi-agent-profile-email { margin: 0 0 8px; overflow-wrap: anywhere; }
.elvi-agent-detail-page .elvi-agent-profile-copy { margin-top: 28px; line-height: 1.8; }
