/* Map */
html {
	overflow-x: hidden
}

#inner-page-wrapper {
	margin-bottom: 0;
}

#inner-page-wrapper > .container {
	width: 100%;
	padding: 0;
}

.custom-container {
	max-width: 1405px;
}

.ip-container .footer .section-title :is(h1,h2) span.line-number::before {
	content: '04';
	font-size: 15px;
}

/* map */
.ip-map {
	background: #1a417c;
	padding: 100px 0 190px;
	position: relative;	
}

.ip-map::before, .map-main-wrap::before {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	background: #000;
	top: 0;
	left: 0;
	opacity: 0;
	z-index: 2;
	pointer-events: none;
}

body.popup-open .ip-map::before, body.popup-open .map-main-wrap::before {
	opacity: 0;
}

.ip-map::after {
	position: absolute;
	content: '';
	width: 100%;
	height: 190px;
	background: linear-gradient(180deg, rgba(26,65,124,1) 5%, rgba(255,255,255,1) 100%);
}

.ip-map-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 83.75%;
	max-width: 1340px;
	margin: 0 auto 55px;
}

.ip-map-top, .ip-map-top .section-title :is(h1,h2), .ip-map-top .section-title :is(h1,h2) :is(span, small) {
	color: #fff;
}

.ip-map-top .section-title :is(h1,h2) span.line-number::after {
	background: #fff;
}

.ip-map-top .map-status-key {
	width: 50%;	
	max-width: 565px;
	border: 3px var(--secondary) solid;
	border-image-slice: 1;
	border-width: 3px;	
	border-image-source: var(--gradient-1);	
	padding: 40px;
	background: #fff;
	color: #383838;
}

.ip-map-top .map-status-key h3 {
	text-align: center;
	text-transform: uppercase;
	font-size: 35px;
	font-weight: 600;
	color: var(--primary);
}

.ip-map-top .map-status-key h3::after {
	display: block;
	content: '';
	margin: 15px auto 30px;
	background: var(--gradient-2);
	width: 170px;
	height: 4px;
}

.ip-map-top .map-status-key ul {
	columns: 2;
	font-size: 20px;
	font-family: var(--font-family-title);
}

.ip-map-top .map-status-key ul li {
	margin-bottom: 20px;
	position: relative;
	padding-left: 40px;
}

.ip-map-top .map-status-key ul li .status-icon {
	width: 13px;
	height: 13px;
	background: #000;
	position: absolute;
	left: 0;
	top: 2px;	
	border-radius: 50%;
}

.ip-map-top .map-status-key ul li .status-icon--under-contract {
	background: #e8bd33;
}

.ip-map-top .map-status-key ul li .status-icon--sold {
	background: #676767;
}

.ip-map-top .map-status-key ul li .status-icon--available {
	background: transparent url(../../images/map/status-icon-available.png) no-repeat;
	background-size: contain;
	width: 18px;
	height: 21px;
	border-radius: initial;
}

.ip-map-top .map-status-key ul li .status-icon--available-condo {
	background: transparent url(../../images/map/status-icon-available-condo.png) no-repeat;
	background-size: contain;
	width: 15px;
	height: 20px;
	border-radius: initial;
}

.ip-map-top .map-status-key ul li .status-icon--features {
	background: transparent url(../../images/map/status-icon-stars.png) no-repeat;
	background-size: contain;
	width: 21px;
	height: 20px;
	border-radius: initial;
	left: -4px;
}

.ip-map-holder {
	position: relative;
	overflow: hidden;
	width: 87.5%;
	max-width: 1338px;
	margin: 0 auto;
	z-index: 2;
}

.ip-map-main {
	/* width: 1600px; */
	width: 1338px;
}

img.map-main {
	position: relative;
	z-index: 1;	
}

.ip-map-zoom-control {
	position: absolute;
	bottom: 270px;
	right: 25px;
}

.ip-map-zoom-control button {
	display: block;
	width: 35px;
	height: 35px;
	border-radius: 5px;
	border: 2px var(--secondary) solid;
	margin: 5px 0;
	font-size: 22px;
	font-weight: 600;
	box-shadow: 0 0 10px rgb(0 0 0 / 10%);
}

