:root {
  --primary: #E31E25;
  --white: #fff;
  --black: #000;
  --ltn__paragraph-color: #5C727D;
  --table-tr-1: #e7e5e0;
  --ltn__secondary-color: #D02C35;
  --color-text: #666666;
	
  --color-green: #489948 !important; 
  --color-orange: #ff9800 !important;
  --color-red: #D02C35 !important;
	
  --color-green-fill: rgba(0, 128, 0, 0.3) !important; 
  --color-red-fill: rgba(204, 0, 0, 0.3) !important; 
  --color-orange-fill: rgba(255, 165, 0, 0.3) !important; 
	
  --color-green-stroke: rgba(0, 128, 0, 1) !important; 
  --color-red-stroke: rgba(204, 0, 0, 1) !important; 
  --color-orange-stroke: rgba(255, 165, 0, 1) !important;
}

/* DODATKOWE */
.price {min-height: 24px;}

table.dataTable > tbody > tr {font-size: 0.85rem;}

table .readmore-btn{padding: 5px 20px 5px 0; font-size: inherit;}
table .readmore-btn::after{width: 25px; height: 25px;}

.features-box.box-2 .features-box-image img{
	aspect-ratio: 1 / 1.051;
	filter: brightness(100%);
}

.features-box.box-1 .features-box-image::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient( to bottom, rgba(0,0,0,0.8) 10%, rgba(0,0,0,0) 50% )
}


.features-box.box-2 .features-box-image::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.why-choose-item:hover .service-btn a {
  background: var(--beige-color );
}

.service-header .icon-box::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  background: var(--beige-color);
  border-radius: 50%;
  width: 36px;
  height: 36px;
}
.micon .icon-box::before{
  content: '';
  position: absolute;
  background: var(--beige-color);
  border-radius: 50%;
  width: 36px;
  height: 36px;	
}


.service-header .icon-box img, .micon .icon-box img {
  position: relative;
  max-width: 60px;
  z-index: 1;
}

a figure {
  display: block;
  border-radius: 20px;
}

#dzial ul{
  line-height: 1.4;
  font-size: 1.1rem;
}

#dzial ul li{padding-bottom: 10px;}

@media only screen and (min-width: 768px){
.page-header{
    background-size: contain !important;

	}
}

/* ================== TOOLTIPS ================== */

.hidden {display: none !important;}	
.imagemapper-polygon {
    pointer-events: all;
}
/* Usuń domyślny outline fokusu na linkach/polygonach w SVG mapy */
.imagemapper-svg a,
.imagemapper-svg polygon,
.imagemapper-svg path {
    outline: none;
    -webkit-tap-highlight-color: transparent; /* usuwa "flash" na mobile/Chrome */
}

.imagemapper-svg a:focus,
.imagemapper-svg a:active,
.imagemapper-svg polygon:focus,
.imagemapper-svg polygon:active {
    outline: none;
}

/* Niektóre wersje Chrome rysują outline też na elemencie nadrzędnym <svg> */
.imagemapper-svg:focus,
.imagemapper-svg *:focus {
    outline: none !important;
}

.imagemapper-polygon.Wolne{fill: var(--color-green-fill);  stroke: var(--color-green-stroke);}
.imagemapper-polygon.Zarezerwowane{fill: var(--color-orange-fill);  stroke: var(--color-orange-stroke);}
.imagemapper-polygon.Sprzedane{fill: var(--color-red-fill);  stroke: var(--color-red-stroke);}


.apartment-tooltip {
    padding: 0;
    min-width: 250px;
	color: #fff !important;
}

.apt-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 10px;
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 10px;
}

.apt-header h4 {
    margin: 0;
    font-size: 16px;
    color: #fff;
}

.apt-status {
    padding: 4px 9px;
    font-size: 11px;
    font-weight: bold;
    text-transform: uppercase;
}

.apt-status.Wolne {
    background: var(--color-green);
    color: var(--color-white);
}

.apt-status.Zarezerwowane {
    background:  var(--color-orange);;
    color: white;
}

.apt-status.Sprzedane {
    background: var(--color-red);
    color: var(--color-white);
}

.apt-details {
    margin: 10px 0;
}

.apt-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 0;
    font-size: 14px;
    color: #fff;
}

.apt-icon {
    font-size: 16px;
}

.apt-footer {
    padding-top: 10px;
    border-top: 1px solid #fff;
    margin-top: 10px;
}

