.pl-locator{
	display:grid;
	grid-template-columns: 38% 62%;
	gap:24px;
	align-items:start;
}

.pl-locator *{
	box-sizing:border-box;
}

.pl-locator__sidebar{
	background:#fff;
	border:1px solid #e7e7e7;
	border-radius:18px;
	overflow:hidden;
}

.pl-locator__filters{
	padding:8px;
	border-bottom:1px solid #ececec;
	background:#fff;
}

.pl-field{
	margin-bottom:12px;
}

.pl-field:last-child{
	margin-bottom:0;
}

/* SELECT */
.pl-field select{
	width:100%;
	min-height:56px;
	padding:0 44px 0 18px;
	border:1px solid #e3e3e3;
	border-radius:14px;
	background:#fff;
	font-size:16px;
	font-weight:400;
	color:#a1a1a1;
	outline:none;
	box-shadow:none;
	appearance:none;
	-webkit-appearance:none;
	background-image:
		linear-gradient(45deg, transparent 50%, #b8b8b8 50%),
		linear-gradient(135deg, #b8b8b8 50%, transparent 50%);
	background-position:
		calc(100% - 23px) calc(50% - 2px),
		calc(100% - 17px) calc(50% - 2px);
	background-size:6px 6px, 6px 6px;
	background-repeat:no-repeat;
}

.pl-field select:focus{
	border-color:#d7d7d7;
}

/* CHECKBOX GRID */
.pl-check-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:12px 22px;
	padding:6px 2px 4px;
}

.pl-check{
	display:flex;
	align-items:center;
	gap:12px;
	cursor:pointer;
	font-size:15px;
	line-height:1.35;
	color:#31495a;
	font-weight:500;
}

.pl-check{
	position:relative;
}

.pl-check input[type="checkbox"]{
	position:absolute !important;
	opacity:0 !important;
	pointer-events:none !important;
	width:1px !important;
	height:1px !important;
	margin:0 !important;
	padding:0 !important;
	appearance:none !important;
	-webkit-appearance:none !important;
	-moz-appearance:none !important;
}

.pl-check::before,
.pl-check::after,
.pl-check__label::before,
.pl-check__label::after{
	content:none !important;
	display:none !important;
}

.pl-check__box{
	width:26px;
	height:26px;
	border:1px solid #d9d9d9;
	border-radius:8px;
	background:#fff;
	position:relative;
	flex:0 0 26px;
	transition:.18s ease;
}

.pl-check input:checked + .pl-check__box{
	border-color:#d2d2d2;
	background:#fff;
}

.pl-check input:checked + .pl-check__box::after{
	content:"";
	position:absolute;
	left:8px;
	top:5px;
	width:7px;
	height:11px;
	border-right:2px solid #233b4b;
	border-bottom:2px solid #233b4b;
	transform:rotate(45deg);
}

/* ACTIONS */
.pl-field--actions{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	padding-top:4px;
}

.pl-btn{
	appearance:none;
	border:1px solid #58b8da;
	background:#58b8da;
	color:#fff;
	padding:11px 16px;
	border-radius:12px;
	font-size:14px;
	font-weight:600;
	line-height:1;
	cursor:pointer;
	transition:.2s ease;
}

.pl-btn:hover{
	opacity:.94;
}

.pl-btn--ghost{
	background:#fff;
	color:#31495a;
	border-color:#dcdcdc;
}

/* RESULTS */
.pl-locator__results{
	overflow:hidden;
	background:#fff;
}

.pl-card{
	position:relative;
	display:flex;
	justify-content:space-between;
	align-items:stretch;
	gap:18px;
	padding:32px 31px;
	border-bottom:1px solid #ececec;
	background:#fff;
	cursor:pointer;
	transition:background .2s ease;
}

.pl-card:last-child{
	border-bottom:none;
}

.pl-card:hover{
	background:#fcfcfc;
}

.pl-card.is-active{
	background:#fff;
}

.pl-card.is-hidden{
	display:none;
}

.pl-card__main{
	flex:1 1 auto;
	min-width:0;
}

.pl-card__heading{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:4px;
	margin-bottom:6px;
}

.pl-card__title{
	order:2;
	margin:0;
	font-size:16px;
	line-height:1.2;
	font-weight:500;
	letter-spacing:0;
	color:#254051;
}

.pl-card__type{
	margin-bottom:14px;
	font-size:10px;
	line-height:1.2;
	font-weight:500;
	letter-spacing:.02em;
	color:#318AA9;
	text-transform:uppercase;
}

.pl-card__address{
	margin-bottom:10px;
	font-family: Geist, sans-serif;
	font-weight:500;
	font-size:14px;
	line-height:130%;
	letter-spacing:0;
	color:#254051;
}

.pl-card__meta{
	font-family: Geist, sans-serif;
	font-weight:500;
	font-size:14px;
	line-height:130%;
	letter-spacing:0;
	color:#254051;
}

.pl-card__badge{
	order:1;
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	padding:4px 8px;
	border-radius:999px;
	background:#F3FAFC;
	color:#76ADC4;
	font-size:10px;
	font-weight:500;
	line-height:1;
	white-space:nowrap;
}

.pl-card__actions{
	margin-top:14px;
}

.pl-card__actions a{
	color:#4fb3d9;
	text-decoration:none;
	font-size:14px;
	font-weight:600;
}

.pl-card__actions a:hover{
	text-decoration:underline;
}

.pl-card__side{
	flex:0 0 33px;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:0;
	align-self:center;
	text-align:center;
	color:#4CA6C4;
	padding-bottom:0;
}

.pl-card__pin{
	width:15px;
	height:26px;
	font-size:0;
	line-height:0;
	margin:0;
	position:relative;
}

.pl-card__pin img,
.pl-card__pin .emoji{
	display:none !important;
}

.pl-card__pin::before{
	content:"";
	display:block;
	width:15px;
	height:26px;
	background-repeat:no-repeat;
	background-position:center;
	background-size:contain;
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 48' fill='none'><path d='M28 13.757C28 6.15863 21.7323 0 14.0006 0C6.26898 0 2.85682e-05 6.15863 2.85682e-05 13.757V13.7813C-0.018581 23.2899 9.05917 43.1445 14.0006 48C18.658 43.4237 27.7754 23.6556 27.995 14.1288L27.9988 13.9276L28 13.7813V13.757ZM14.0006 20.4885C13.101 20.4885 12.2101 20.3144 11.3789 19.9761C10.5478 19.6378 9.79254 19.142 9.15638 18.5169C8.52023 17.8918 8.0156 17.1497 7.67132 16.333C7.32703 15.5163 7.14983 14.641 7.14983 13.757C7.14983 12.8729 7.32703 11.9976 7.67132 11.1809C8.0156 10.3642 8.52023 9.62209 9.15638 8.99701C9.79254 8.37192 10.5478 7.87608 11.3789 7.53778C12.2101 7.19949 13.101 7.02537 14.0006 7.02537C15.8176 7.02537 17.5601 7.73459 18.8449 8.99701C20.1297 10.2594 20.8514 11.9716 20.8514 13.757C20.8514 15.5423 20.1297 17.2545 18.8449 18.5169C17.5601 19.7793 15.8176 20.4885 14.0006 20.4885Z' fill='%234CA6C4'/></svg>");
}

/* MAP */
.pl-locator__map-wrap{
	position:relative;
}

.pl-locator__map{
	height:960px;
	border-radius:22px;
	overflow:hidden;
	border:1px solid #e7e7e7;
	background:#f4f4f4;
}

.pl-map-unavailable{
	display:flex;
	align-items:center;
	justify-content:center;
	height:100%;
	padding:24px;
	text-align:center;
	font-size:15px;
	line-height:1.5;
	color:#4f6472;
	background:#f8fafb;
}

/* POPUP */
.leaflet-popup-content-wrapper{
	border-radius:22px;
	box-shadow:0 10px 28px rgba(0,0,0,.08);
	padding:0;
}

.leaflet-popup-content{
	margin:0;
}

.leaflet-popup-tip{
	box-shadow:none;
}

.pl-map-popup{
	min-width:240px;
	padding:28px 24px 24px;
}

.pl-map-popup h3{
	margin:0 0 6px;
	font-size:20px;
	line-height:1.15;
	font-weight:600;
	color:#223f55;
}

.pl-map-popup .type{
	margin-bottom:16px;
	font-size:12px;
	line-height:1.2;
	font-weight:700;
	letter-spacing:.03em;
	color:#4fb3d9;
	text-transform:uppercase;
}

.pl-map-popup .row{
	margin-bottom:10px;
	font-size:16px;
	line-height:1.45;
	color:#30495b;
}

.pl-map-popup .row:last-child{
	margin-bottom:0;
}

/* SCROLLBAR LIGHT */
.pl-locator__results::-webkit-scrollbar{
	width:8px;
}

.pl-locator__results::-webkit-scrollbar-thumb{
	background:#d9e3ea;
	border-radius:999px;
}

.pl-locator__results::-webkit-scrollbar-track{
	background:transparent;
}

.pl-locator__empty{
	padding:24px 31px 28px;
	border-top:1px solid #ececec;
	font-size:14px;
	line-height:1.45;
	color:#6c7f8b;
	background:#fff;
}

.pl-locator__pagination{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:14px;
	padding:18px 24px 22px;
	border-top:1px solid #ececec;
	background:#fff;
}

.pl-page-btn{
	appearance:none;
	border:1px solid #d9e4ea;
	background:#fff;
	color:#254051;
	width:42px;
	height:42px;
	border-radius:12px;
	font-size:22px;
	line-height:1;
	font-weight:500;
	cursor:pointer;
	transition:.2s ease;
}

.pl-page-btn:hover{
	border-color:#58b8da;
	color:#58b8da;
}

.pl-page-btn:disabled{
	opacity:.42;
	cursor:not-allowed;
	border-color:#d9e4ea;
	color:#254051;
}

.pl-page-status{
	display:flex;
	align-items:center;
	gap:6px;
	font-size:14px;
	line-height:1;
	font-weight:600;
	color:#254051;
}

.pl-page-status__sep{
	color:#8aa0ad;
}

@media (max-width: 1200px){
	.pl-locator{
		grid-template-columns:1fr;
	}

	.pl-locator__map{
		height:560px;
	}

	.pl-locator__results{
		max-height:none;
	}
}

@media (max-width: 767px){
	.pl-locator__filters{
		padding:8px;
	}

	.pl-check-grid{
		grid-template-columns:1fr;
	}

	.pl-card{
		padding:22px 18px;
	}

	.pl-card__title{
		font-size:16px;
	}

	.pl-card__address,
	.pl-card__meta,
	.pl-map-popup .row{
		font-size:15px;
	}

	.pl-map-popup{
		min-width:200px;
		padding:20px 18px;
	}
}

/* ----------------------------------------------------
   NASCONDE TEMPORANEAMENTE IL BOTTONE RESET FILTRI
   Da riattivare se occorre verrà utilizzato
---------------------------------------------------- */

.pl-field--actions{
	display:none;
}

/* ----------------------------------------------------
   NASCONDE TEMPORANEAMENTE IL FILTRO "LINEA PISCINA"
   Da riattivare quando il filtro verrà utilizzato
---------------------------------------------------- */
.pl-locator__filters .pl-field:has(#pl-filter-linea){
	display:none;
}

/* ----------------------------------------------------
   STILE FRECCE E PAGINAZIONE
---------------------------------------------------- */

.pl-locator__pagination .pl-page-btn{
	display:inline-flex !important;
	align-items:center;
	justify-content:center;
	width:42px !important;
	min-width:42px !important;
	height:42px !important;
	padding:0 !important;
	line-height:1 !important;
	text-align:center;
	box-sizing:border-box;
}

.pl-locator__pagination .pl-page-btn:hover,
.pl-locator__pagination .pl-page-btn:focus,
.pl-locator__pagination .pl-page-btn:disabled{
	display:inline-flex !important;
	align-items:center;
	justify-content:center;
	padding:0 !important;
}

/* ----------------------------------------------------
   GOOGLE MAPS POPUP - rifinitura stile Figma
---------------------------------------------------- */

.gm-style .gm-style-iw-c{
	padding:0 !important;
	border-radius:15px !important;
	border:1px solid #e7e5e4;
	box-shadow:0 14px 30px rgba(37, 64, 81, 0.10) !important;
	overflow:hidden !important;
	background:#fff;
}

.gm-style .gm-style-iw-d{
	overflow:hidden !important;
	max-height:none !important;
	padding:0 !important;
}

.gm-style .gm-style-iw-chr{
	position:absolute;
	top:8px;
	right:8px;
	height:auto;
}

.gm-style .gm-ui-hover-effect{
	width:32px !important;
	height:32px !important;
	top:0 !important;
	right:0 !important;
	opacity:.65;
	border-radius:999px;
}

.gm-style .gm-ui-hover-effect:hover{
	opacity:1;
	background:rgba(37, 64, 81, 0.06) !important;
}

.gm-style .gm-ui-hover-effect span{
	width:18px !important;
	height:18px !important;
	margin:7px !important;
}

.pl-map-popup{
	width:242px;
	min-width:242px;
	padding:32px 31px;
	background:#fff;
	font-family:Geist, sans-serif;
	color:#254051;
	box-sizing:border-box;
}

.pl-map-popup h3{
	margin:0 0 6px;
	font-family:Geist, sans-serif;
	font-size:20px;
	line-height:1.1;
	font-weight:500;
	letter-spacing:0;
	color:#254051;
}

.pl-map-popup .type{
	margin:0 0 14px;
	font-family:Geist, sans-serif;
	font-size:9px;
	line-height:1.2;
	font-weight:500;
	letter-spacing:.04em;
	text-transform:uppercase;
	color:#76adc4;
}

.pl-map-popup .row{
	margin:0 0 10px;
	font-family:Geist, sans-serif;
	font-size:14px;
	line-height:1.3;
	font-weight:500;
	letter-spacing:0;
	color:#254051;
}

.pl-map-popup .row:last-child{
	margin-bottom:0;
}