.ip-map-zoom-instructions {
	background: #fff;
	max-width: 430px;
	text-align: center;
	padding: 30px 20px;
	position: absolute;
	right: 90px;
	bottom: 92px;
	z-index: 3;
	border: 3px var(--secondary) solid;
	border-image-slice: 1;
	border-width: 3px;
	border-image-source: var(--gradient-1);
	transition: all .5s;
	filter: drop-shadow(0 0 5px rgb(0 0 0 / .50))
}

.ip-map-zoom-instructions::before {
	content: '';
	width: 168px;
	height: 54px;
	background: url(../../images/map/box-trinagle.png);
	position: absolute;
	top: -54px;
	right: -20px;
}

.ip-map-zoom-instructions--close {
	opacity: 0 !important;
	pointer-events: none;
}

#close-map-instructions {
	width: 50px;
	height: 50px;
	border: 0;
	border-radius: 50%;
	background: var(--gradient-2);
	color: #fff;
	font-size: 18px;
	position: absolute;
	top: -25px;
	left: -25px;
}

.ip-map-zoom-instructions p {	
	font-style: italic;
	color: var(--primary);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;	
}

.ip-map-zoom-instructions p:not(:last-child) {
	margin-bottom: 15px;
}

.ip-map-plots {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
}

.map-plot {
	position: absolute;
	top: 0;
	left: 0;
}

.map-plot > a {	
	display: block;	
}

.map-plot svg {
	opacity: 0;	
}

.is-sold {
	pointer-events: none;
}

.is-sold svg {
	opacity: .75;	
	filter: drop-shadow(0 1px 5px rgb(0 0 0 / .73));
}

.map-plot-popup {
	position: absolute;
	background: #fff;
	width: 708px;
	top: 5px;
	left: 50%;
	transform: translateX(-50%);
	pointer-events: none;
	opacity: 0;
	transition: opacity .5s;
	z-index: 3;
}

.map-plot-popup--open {
	opacity: 1;
	pointer-events: all;
}

.map-plot-popup-close {
	width: 50px;
	height: 50px;
	border: 0;
	border-radius: 50%;
	background: var(--gradient-2);
	color: #fff;
	font-size: 18px;
	position: absolute;
	top: -25px;
	right: -25px;	
	z-index: 2;
}

.map-plot-body {
	display: flex;	
	justify-content: space-between;	
	padding: 30px 20px 35px;
	border: 3px var(--secondary) solid;
	border-image-slice: 1;
	border-width: 3px;	
	border-image-source: var(--gradient-1);		
	position: relative;
}

.popup-feature {
	max-width: 415px;
}

.popup-feature .map-plot-body {
	display: block;
	text-align: center;
}

.popup-feature .map-plot-img {
	width: 100%;
	margin-bottom: 35px;
}

.map-marker-available-big {
	position: absolute;
	top: -32px;
	left: 50%;
	transform: translateX(-50%);
}

.map-plot-content {
	padding: 25px 0 0 30px;
	width: 50%;
}

.map-plot-body .section-btn {
	padding: 22px 20px;
}

.map-plot-body h3 {
	color: var(--primary);
	text-transform: uppercase;
	font-size: 27px;
	font-family: var(--font-family-title);
	font-weight: 700;
	margin-bottom: 20px;
}

.map-plot-body h4 {
	color: var(--primary);
	text-transform: uppercase;
	font-size: 27px;
	font-family: var(--font-family-title);
	font-weight: 700;
	margin-bottom: 20px;
	background: var(--gradient-1);
	color: var(--font-color-title);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;		
}

.details-box-beds-baths {
	display: flex;
	margin-bottom: 20px;
	align-items: center
}

.details-box-beds-baths > span {
	width: 45%;	
	font-size: 16px;
}

.details-box-beds-baths > span > i {
	display: inline-block;
	background-size: contain;
	background-repeat: no-repeat;
	margin-right: 10px;
}

.details-box-beds {
	border-right: 1px #cdcdcd solid;
	margin-right: 30px;
}

.details-box-beds i {	
	width: 30px;
	height: 20px;
	background-image: url(../../images/property-details/icon-bed.png);
}

.details-box-baths i {	
	width: 25px;
	height: 25px;
	background-image: url(../../images/property-details/icon-bath.png);
}

.details-box-summary {
	display: flex;
	margin-bottom: 20px;
}


.details-box-summary > div {
	width: fit-content;
	font-size: 14px;
	line-height: 1.2;	
}

.details-box-summary > div:not(:last-child) {
	border-right: 1px #cdcdcd solid;
	padding-right: 20px;
	margin-right: 20px;
}