.apt-link {
    display: inline-block;
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: bold;
}

.apt-link:hover {
    text-decoration: underline;
}
	
.floor-tooltip {
    padding: 0;
    max-width: 320px;
}

.floor-header {
    background: var(--primary);
    color: var(--color-white);
    padding: 12px 15px;
    margin: -8px -8px 12px -8px;
}

.floor-header h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}

.floor-details {
    padding: 0 8px;
}

.floor-stats {
    color: var(--color-white);
    margin-bottom: 12px;
}

.stat-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
}

.stat-label {
    color: var(--color-white);
    font-size: 14px;
}

.stat-value {
    color: var(--color-white);
    font-size: 18px;
    font-weight: bold;
	padding-left: 10px;
}

.floor-footer {
    padding: 0 8px 8px 8px;
}

.floor-link {
    display: block;
    color: #007bff;
    text-align: center;
    padding: 10px 15px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    transition: background 0.3s ease;
}

.floor-link:hover {
    background: #0056b3;
    text-decoration: none;
    color: var(--color-white);
}	


/* ==================== POP-UP =================== */

#popupModalCheck{border-radius: 0 !important; border: 1px solid black;}
.modal-dialog{max-width: 1200px !important; min-width: 200px !important; display:table !important;}
.modal-dialog img {display: block !important; max-height: 80vh !important; max-width: 100% !important;}
.modal-content {border-radius: 0 !important; }
.modal-footer:before,
.modal-footer:after {
  display: table;
  content: " ";
}
.modal-footer:after {
  clear: both;
}

@media only screen and (min-width: 992px) {
  .modal-lg {width: 900px;}
}

@media only screen and (min-width: 768px) {
  .modal-dialog {margin: 20px auto; display: table !important;}
  .xmodal-dialog img {display: block !important; height: 100% !important; max-height: 80vh !important; max-width: 100% !important;}
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
  }
  .modal-sm {width: 300px;}
}
@media only screen and (max-width: 768px) {
  .modal-dialog {margin: 20px auto; display: table !important;}
}

/* ================= Suwaki - noUISlider =============== */

    .slider-styled {
      height: 10px;
      margin: 0 auto;
      border-radius: 0;
    }
    .slider-styled .noUi-connect {
      background: var(--accent-secondary-color);
    }
    .slider-styled .noUi-handle {
      height: 18px;
      width: 18px;
      top: -5px;
      right: -9px;
      border-radius: 0;
    }

/*==================== Tabele ==================== */

.table > :not(caption) > * > * {
  background-color: transparent !important;
}

.table th, .table td {
    padding: 10px 10px;
    text-align: center;
    border-style: solid;
    vertical-align: middle;
	border-width: 0 1px 1px 0;
	border-color: rgba(0, 0, 0, .08);
}
.table th {background-color: var(--table-tr-1) !important; color: var(--black); padding: 20px 10px; text-align: center !important}
.table tr:nth-child(2n) {background-color: var(--table-tr-1) !important;}