.details-box-summary > div > strong {
	display: block;
	color: var(--primary);	
	font-weight: 500;
}

.map-plot-content ul {
	margin-bottom: 25px;
}

.map-plot-content ul li {
	display: flex;
	justify-content: space-between;
	font-size: 15px;
}

.map-plot-content ul li > span {
	width: 50%;
}

.map-plot-content ul li > strong {
	color: var(--primary);
}

.map-plot-content ul li:not(:last-child) {
	margin-bottom: 20px;
}

.map-plot-img {
	width: 50%;
}

.map-marker-available {
	position: absolute;
	z-index: 2;
	top: -24px;
	left: -8px;
	filter: drop-shadow(2px 2px 5px #000);
}

div#grp-8-map-plot-80 .map-marker-available {
    left: 13px;
}

body.popup-open :is(.map-marker-available, .map-available-condos) {
	opacity: .35;
}

.map-available-condos {
	cursor: pointer;
	font-size: 16px;
	color: #fff;
	position: absolute;
	bottom: 81px;
	left: 161px;
	width: 23px;
	height: 30px;
	background: url(../../images/map/available-condos.png) no-repeat;
	text-align: center;
	line-height: 25px;
	font-family: var(--font-family-title);
	font-weight: 600;
	filter: drop-shadow(2px 2px 5px rgb(0 0 0 / 50%));
}
.map-available-condos.pin-2 {
	left: 212px;
	bottom: 124px;
}
.map-available-condos.pin-3 {
	left: 337px;
	bottom: 101px;
}

.aiosp-container.aiosp-inline-holder.aiosp-ref-\#ip-map-popup-register-login .aios-popup-body {
	max-width: 775px;
	padding: 4%;
	border: 3px var(--secondary) solid;
	border-image-slice: 1;
	border-width: 3px;
	border-image-source: var(--gradient-1);
}

#ip-map-popup-register-login h2, #ip-map-popup-register-login h3 {
	color: var(--primary);
	font-size: 45px;
	font-weight: 600;
	text-align: center;
	font-family: var(--font-family-title);
	text-transform: uppercase
}

#ip-map-popup-register-login h3{
	font-size: 30px;
}

#ip-map-popup-register-login .nav-tabs {
	margin-bottom: 50px;
}

#ip-map-popup-register-login p {
	text-align: center;
	margin-bottom: 40px;
	line-height: 2;
	font-size: 13px;
	color: #383838;
}

.nav-tabs>li>a {
	font-size: 16px;
	font-family: var(--font-family-title);
	color: var(--primary) !important;
	padding: 10px 25px;
}

#ip-map-popup-register-login .nav-tabs>li.active>a, #ip-map-popup-register-login .nav-tabs>li.active>a:focus, #ip-map-popup-register-login .nav-tabs>li.active>a:hover {
	border-radius: 0;
	border: 3px var(--secondary) solid;
	border-image-slice: 1;
	border-width: 3px;	
	border-image-source: var(--gradient-1);	
	border-bottom: 0;
}

#ip-map-popup-register-login .nav-tabs>li {
	margin-bottom: -3px;
}

#ip-map-popup-register-login .nav-tabs {
	border-bottom: 2px var(--secondary) solid;
	border-image-slice: 1;
	border-width: 3px;	
	border-image-source: var(--gradient-1);		
}

.aiosp-container.aiosp-inline-holder.aiosp-ref-\#ip-map-popup-register-login .aiosp-close {
	width: 50px;
	height: 50px;
	border: 0;
	border-radius: 50%;
	background: var(--gradient-2);
	color: #fff;
	font-size: 18px;	
	font-size: 40px;
	right: -25px;
	top: -25px;
	opacity: 1;
}

#ip-map-popup-register-login form {
	margin: 25px 0;
}

#ip-map-popup-register-login .reg-fields {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

#ip-map-popup-register-login .reg-field {
	width: 48%;
	border-bottom: 1px var(--primary) solid;
}

#ip-map-popup-register-login .reg-field input {
	width: 100%;
	border: 0;
	color: #383838;
	font-size: 14px;
	padding: 20px;
}

#ip-map-popup-register-login .reg-field--full {
	width: 100%;
}

.reg-submit {
	text-align: center;	
	margin-top: 40px;
}

.recaptcha-holder {
	max-width: 306px;
	margin: 20px auto;
	padding: 0 5px;
}