.table tr.Sprzedane{color: #a5a5a5}

.table .pietro, .cena{white-space:nowrap;}
.table .status_Wolne, .table .status_Zarezerwowane, .table .status_Sprzedane, 
.status_Wolne, .status_Zarezerwowane, .status_Sprzedane{color: #fff !important; text-transform: uppercase !important}
.table .status_Wolne, .status_Wolne{background-color: var(--color-green) !important}
.table .status_Zarezerwowane, .status_Zarezerwowane{background-color: var(--color-orange) !important}
.table .status_Sprzedane, .status_Sprzedane{background-color: var(--color-red) !important}

.table#mieszkania {width: 100%;}

/* ================= Datatable ===================== */

table.dataTable thead > tr > th.sorting::before, table.dataTable thead > tr > th.sorting::after, table.dataTable thead > tr > th.sorting_asc::before, table.dataTable thead > tr > th.sorting_asc::after, table.dataTable thead > tr > th.sorting_desc::before, table.dataTable thead > tr > th.sorting_desc::after, table.dataTable thead > tr > th.sorting_asc_disabled::before, table.dataTable thead > tr > th.sorting_asc_disabled::after, table.dataTable thead > tr > th.sorting_desc_disabled::before, table.dataTable thead > tr > th.sorting_desc_disabled::after, table.dataTable thead > tr > td.sorting::before, table.dataTable thead > tr > td.sorting::after, table.dataTable thead > tr > td.sorting_asc::before, table.dataTable thead > tr > td.sorting_asc::after, table.dataTable thead > tr > td.sorting_desc::before, table.dataTable thead > tr > td.sorting_desc::after, table.dataTable thead > tr > td.sorting_asc_disabled::before, table.dataTable thead > tr > td.sorting_asc_disabled::after, table.dataTable thead > tr > td.sorting_desc_disabled::before, table.dataTable thead > tr > td.sorting_desc_disabled::after {
	opacity: 0.5;
}
table.dataTable thead > tr > th.sorting_asc::before, table.dataTable thead > tr > th.sorting_desc::after, table.dataTable thead > tr > td.sorting_asc::before, table.dataTable thead > tr > td.sorting_desc::after {
  opacity: 1;
}
td.child{padding-left: 0; padding-right: 0; padding-bottom: 0;}
td.child > ul {padding: 0; margin-bottom: 0;}
li.dtr-hidden{list-style-type: none !important;}

/* dopasuj child row do koloru parenta w Datatable */
table.table#mieszkania tbody tr.odd.child,
table.table#mieszkania tbody tr.odd + tr.child {
    background-color: #f2f2f2 !important;
}
table.dataTable.table-striped > tbody > tr.odd > td {box-shadow: none}

table.table#mieszkania tbody tr.even.child,
table.table#mieszkania tbody tr.even + tr.child {
    background-color: #ffffff !important;
}
table#mieszkania tbody tr.child {
    --bs-table-bg: parent;  
    background-color: var(--bs-table-bg) !important;
}

table#mieszkania li.status_Wolne, 
table#mieszkania li.status_Zarezerwowane, 
table#mieszkania li.status_Sprzedane {padding: 7px; margin-top: 7px; border-bottom: 15px solid #fff;}