.recaptcha-holder img {
	max-width: 100%;
	height: auto;
}


/* overrides */
#grp-8-map-plot-255 .map-marker-available {
	left: 2px !important;
}

#grp-3-map-plot-56 .map-marker-available {
	top: -15px;
}

#grp-7-map-plot-a .map-marker-available {
	top: -5px;
}

#grp-9-map-plot-53A .map-marker-available {
	top: -15px;
}


:is(#feature-private-beach, #feature-beach-club) .map-plot-popup {
	top: auto;
	bottom: -20px;
}

#grp-7-map-plot-a .map-plot-popup {
	top: auto;
	bottom: 0;
	margin-left: 200px;
}

#grp-8-map-plot-132 .map-plot-popup {
	top: auto;
	bottom: 0;
	
}

:is(#feature-chapel) .map-plot-popup {
	margin-left: 50px;
}

[id*=grp-8-map-plot-] .map-plot-popup {
	margin-left: -200px;
}

[id*=grp-7-map-plot-] .map-plot-popup {
	margin-left: -300px;
}

#grp-6-map-plot-1-4 .map-plot-popup {
	top: auto;
	bottom: -20px;	
	margin-left: 80px;
}

:is(#grp-9-map-plot-53A, #grp-3-map-plot-56) .map-plot-popup {
	margin-left: 100px
}

#grp-7-map-plot-298 .map-plot-popup {
	margin-left: -250px;
}

.ip-map-not-logged-in .custom-container {
	background: #fff;
	padding: 50px;
}

.ip-map-not-logged-in .custom-container h2 {
	margin-bottom: 20px;
	font-size: 25px;
}

.btn-holder .section-btn {
	margin: 5px;
}

.btn-holder .section-btn:is(:active,:focus) {
	color: var(--primary);
}

/* Update Popup to Center */
.ip-map-holder-wrapper{
	position: relative;
}

.ip-map-popups-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
	z-index: 2;
}

.ip-map-popups-main {
    width: 100%;
    height: 100%;
    position: relative;
    aspect-ratio: 1338/816;
	z-index: 2;
}

.ip-map-popups-overlay {
    position: fixed;
    background: #000;
    z-index: 1;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0;
	pointer-events: none;
}

body.popup-open .ip-map-popups-overlay{
	opacity: 0.35;
	pointer-events: auto;
}

.popup-map-plot {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.popup-map-plot.map-plot-popup-container--open {
    z-index: 4;
    pointer-events: auto;
}

.popup-map-plot .map-plot-popup {
    margin: 0;
    position: relative;
    top: unset;
    left: unset;
    transform: none;
}

.condo_group_popup-contain {
    position: relative;
    width: 100%;
    height: auto;
}

.condo_group_popup-contain .map-plot {
    position: relative;
}

/* Update Popup to Center */

@media(max-width: 1440px) {
	.ip-map .section-title :is(h1,h2) {
		font-size: 60px;
	}
	.ip-map .section-title :is(h1,h2) small {
		font-size: 25px;
	}
}

@media(max-width: 991px) {
	.ip-map-top  {
		flex-wrap: wrap;
		justify-content: center;
	}
	.ip-map-top .map-status-key {
		width: 100%;
		max-width: 100%;
	}

	.ip-map-zoom-instructions {
		bottom: 20px;
	}	

	.ip-map .section-title :is(h1,h2) {
		text-align: center;
	}

	.ip-map-top .map-status-key ul {
		columns: 1;
	}

	.ip-map-zoom-control {
		bottom: 20px;
		z-index: 2;
	}
	.ip-map-zoom-instructions {
		display: none;
		
	}
	.ip-map-zoom-instructions p{
		font-size: 12px;
	}

	.ip-map-holder-wrapper {
		position: unset;
	}

	.ip-map-popups-container {
		height: 100vh !important;
		bottom: 0;
		top: unset;
		z-index: 2;
	}

	.ip-map-popups-main {
		transform: scale(0.85) !important;
		width: calc(100% - 30px);
		margin: 0 auto;
	}

}

@media(max-width: 767px) {
	.ip-map-popups-main {
		transform: scale(0.5) !important;
	}
}

@media(max-width: 480px) {
	.popup-map-plot .map-plot-popup {
		max-width: 100%;
	}
	
	.popup-map-plot .map-plot-popup-close {
		right: 0;
		top: -55px;
	}
    .btn-holder .section-btn{
        width: 100%;
    }
}