.table > :not(caption) > tr.promocja > * {background-color: var(--color-green) !important; color: #fff; font-weight: 500;}

table#mieszkania .dtr-data {padding-left: 10px}

[id^="mieszkania"][id$="_filter"]{display: none !important}
table[id^="mieszkania"].dataTable {margin-top: 0 !important}	
table.dataTable {width: 100% !important;}


/************************************/
/***         Custom Tabs css      ***/
/************************************/

.custom-tabs{
	padding: 50px 0;
}

.custom-tabs .nav-tabs{
	border: none;
	gap: 15px;
	margin-bottom: 40px;
	flex-wrap: wrap;
}

.custom-tabs .nav-tabs .nav-item{
	margin: 0;
}

.custom-tabs .nav-tabs .nav-link{
	position: relative;
	font-family: var(--default-font);
	font-size: 16px;
	font-weight: 500;
	line-height: 1em;
	color: var(--primary-color);
	background: var(--white-color);
	border: 1px solid var(--divider-color);
	border-radius: 100px;
	padding: 14px 30px;
	transition: all 0.3s ease-in-out;
}

.custom-tabs .nav-tabs .nav-link:hover{
	color: var(--white-color);
	background: var(--accent-secondary-color);
	border-color: var(--accent-secondary-color);
}

.custom-tabs .nav-tabs .nav-link.active{
	color: var(--white-color);
	background: var(--accent-color);
	border-color: var(--accent-color);
}

.custom-tabs .tab-content{
	background: none;
	border: 0;
	border-radius: 0;
	padding: 40px;
}

.custom-tabs .tab-content .tab-pane h3{
	font-size: 30px;
	margin-bottom: 20px;
}

.custom-tabs .tab-content .tab-pane p{
	margin: 0;
}

.custom-tabs .tab-content .tab-pane p:not(:last-child){
	margin-bottom: 1.5em;
}

/* Wersja pionowa (opcjonalna) */
.custom-tabs.tabs-vertical .nav-tabs{
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 15px;
	margin-bottom: 0;
	margin-right: 30px;
}

.custom-tabs.tabs-vertical .nav-tabs .nav-link{
	text-align: left;
	border-radius: 15px;
}

/************************************/
/***    Responsive - Custom Tabs  ***/
/************************************/

@media only screen and (max-width: 991px){

	.custom-tabs{
		padding: 25px 0;
	}

	.custom-tabs .nav-tabs{
		gap: 10px;
		margin-bottom: 30px;
	}

	.custom-tabs .nav-tabs .nav-link{
		font-size: 14px;
		padding: 11px 20px;
	}

	.custom-tabs .tab-content{
		border-radius: 20px;
		padding: 30px;
	}

	.custom-tabs .tab-content .tab-pane h3{
		font-size: 24px;
		margin-bottom: 15px;
	}
}

@media only screen and (max-width: 767px){

	.custom-tabs .nav-tabs .nav-link{
		width: 100%;
		text-align: center;
	}

	.custom-tabs .tab-content{
		padding: 20px;
	}

	.custom-tabs .tab-content .tab-pane h3{
		font-size: 20px;
	}
}	


/************************************/
/***      Gallery Swiper css      ***/
/************************************/

.gallery-swiper{
	padding: 10px 60px 60px;
}
.gallery-swiper .swiper-slide{
	border-radius: 20px;
	overflow: hidden;
}
.gallery-swiper .swiper-slide img{
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 20px;
	transition: all 0.4s ease-in-out;
}
.gallery-swiper .swiper-slide:hover img{
	transform: scale(1.05);
}

.gallery-swiper .swiper-pagination {Xdisplay: none;} 

.gallery-swiper .swiper-pagination-bullet{
	width: 12px;
	height: 12px;
	background: var(--divider-color);
	opacity: 1;
	transition: all 0.3s ease-in-out;
}
.gallery-swiper .swiper-pagination-bullet-active{
	background: var(--accent-color);
}

.gallery-swiper .swiper-button-prev,
.gallery-swiper .swiper-button-next,
.gallery-lightbox .swiper-button-prev,
.gallery-lightbox .swiper-button-next{
	xdisplay: none;
	width: 50px;
	height: 50px;
	background: var(--accent-color);
	border-radius: 50%;
	transition: all 0.3s ease-in-out;
}
.gallery-swiper .swiper-button-prev:hover,
.gallery-swiper .swiper-button-next:hover,
.gallery-lightbox .swiper-button-prev:hover,
.gallery-lightbox .swiper-button-next:hover{
	background: var(--accent-secondary-color);
}
.gallery-swiper .swiper-button-prev::after,
.gallery-swiper .swiper-button-next::after,
.gallery-lightbox .swiper-button-prev::after,
.gallery-lightbox .swiper-button-next::after{
	font-size: 16px;
	color: var(--white-color);
}

/* Miejsce na strzałki w karuzeli wewnątrz gallery-lightbox (features-carousel) */
.gallery-lightbox .features-box-image--square{
	padding: 0;
	position: relative;
}

@media only screen and (max-width: 767px){
	.gallery-swiper{
		padding: 10px 45px 45px;
	}
	.gallery-swiper .swiper-button-prev,
	.gallery-swiper .swiper-button-next,
	.gallery-lightbox .swiper-button-prev,
	.gallery-lightbox .swiper-button-next{
		width: 40px;
		height: 40px;
	}
	.gallery-lightbox .features-box-image--square{
		padding: 0 35px;
	}
}

/* Kwadratowy carousel dla pierwszego boxa */
.features-box-image--square .swiper,
.features-box-image--square .swiper-slide {
    aspect-ratio: 1 / 1;
}
.features-box-image--square .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.features-box-image--square .swiper-slide a {
    display: block;
    width: 100%;
    height: 100%;
}



/*******************************/
/***      Loaction css       ***/
/*******************************/



.location-map-wrapper {
    position: relative;
}
 
.location-map {
    width: 100%;
    line-height: 0; /* usuwa niechciany odstęp pod iframe */
}
 
.location-map iframe {
    width: 100%;
    height: 600px;
    display: block;
    border: 0;
}
 
/* Overlay z tekstem - desktop: nakładka na mapie po lewej stronie */
.location-text-overlay {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    max-width: 480px;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    padding: 50px 40px;
    z-index: 2;
    overflow-y: auto;
}
 
/* Mobile / tablet: tekst nad mapą, bez nakładania */
@media only screen and (max-width: 991px) {
    .location-text-overlay {
        position: static;
        max-width: 100%;
        width: 100%;
        height: auto;
        background: rgba(255, 255, 255, 0.9);
        padding: 30px 20px;
    }
 
    .location-map iframe {
        height: 400px;
    }
}
 
@media only screen and (max-width: 575px) {
    .location-map iframe {
        height: 320px;
    }
}