html.is-fixed{
	overflow: hidden;
}

.interior-page #header{
	background-color: #12171a;
}
.page-wrapper{
	/*background-color: #fff;*/
	padding-top: 5rem;
}
.page-wrapper.has-search-box{
	padding-top: 0 !important;
}
.page-wrapper.no-overflown{
	overflow: hidden;
}
.page-wrapper.is-grey{
	background-color: #efefef;
}
.main-container{
	margin: 0 auto;
	max-width: 1140px;
}
.breadcrumb{
	border-bottom: 1px solid #e5e5e5;
	margin: 5px 0 0 0;
	padding: 0;
	padding-bottom: 8px;
}
.breadcrumb.no-border{
	border: 0;
	margin-top: 40px;
	padding: 0;
}
.breadcrumb.no-border-secondary{
	border: 0;
	margin-top: 13px;
	padding-bottom: 15px;
}
.breadcrumb.is-tall{
	margin-top: 7px;
}
.breadcrumb li{
	color: #595959;
	display: inline-block;
	font-size: 11px;
	list-style: none;
	padding: 0;
}
.breadcrumb li:last-of-type{
	color: #008ee0;
	pointer-events: none;
}
.breadcrumb li + li:before{
	color: #595959;
	content: '>';
	font-family: "tex_gyre_adventor_regular";
	font-size: 11px;
	margin: 0 7px 0 4px;
	position: static;
}
.breadcrumb a{
	color: inherit;
}
.breadcrumb a:hover{
	color: #008ee0;
	transition: color 300ms ease-in-out;
}
.breadcrumb li:first-of-type::before{
	display: none;
}
#masthead div.content div.content-outer{
	padding: 0 10px !important;
}
.content-map {
	height: 44rem;
    position:relative;
	width: 100%;
}
.content-map::before {
    content: 'If you can see this message, you may need to adjust your cookie consent choices';
    display: block;
    left: 50%;
    top: 50%;
    position: absolute;
    transform: translate(-50%,-50%);
    opacity: 0.5;
    font-size: 0.75rem;
}

.content-map #map_canvas{
	height: 100%;
	width: 100%;
}
#masthead{
	height: 100vh;
	overflow: visible;
}
#masthead div.content{
	align-items: center;
	display: flex;
	justify-content: center;
	position: static;
}
#masthead div.content div.content-outer{
	position: static;
}
#masthead div.content div.content-outer div.content-inner{
	padding: 0 1rem;
}
#masthead div.content{
	overflow: visible;
}
.content-wrpr.secondary-nav{
	z-index: 6 !important;
}
.sticky-wrapper.is-hidden{
	display: none !important;
}
.content-inner.w60{
	overflow: hidden;
}
.property-page{
	background: #fff !important;
}
.enquiry-prompt {
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	width: 100% !important;
	z-index: 4;
}
#enq_cta{
	background-color: #fff;
	pointer-events: auto;
}
.enquiry-container{
	margin: 0 auto;
	max-width: 1140px;
}
.enq-area{
	position: relative;
}
.enq-area i{
	font-size: 20px;
	left: 1px;
	position: absolute;
	top: 22px;
}
.enq-area .selectric{
	background-color: transparent;
	border: none;
}
.enq-area .selectric-button{
	display: none;
}
.enq-area .selectric-label{
	font-size: 14px;
	margin: 0;
	padding-left: 30px;
}
.enq-area input.date-box{
	background-color: transparent;
	height: 38px;
}
.enq-input{
	padding-left: 30px !important;
}
div.form div.fld.has-drop::after{
	pointer-events: none;
	z-index: 2;
}
.enq-area .gry-lite{
	display: block;
	margin-bottom: -5px;
}
.blog-articles .slick-track{
	display: flex;
	justify-content: center;
	max-width: 1200px;
}
.articles-slide{
	width: 486px;
}
.blog-article{
	max-width: 100%;
}
.blog-article img{
	max-width: 232px;
	width: 100%;
}
.blog-article h3{
	margin-bottom: 15px;
	max-width: 290px;
	padding: 0;
}
.blog-article p{
	max-width: 300px;
}
.blog-article .image-container{
	background: rgba(0,0,0,0.4) none repeat scroll 0 0;
	border: 4px solid rgba(255, 255, 255, 1);
	border-radius: 50%;
	display: block;
	float: none;
	height: 240px;
	margin: 0 auto;
	moz-border-radius: 50%;
	ms-border-radius: 50%;
	o-border-radius: 50%;
	overflow: hidden;
	transition: all 300ms ease-in-out;
	webkit-border-radius: 50%;
	width: 240px;
}
.blog-article a:hover .image-container{
	background: rgba(0,142,224,1) none repeat scroll 0 0;
	border: 4px solid rgba(0, 142, 224, 1);
}
.blog-article .text-container{
	padding: 2em 2em 0 2em;
}
.legal-heading .content-wrpr.secondary-nav{
	display: none;
}
#overview{
	position: relative;
}
#overview hr{
	max-width: 683px;
}
#overview #sticky-wrapper{
	pointer-events: none;
}
.overview-container{
	margin: 0 auto;
	max-width: 1140px;
}

.overview-container:nth-child(1) { padding: 1.5rem 0 0 0; }

.overview-container .content-hdr h1 { font-size:2rem; padding:0 0 0.5rem 0; }
.overview-container .content-hdr h2 { font-size:1.143rem; }

.overview-container .sticky-wrapper {
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}
.sticky-wrapper.is-sticky > .enquiry-prompt {
	z-index: 5 !important;
}
#description,
#prop_spec,
#videos,
#vtour,
#image_mosaic{
	max-width: 683px;
	overflow: hidden;
}
#availability{
	max-width: 683px;
}
p.text-call-out.has-icon.info-circ.gry.tny{
	color: #595959;
	font-size: 10px;
	margin-top: 36px;
}
.rates-tab-content{
	display: none;
}
.rates-tab-content.is-active{
	display: block;
}
.blog-articles .slick-slide{
	opacity: 0.1 !important;
}
.blog-articles .slick-slide.slick-active{
	opacity: 1 !important;
}
.slick-dots button{
	background-color: rgba(255, 255, 255, 1);
	border: 0;
	color: #595959;
	cursor: pointer;
	font-family: 'tex_gyre_adventor_bold', Arial, Tahoma, Verdana, Helvetica, sans-serif;
	font-size: 14px;
	height: 30px;
	transition: all 0.35s ease;
	width: 30px;
}
.slick-dots button:hover,
.reviews-nav:hover{
	background-color: #595959;
	color: #fff;
}
.slick-dots li + li{
	margin-left: 5px;
}
.reviews-nav {
	background-color: #ffffff;
	border: 0;
	box-shadow: 0 1px 2px rgba(0,0,0,0.1);
	cursor: pointer;
	height: 30px;
	margin-left: 5px;
	width: 30px;
}
.reviews-info{
	margin: 0 1rem;
    padding: 0.5rem 0 0 0;
}
.input-group{
	margin-bottom: 22px;
	position: relative;
}
.input-group .enq-icon{
	bottom: 7px;
	color: #008ee0;
	font-size: 20px;
	left: 8px;
	position: absolute;
}
.enq-arrival-date{
	padding-left: 33px !important;
}
.date-picker-wrapper.single-date.no-shortcuts.no-gap.two-months .day.toMonth.valid.tmp.checked.first-date-selected{
	border-radius: 50%;
}
.date-picker-wrapper{
	background-color: #fff;
	border: none;
}
.about-page .month-wrapper,
.activity-enquiry-page .month-wrapper,
.property-page .month-wrapper{
	display: block;
}
.about-page .month1,
.activity-enquiry-page .month1,
.property-page .month1{
	border: none;
	margin-right: 0;
}
.enquiry-form-container .input-group:nth-child(2){
	margin-left: 20px;
}
.checkbox-row{
	display: flex;
	justify-content: space-between;
}
.checkbox-row + .checkbox-row{
	margin-top: 14px;
}
.checkbox-row:nth-child(1){
	margin-top: 26px;
}
.checkbox-row p{
	padding: 0;
}
.checkboxes{
	display: flex;
}
.checkbox-group{
	display: flex;
}
.hero-colophon{
	margin: 4rem 0 0 0;
}
.drp_top-bar{
	display: none;
}
.date-picker-wrapper.no-shortcuts.inline-wrapper.no-gap.two-months{
	background-color: #fff;
	padding: 0;
}
.date-picker-wrapper.no-shortcuts.inline-wrapper.two-months.has-gap{
	padding: 0;
}
.date-picker-wrapper.no-shortcuts.inline-wrapper.no-gap.two-months{
	border: 0;
}
.date-picker-wrapper .gap{
	background-color: transparent !important;
	display: none;
	margin: 0 !important;
	padding: 0 20px;
	top: 3px !important;
	visibility: visible !important;
	width: 1px !important;
}
.date-picker-wrapper .gap::after{
	background-color: #cccccc;
	content: '';
	display: block;
	height: 100%;
	width: 1px;
}
.date-picker-wrapper .gap-lines{
	display: none;
}
.enq-area{
	position: relative;
}
.enq-area i{
	font-size: 20px;
	left: 1px;
	position: absolute;
	top: 22px;
}
.enq-area .selectric{
	background-color: transparent;
	border: none;
}
.enq-area .selectric-button{
	display: none;
}
.enq-area .selectric-label{
	font-size: 14px;
	margin: 0;
	padding-left: 30px;
}
.enq-area input.date-box{
	background-color: transparent;
	height: 38px;
}
.enq-input{
	padding-left: 30px !important;
}
div.form div.fld.has-drop::after{
	pointer-events: none;
}
.enq-area .gry-lite{
	display: block;
	margin-bottom: -5px;
}
.select-group{
	align-items: center;
	display: flex;
	justify-content: space-between;
}
.select-group .selectric{
	background-image: url('../images/ui/search-select.png');
	background-position-x: right;
	background-repeat: no-repeat;
	background-size: contain;
	height: 36px;
	padding-right: 17px;
	padding-top: 10px;
	width: 56px;
}
.select-group .selectric-button{
	display: none;
}
.select-group .selectric-label{
	font-size: 14px;
	line-height: 1;
	margin: 0;
}
.search-btn{
	cursor: pointer;
}
.search-box-wrap{
	background: #fff;
	position: fixed;
	top: 0;
	transition: top 0.5s ease-in-out;
	width: 100%;
	z-index: 20;
}
.search-box-wrap.nav-up{
	position: sticky;
	top: -40px;
}
.search-box-container {
	border-bottom: 1px solid #cccccc;
	margin: 5rem 0 0 0;
}
.search-box-container.has-banner {
	border-bottom: 1px solid #cccccc;
	margin: 9rem 0 0 0;
}
.search-box-container .search-box{
	background-color: transparent;
	height: 51px;
	max-width: 1140px;
	padding: 0;
}
.date-range-mobile,
.calendar-mobile{
	display: none;
}
.search-box-container .search-input{
	max-width: none;
}
.property-page div.content-wrpr div.content.crumb,
div.content-wrpr div.content.crumb{
	padding: 0;
}
.deal-carouse{
	height: 100%;
}
.deal-slide{
	background-position: center center;
	background-size: cover;
	height: 20em;
}
.deal-slide-content{
	align-content: center;
	background: rgba(0,0,0,0.25) none repeat scroll 0 0;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
    padding:2rem;
	position: relative;
	text-align: center;
	transition: background 0.35s ease-in-out;
}
.promo-tiles li:hover .deal-slide-content{
	background: rgba(0,0,0,0.4) none repeat scroll 0 0;
}
.promo-tiles li:hover .deal-slide-content .btn{
	background: rgba(255,255,255,1) none repeat scroll 0 0;
	color: #008ee0;
}
.deal-slide-content a{
	font-size: 0;
	height: 100%;
	left: 0;
	line-height: 0;
	position: absolute;
	text-indent: -99999px;
	top: 0;
	width: 100%;
}
.deal-slide-content .btn{
	margin: 0 auto;
	/*max-width: 140px;*/
}
.captcha-overlay{
	align-items: center;
	background-color: rgba(0, 0, 0, 0.6);
	bottom: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	right: 0;
	top: 0;
	transition: opacity 300ms ease-in-out;
	z-index: 20000;
	z-index: 3;
}
.captcha-overlay.is-active{
	opacity: 1;
	pointer-events: auto;
}
.captcha-container{
	background-color: #ffffff;
	padding-top: 19px;
	text-align: center;
	width: 100%;
}
.captcha-container h3{
	color: #008ee0;
	font-size: 21px;
	margin-bottom: 9px;
	margin-top: 14px;
	padding: 0;
}
.captcha-container p{
	font-size: 14px;
	line-height: 1;
	padding: 0;
}
.captcha-container p span{
	color: #008ee0;
}
.captcha-images{
	align-items: center;
	background-color: #efefef;
	border-top: 1px solid #cccccc;
	display: flex;
	height: 121px;
	justify-content: center;
	margin-top: 21px;
}
.captcha-images img{
	cursor: pointer;
}
.captcha-images img + img{
	margin-left: 1px;
}
.activities-heading{
	margin-top: 20px;
	text-align: center;
}
.activities-heading h2{
	font-size: 44px;
	line-height: 1;
	margin-bottom: -10px;
	padding: 0;
}
.activities-heading p{
	font-size: 14px;
	margin: 0 auto;
}
.activities-heading p:first-of-type{
	max-width: 900px;
}
.activities-heading p:last-of-type{
	max-width: 950px;
}
.activities-grid{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 55px;
	width: 100%;
}
.activities-card{
	background-position: center center;
	background-size: cover;
	height: 270px;
	margin-bottom: 30px;
	width: 100%;
	width: 32%;
}
.activities-card:hover .activities-card-content{
	background-color: rgba(0, 142, 224, 0.60);
}
.activities-card.is-wide{
	width: 66%;
}
.activities-card-content{
	align-items: center;
	background-color: rgba(0, 0, 0, 0.20);
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	transition: background-color 300ms ease-in-out;
	width: 100%;
}
.activities-card-content p,
.activities-card-content h3{
	color: #fff;
	padding: 0;
}
.activities-card-content p{
	font-size: 12px;
}
.activity-enquiry{
	display: flex;
	margin-top: 40px;
	padding-bottom: 70px;
}
.activity-enquiry-detail{
	margin-left: 60px;
	max-width: 280px;
	width: 100%;
}
.activity-enquiry-detail h3{
	color: #008ee0;
	padding-bottom: 0;
}
.activity-enquiry-detail img{
	margin-bottom: 20px;
	margin-top: 28px;
	width: 100%;
}
.activity-enquiry-detail span{
	color: #595959;
	display: block;
	font-size: 11px;
	margin-bottom: 20px;
	margin-top: 10px;
}
.activity-enquiry-detail p{
	font-size: 12px;
	line-height: 1.9;
}
.activity-enquiry-form .secondary-enquiry-form .secondary-enquiry-content{
	margin: 0;
	max-width: 100%;
}
.activity-enquiry-form h3{
	padding-bottom: 10px;
}
.activity-enquiry-form label{
	margin-bottom: 5px;
}
.activity-enquiry-form button{
	margin-top: 64px;
}
.activity-enquiry-form .checkbox-row:first-of-type{
	margin-bottom: 25px;
}
.activity-enquiry-form .secondary-enquiry-form{
	box-shadow: 0px 1px 15px -4px rgba(0,0,0,0.75);
	height: 589px;
	padding: 20px 20px 0 20px;
	width: auto;
}
.activity-enquiry-form .secondary-enquiry-form .enquiry-form-col{
	width: 50%;
}
.activities-suggestion{
	margin-bottom: 60px;
	margin-top: 40px;
	text-align: center;
}
.activities-suggestion h3{
	color: #008ee0;
	padding-bottom: 40px;
}
.activities-suggestions-buttons{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.activities-suggestions-buttons a{
	align-items: center;
	background-color: #efefef;
	border: 1px solid #bfbfbf;
	color: #595959;
	display: flex;
	height: 32px;
	justify-content: center;
	margin: 0 5px 10px 5px;
	padding: 0 20px;
}
.activities-list{
	display: flex;
	margin-bottom: 69px;
	margin-top: 40px;
}
.activities-list-sidebar{
	max-width: 270px;
	padding-right: 30px;
	width: 100%;
}
.activities-list-sidebar h4{
	color: #008ee0;
	font-size: 18px;
	padding: 0 0 12px 0;
}
.sidebar-item a{
	color: inherit;
}
.sidebar-item li.is-active{
	color: #008ee0;
}
.sidebar-item li.is-active::before{
	background-image: url('../images/ui/sidebar-chevron.png');
	background-repeat: no-repeat;
	background-size: contain;
	content: '';
	display: inline-block;
	height: 12px;
	margin-right: 10px;
	position: static;
	width: 7px;
}
.sidebar-item a:hover{
	text-decoration: underline;
}
.sidebar-item ul{
	padding: 0;
}
.sidebar-item{
	padding-bottom: 32px;
}
.sidebar-item + .sidebar-item{
	border-top: 1px solid #cccccc;
	padding-top: 30px;
}
.sidebar-item a:hover{
	color: #008ee0;
}
.sidebar-item li{
	padding: 0;
}
.sidebar-item li + li{
	margin-top: 8px;
}
.sidebar-item li::before{
	display: none;
}
.activities-list-content{
	border-left: 1px solid #cccccc;
	padding-left: 30px;
}
.activities-list-content-inner{
	margin-bottom: 20px;
}
.activities-list-content .drop-filter{
	float: left;
	margin-top: 0;
	width: 48%;
}
.activities-list-content .drop-filter:nth-of-type(2){
	float: right;
}
.activities-list-content .drop-filter .selectric{
	width: 100%;
}
.activities-list-content h2{
	color: #008ee0;
	margin-bottom: 20px;
	padding: 0;
}
.activities-list-item{
	clear: both;
	display: flex;
}
.activities-list-item h3{
	color: #008ee0;
	padding: 0;
}
.activities-list-item span{
	color: #a6a6a6;
	display: block;
	font-size: 12px;
	margin-bottom: 9px;
	margin-top: 3px;
}
.activities-list-item a{
	display: inline-block;
}
.activities-list-item a::after{
	background-color: #008ee0;
	content: '';
	display: block;
	height: 1px;
	margin-top: -3px;
	width: 100%;
}
.activities-list-anchor{
	color: #008ee0;
}
.activities-list-anchor i{
	margin-left: 6px;
	margin-top: 2px;
	position: relative;
	top: 1px;
}
.activities-list-item:first-of-type{
	border-top: 1px solid #cccccc;
	margin-top: 20px;
	padding-top: 35px;
}
.activities-list-item + .activities-list-item{
	margin-top: 40px;
}
.activities-list-avatar{
	margin-right: 40px;
}
.activities-details{
	display: flex;
	justify-content: space-between;
	margin-bottom: 71px;
}
.activities-address{
	padding: 0 0 1.125em 0;
}
.activities-address p{
	padding: 0;
}
.activities-details-sidebar{
	flex-shrink: 0;
	max-width: 400px;
	width: 100%;
}
.activities-details-img img{
	width: 100%;
}
.activities-details-img a{
	align-items: center;
	background-color: transparent;
	border: 0;
	color: #595959;
	display: flex;
	display: inline-block;
	font-size: 14px;
	justify-content: flex-end;
	margin-bottom: 15px;
	margin-left: auto;
	margin-top: 15px;
	padding: 0;
}
.activities-details-img a i{
	font-size: 25px;
	margin-left: 10px;
	position: static;
}
.sidebar-btn i.fa-phone{
	transform: rotate(0deg);
}
.activities-details-sidebar img{
	width: 100%;
}
.activities-details-sidebar .sidebar-btn{
	background-color: #008ee0;
	color: #fff;
	display: flex;
	flex-direction: column;
	height: 70px;
	justify-content: center;
	padding-left: 20px;
	position: relative;
}
.activities-details-sidebar a + a{
	margin-top: 14px;
}
.activities-details-sidebar a span{
	display: block;
	font-size: 20px;
	line-height: 1.2;
}
.activities-details-sidebar a span:first-of-type{
	font-size: 14px;
}
.activities-details-sidebar .sidebar-btn:hover{
    background-color: #595959;
}
.activities-details-sidebar i{
	align-items: center;
	bottom: 0;
	display: flex;
	font-size: 20px;
	position: absolute;
	right: 24px;
	top: 0;
}
.activities-details-content{
	max-width: 677px;
	width: 100%;
}
.activities-details-content h2{
	color: #008ee0;
	padding-bottom: 0;
}
.villas-slider-section{
	background-color: #3a4349;
	clear: both;
	color: #fff;
	height: 487px;
	overflow: hidden;
	padding-top: 65px;
	text-align: center;
}
.villas-slider-section.secondary{
	background-color: #efefef;
	height: auto;
	padding-bottom: 15px;
	padding-top: 31px;
}
.villas-slider-section.secondary h4{
	color: #008ee0;
}
.villas-slider-section h4{
	color: #fff;
	font-size: 20px;
	margin-bottom: 25px;
	padding: 0 1em;
	webkit-font-smoothing: antialiased;
}
.villas-slider{
	margin: 0 auto;
	max-width: 1040px;
}
.villas-slider .slick-arrow{
	background-color: transparent;
	background-repeat: no-repeat;
	background-size: contain;
	border: 0;
	color: transparent;
	cursor: pointer;
	height: 28px;
	position: absolute;
	top: 135px;
	width: 17px;
	z-index: 1;
}
.villas-slider .slick-prev{
	background-image: url('../images/ui/arrow-prev.png');
	left: -30px;
}
.villas-slider .slick-next{
	background-image: url('../images/ui/arrow-next.png');
	right: -30px;
}
.villas-slider .slick-dots{
	margin-top: 31px;
	padding: 0;
}
.villas-slider .slick-dots li{
	margin: 0 4px;
}
.villas-slider .slick-dots button{
	border-radius: 50%;
	color: transparent;
	height: 7px;
	padding: 0;
	text-indent: -9999px;
	width: 7px;
}
.villas-slider .slick-dots button{
	background-color: #a6a6a6;
}
.villas-slide-card{
	background-color: #fff;
	height: 299px;
	margin: 0 20px;
	text-align: left;
}
.villas-slide-card h4{
	color: #008ee0;
	margin: 0;
	padding: 0;
}
.villas-slide-card span{
	color: #595959;
	font-size: 12px;
}
.villas-slide-card img{
	width: 100%;
}
.villas-slide-content{
	padding-left: 15px;
	padding-top: 11px;
}
.villas-slide-number{
	position: relative;
}
.villas-slide-number + .villas-slide-number::before{
	background-color: #cccccc;
	content: '';
	display: inline-block;
	height: 14px;
	left: 0;
	position: absolute;
	top: 3px;
	width: 1px;
}
.villas-slide-number + .villas-slide-number{
	padding-left: 10px;
}
.villas-slide-number i{
	color: #008ee0;
	margin-right: 2px;
}
.algarve-container{
	margin-top: 30px;
}
.algarve-heading{
	display: flex;
	justify-content: space-between;
	margin-top: 45px;
}
.algarve-heading.secondary{
	margin: 35px 0;
}
.algarve-heading h2{
	font-size: 44px;
}

.legal-heading .drop-filter{
	display: none;
}
.legal-heading .drop-filter .selectric{
	width: 280px;
}

.algarve-heading-text p:last-of-type{
	padding-bottom: 45px;
}
.algarve-cards .main-container{
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
}
.algarve-cards{
	background-color: #efefef;
	padding:3rem 0 2rem 0;
}
.algarve-card-col{
	max-width: 360px;
	width: 100%;
}
.algarve-card h4{
	font-size: 20px;
}
.algarve-card{
	background-color: #fff;
	box-shadow: 0px 2px 24px -7px rgba(0,0,0,0.75);
	height: 0;
	margin-bottom: 32px;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-20px);
	transition: transform 600ms ease-in-out,
 opacity 600ms ease-in-out;
	width: 100%;
}

.algarve-card::before {
    content: url(../images/svg/wait_icon_alt.svg);
    display: block;
    height: 3rem;
    left: calc(50% - 1.5rem);
    position: absolute;
    text-align: center;
    top: 5rem;
    width: 3rem;
    -webkit-animation-name: wait;
    -webkit-animation-duration: 1.4s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-name: wait;
    animation-duration: 1.8s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    z-index: 0;
}
.algarve-card.has-loaded{
	height: auto;
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}
.algarve-card img {
    position: relative;
	width: 100%;
}

.algarve-card h4{
	border-bottom: 1px solid #e5e5e5;
	color: #008ee0;
	line-height: 1.1;
	margin-bottom: 10px;
	padding: 15px 13px 11px;
}
.algarve-card p{
	color: #595959;
	font-size: 12px;
	letter-spacing: 0;
	line-height: 1.6;
	padding-left: 13px;
	padding-right: 13px;
}
.algarve-tags{
	align-items: center;
	background-color: #f7f7f7;
	box-shadow: 0 1px 2px 1px rgba(0,0,0,0.10);
	display: flex;
	flex-wrap: wrap;
	padding: 5px 15px 5px 35px;
	padding-bottom: 0;
	position: relative;
}
.algarve-tags i{
	color: #008ee0;
	left: 13px;
	margin-right: 6px;
	position: absolute;
	top: 12px;
}
.algarve-tags li{
	display: inline-block;
	font-size: 12px;
	letter-spacing: 0;
	line-height: 2;
	padding: 0;
}
.algarve-tags li::before{
	display: none;
}
.algarve-tags li::after{
	color: inherit;
	content: ',';
	display: inline-block;
	font-size: 12px;
	margin-right: 5px;
	position: static;
}
.algarve-tags li:last-of-type::after{
	display: none;
}
.algarve-card-anchor{
	align-items: center;
	display: flex;
	font-size: 1rem;
	padding: 1rem;
    position: relative;
    transition: all 300ms ease-in-out;
}
.algarve-card-anchor::after {
    background-image: -webkit-linear-gradient(rgba(0,0,0,0.15), rgba(0,0,0,0));
    background-image: -o-linear-gradient(rgba(0,0,0,0.15), rgba(0,0,0,0));
    background-image: linear-gradient(rgba(0,0,0,0.15), rgba(0,0,0,0));
    content: '';
    display: block;
    height: 0.5rem;
    left: 0px;
    position: absolute;
    top: 0;
    width: 100%;
}
.algarve-card-anchor:hover{
	background-color: #008ee0;
	color: #fff;
}
.more-cards{
	background-color: #008ee0;
	border: 0;
	border-radius: 2px;
	box-shadow: 0px 2px 28px -7px rgba(0,0,0,0.65);
	color: #fff;
	cursor: pointer;
	display: block;
	font-size: 14px;
	height: 40px;
	margin: 0 auto;
	width: 150px;
}
.more-cards:hover{
	background: #595959;
}
.algarve-colophon{
	padding-bottom: 59px;
	text-align: center;
}
.algarve-colophon .algarve-colophon-text{
	font-size: 15px;
	margin: 0 auto;
	max-width: 850px;
	padding-bottom: 40px;
}
.algarve-colophon-title{
	color: #008ee0;
	font-size: 19px;
	line-height: 0;
	margin-top: 59px;
}
.algarve-colophon-title span{
	font-family: 'tex_gyre_adventor_bold';
	font-weight: bold;
}
.algarve-colophon a{
	align-items: center;
	border: 1px solid #595959;
	border-radius: 2px;
	color: #595959;
	display: flex;
	font-size: 13px;
	height: 46px;
	justify-content: center;
	margin: 0 auto;
	width: 176px;
}
.algarve-tag-heading{
	align-items: center;
	color: #008ee0;
	display: flex;
	font-size: 33px;
	line-height: 1;
	padding: 0;
}
.algarve-sidebar-item{
	font-size: 12px;
}
.algarve-sidebar-item:nth-child(2){
	border-top: 1px solid #cccccc;
	padding-top: 19px;
}
.algarve-sidebar-item + .algarve-sidebar-item{
	margin-top: 28px;
}
.algarve-sidebar-item:nth-child(3) i{
	margin-right: 8px;
}
.algarve-sidebar-item h4{
	color: #008ee0;
	display: flex;
	font-size: 14px;
	margin-bottom: 2px;
	padding: 0;
}
.algarve-sidebar-item h4 i{
	display: inline-block;
	margin-right: 5px;
	position: static;
}
.algarve-sidebar-item ul{
	padding: 0;
}
.algarve-sidebar-item li{
	display: inline-block;
	line-height: 1.8;
	padding: 0;
}
.algarve-sidebar-item li:before{
	display: none;
}
.algarve-sidebar-item li:after{
	content: ',';
	margin-right: 5px;
	position: static;
}

.algarve-content h2{
	margin-bottom: 30px;
}
.legal-heading{
	background-image: url('../images/legal/legal-heading.jpg');
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	color: #fff;
	height: 350px;
	position: relative;
}
.legal-heading .main-container{
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	position: relative;
}
.legal-heading .breadcrumb{
	border-bottom: 0;
	left: 0;
	margin-top: 0;
	padding-top: 10px;
	position: absolute;
	top: 0;
	webkit-font-smoothing: antialiased;
	width: 100%;
}
.legal-heading .breadcrumb::after{
	background-color: rgba(255,255,255,0.3);
	content: '';
	display: block;
	height: 1px;
	margin-top: 11px;
	padding: 0;
	width: 100%;
}
.legal-heading .breadcrumb a{
	color: #fff;
}
.legal-heading .breadcrumb li + li:before{
	color: #fff;
	webkit-font-smoothing: antialiased;
}
.legal-heading h1{
	align-items: center;
	color: #fff;
	/*display: flex;*/
	font-size: 33px;
	justify-content: center;
	padding: 0;
	text-align: center;
	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.4);
}
.legal-heading p{
	color: #fff;
	font-size: 18px;
	margin-top: 10px;
	text-align: center;
	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.4);
}
.legal-heading-nav{
	align-items: center;
	background-color: rgba(0, 0, 0, 0.5);
	bottom: 0;
	color: #fff;
	display: flex;
	height: 70px;
	justify-content: center;
	left: 0;
	position: absolute;
	right: 0;
}
.legal-heading-nav ul{
	display: flex;
	height: 100%;
	padding: 0;
}
.legal-section-tab{
	align-items: center;
	color: #fff;
	cursor: pointer;
	display: flex;
	font-size: 12px;
	height: 100%;
	padding: 0 20px;
	position: relative;
	text-transform: uppercase;
}
.legal-section-tab::after{
	background-color: #008ee0;
	bottom: 0;
	content: '';
	display: block;
	height: 6px;
	left: 0;
	opacity: 0;
	position: absolute;
	transition: opacity 300ms ease-in-out;
	width: 100%;
}
.legal-section-tab:hover,
.legal-section-tab.is-active{
	background-color: rgba(0, 0, 0, 0.4);
}
.legal-section-tab:hover::after,
.legal-section-tab.is-active::after{
	opacity: 1;
}
.legal-heading-nav li::before{
	display: none;
}
.legal-section{
	display: none;
	margin: 0 auto;
	max-width: 1140px;
}
div[class*="legal-section-"]{
	padding: 3rem 1rem;
}
.legal-section.is-active{
	display: block;
}
.legal-tabs{
	display: flex;
    margin: -3rem 0 0 0;
}
.legal-tab{
	background-color: transparent;
	border: 0;
	border-bottom: 6px solid #efefef;
	cursor: pointer;
	font-size: 21px;
	height: 140px;
	transition: all 300ms ease-in-out;
	width: 50%;
}
.legal-tab.is-active,
.legal-tab:hover{
	border-bottom: 6px solid #008ee0;
	color: #008ee0;
}
.legal-tab-content{
	display: none;
	padding-bottom: 73px;
	padding-top: 70px;
}
.legal-tab-content.is-active{
	display: block;
}
.legal-tab-content h4{
	color: #008ee0;
	font-size: 21px;
}
.legal-tab-content ul{
	padding: 0;
}
.legal-tab-content li{
	/*font-size: 14px;*/
	padding: 0 0 0 35px;
	position: relative;
}
.legal-tab-content li.sml{
	/*font-size: 14px;*/
    line-height:1.75em;
	padding: 0 0 0 1.5rem;
	position: relative;
}
.legal-tab-content li + li{
	margin-top: 13px;
}
.legal-tab-content li p{
	padding: 0 0 10px 0;
}
.legal-tab-content li strong{
	margin-bottom: 10px;
}
ul.terms-list{
	margin-top: -10px;
}
li.terms-point{
	padding: 0;
}
li.terms-point + li.terms-point{
	margin: 0;
}
li.terms-point::before{
	color: #008ee0;
	content: '•';
	display: inline-block;
	font-size: 14px;
	padding-right: 10px;
	position: static;
}
.legal-heading.about-heading{
	/*background-image: url('../images/about/about-heading.jpg');*/
	overflow: hidden;
}
.team-about{
	padding: 70px 15px 0 15px;
	text-align: center;
}
.team-about h2{
	color: #008ee0;
	margin-bottom: 35px;
	padding: 0;
}
.team-grid{
	justify-content: space-between;
	margin: 0 auto;
	max-width: 992px;
}
.team-member{
	cursor: pointer;
	display: inline-block;
	margin-bottom: 80px;
	max-width: 325px;
	width: 100%;
}
.team-member img{
	border-radius: 50%;
	height: 200px;
	width: 200px;
}
.team-member h3{
	font-size: 56px;
	padding: 0;
}
.team-member span{
	display: block;
	font-size: 0.8571em;
	margin-bottom: 0.713em;
	margin-top: 0.5em;
}
.team-slider-overlay{
	align-items: center;
	background-color: rgba(0, 0, 0, 0.6);
	bottom: 0;
	display: flex;
	justify-content: center;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	right: 0;
	top: 0;
	transition: opacity 300ms ease-in-out;
	z-index: 20000;
}
.team-slider-overlay.is-active{
	opacity: 1;
	overflow: scroll;
	pointer-events: auto;
}
.team-slider-container{
	background-color: #fff;
	/*height: 510px;*/
	position: relative;
	width: 440px;
}
.team-slider-container .modal-close{
	background-image: url('../images/ui/modal-close.png');
	background-position: center center;
	background-size: contain;
	cursor: pointer;
	height: 28px;
	position: absolute;
	right: -35px;
	top: -35px;
	width: 28px;
	z-index: 1;
}
.team-slider-container .slick-arrow{
	background-color: transparent;
	background-repeat: no-repeat;
	background-size: contain;
	border: 0;
	box-shadow: noe;
	color: transparent;
	cursor: pointer;
	height: 28px;
	position: absolute;
	text-indent: -9999px;
	top: 50%;
	width: 20px;
}
.team-slider-container .slick-prev{
	background-image: url('../images/ui/chevron-prev-white.png');
	left: -40px;
}
.team-slider-container .slick-next{
	background-image: url('../images/ui/chevron-next-white.png');
	right: -40px;
}
.team-slide{
	color: #595959;
	padding: 18px 30px 5px 18px;
	padding-top: 18px;
	position: relative;
	text-align: center;
}
.team-slide::after{
	background-color: #008ee0;
	content: '';
	display: block;
	height: 170px;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: -1;
}
.team-slide img{
	border-radius: 50%;
	height: 200px;
	margin: 0 auto;
	width: 200px;
}
.about-form-container{
	background-image: url('../images/about/about-bg.jpg');
	background-position: center center;
	background-size: cover;
}
.about-form{
	background-color: rgba(0, 0, 0, 0.5);
	color: #fff;
	margin: 0 auto;
	max-width: 900px;
	padding: 70px 50px;
	webkit-font-smoothing: antialiased;
}
.about-form .input-group{
	margin-bottom: 20px;
}
.about-form-cols{
	display: flex;
	justify-content: space-between;
}
.about-form-col{
	width: 50%;
}
.about-form-col:nth-child(1){
	margin-right: 20px;
}
.about-form h3{
	padding-bottom: 15px;
}
.input-group.textarea-desktop{
	margin-bottom: 0;
}
.textarea-mobile{
	display: none;
}
.about-form p{
	font-size: 13px;
}
.about-form label{
	color: #fff;
	display: block;
	font-size: 13px;
	margin-bottom: 5px;
	webkit-font-smoothing: antialiased;
}
.about-form input{
	height: 36px;
}
.about-form textarea{
	height: 192px;
}
.about-secondary-container{
	display: flex;
	justify-content: space-between;
}
.about-secondary-container .input-group:nth-child(1){
	margin-right: 20px;
}
.about-secondary-container .input-group{
	width: 100%;
}
.about-form .checkbox-row{
	color: #fff;
	webkit-font-smoothing: antialiased;
}
.about-form .checkmark{
	background-color: transparent;
	border-color: #fff;
}
.about-form .checkmark i{
	color: #fff;
}
.about-form button{
	background-color: #008ee0;
	border: 0;
	color: #fff;
	cursor: pointer;
	font-size: 21px;
	height: 49px;
	margin-top: 42px;
	transition: all 0.35s ease;
	width: 100%;
}
.about-form button:hover{
	background-color: #595959;
}
.about-form .checkbox-row a{
	color: #fff;
}
.about-colophon{
	align-items: center;
	background-color: #3a4349;
	color: #fff;
	display: flex;
	flex-direction: column;
	height: 190px;
	justify-content: center;
	padding: 0 15px;
	text-align: center;
	webkit-font-smoothing: antialiased;
}
.about-colophon h3{
	font-size: 28px;
	margin-bottom: 25px;
	padding: 0;
}
.about-colophon p{
	font-size: 14px;
	max-width: 1005px;
	padding: 0;
}
.reviews-heading{
	padding-bottom: 40px;
	text-align: center;
}
.reviews-heading h2{
	color: #595959;
	font-size: 44px;
	margin-top: 60px;
	padding-bottom: 20px;
}
.reviews-mobile-title{
	color: #008ee0;
	display: none;
	padding-top: 40px;
	position: static;
}
.reviews-heading p{
	margin: 0 auto;
	max-width: 830px;
}
.reviews-content{
	background: linear-gradient(90deg, #efefef 65%, #f7f7f7 35%);
	float: left;
	width: 100%;
}
.reviews-content .main-container{
	width: 900px;
}
.reviews-content .review-quote p{
	height: 119px;
	overflow: hidden;
}
@-moz-document url-prefix(){
	.reviews-content .review-quote p{
		height: 126px;
		overflow: hidden;
	}
}
.reviews-content .review-quote p.is-open{
	height: auto;
}
.activities-list-content .drop-filter,
.reviews-content .drop-filter{
	display: none;
}
.review-more{
	color: #008ee0;
	cursor: pointer;
	display: block;
	font-size: 12px;
	margin-top: 15px;
}
.review-more.is-active::after{
	transform: rotate(0deg);
}
.review-more::after{
	border-color: transparent transparent #008ee0 transparent;
	border-style: solid;
	border-width: 0 5px 6px 5px;
	bottom: 1px;
	content: '';
	display: inline-block;
	height: 0;
	margin-left: 13px;
	position: relative;
	transform: rotate(180deg);
	width: 0;
}
.reviews-cols{
	display: table;
}
.reviews-col{
	display: table-cell;
	height: 100%;
	vertical-align: top;
}
.reviews-col:nth-child(1){
	background: #efefef;
	padding: 80px 5% 70px 0;
	width: 75%;
}
.reviews-col:nth-child(1) h3{
	color: #008ee0;
	left: 0;
	position: absolute;
	top: -44px;
}
.reviews-col:nth-child(2){
	color: #008ee0;
	padding-left: 5%;
	padding-top: 40px;
	width: 25%;
}
.reviews-col:nth-child(2) h3{
	border-bottom: 1px solid #cccccc;
	margin-bottom: 20px;
	max-width: 285px;
}
.reviews-col li::before{
	display: none;
}
.reviews-col li{
	padding: 0 0 0 15px;
}
.reviews-col .reviews-date{
	cursor: pointer;
	font-size: 16px;
	margin-bottom: 10px;
	padding: 0;
	position: relative;
}
.reviews-date.is-open::after{
	transform: none;
}
.reviews-date.is-open > ul{
	display: block;
}
.reviews-date ul{
	display: none;
}
.reviews-date ul li:nth-child(1) a{
	display: block;
	margin-top: 7px;
}
.reviews-date ul li a{
	font-size: 14px;
}
.reviews-date::after{
	border-color: transparent transparent #008ee0 transparent;
	border-style: solid;
	border-width: 0 5px 6px 5px;
	content: '';
	display: inline-block;
	height: 0;
	left: 48px;
	position: absolute;
	top: 10px;
	transform: rotate(180deg);
	width: 0;
}
.reviews-col li span{
	color: #008ee0;
}
.reviews-col li a{
	color: #595959;
}
.list-heading{
	background-image: url('../images/list/list-heading.jpg');
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	color: #fff;
	height: 560px;
	overflow: hidden;
	position: relative;
}
.list-heading .main-container{
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	position: relative;
}
.dyn-header .breadcrumb li,
.list-heading .breadcrumb li{
	color: #fff;
}
.dyn-header .breadcrumb,
.list-heading .breadcrumb{
	border-bottom: 0;
	left: 0;
	margin-top: 0;
	padding-top: 10px;
	position: absolute;
	top: 0;
	webkit-font-smoothing: antialiased;
	width: 100%;
}
.dyn-header .breadcrumb::after,
.list-heading .breadcrumb::after{
	background-color: rgba(255,255,255,0.3);
	content: '';
	display: block;
	height: 1px;
	margin-top: 11px;
	padding: 0;
	width: 100%;
}
.dyn-header .breadcrumb a,
.list-heading .breadcrumb a {
	color: #fff;
}
.dyn-header .breadcrumb li + li:before,
.list-heading .breadcrumb li + li:before {
	color: #fff;
	webkit-font-smoothing: antialiased;
}

.list-heading h1 {
    color: #fff;
    font-size: 2.5rem;
    line-height: 1.143rem;
    padding: 0 0 2.5rem 0;
    text-align: center;
	webkit-font-smoothing: antialiased;
}
.list-heading h1 span{
    color: #fff;
    font-size: 1.143rem;
    text-align: center;
	webkit-font-smoothing: antialiased;
}
.list-numbers{
	display: flex;
	justify-content: space-between;
	max-width: 1000px;
	text-align: center;
	width: 100%;
}
.list-number{
	webkit-font-smoothing: antialiased;
}
.list-number span{
	color: #fff;
	display: block;
	font-size: 56px;
	line-height: 1;
	margin-bottom: 10px;
	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.4);
}
.list-number p{
	font-size: 1.143rem;
	line-height: 1.3;
	margin: 0;
	padding: 0;
}
.list-heading .list-cta{
	align-items: center;
	background-color: #008ee0;
	color: #fff;
	display: flex;
	font-size: 21px;
	height: 40px;
	justify-content: center;
	margin-top: 53px;
	webkit-font-smoothing: antialiased;
	width: 160px;
}
.list-heading .list-cta:hover{
	background-color: #595959;
}
.list-info{
	padding-bottom: 65px;
	padding-top: 70px;
	text-align: center;
}
.list-info p{
	padding-bottom: 40px;
}
.list-info .list-step-icon{
	margin-bottom: 20px;
}
.list-info i{
	color: #008ee0;
    display: block;
	font-size: 60px;
	margin: 0 auto;
	padding: 25px 0;
}
.list-info span{
	color: #008ee0;
	display: block;
	font-size: 19px;
	margin-bottom: -7px;
}
.list-info h2{
	color: #008ee0;
	font-size: 130px;
	line-height: 1;
	padding: 0;
}
.list-steps{
	display: flex;
	justify-content: space-between;
}
.list-step h3{
	color: #008ee0;
	font-size: 21px;
	line-height: 1;
	margin-bottom: 15px;
	margin-top: 30px;
	padding: 0;
}
.list-step p{
	max-width: 320px;
	padding: 0;
}
.list-step-icon{
	background-position: center center;
	background-repeat: no-repeat;
	border: 1px solid #e1e1e1;
	border-radius: 50%;
	height: 120px;
	margin: 0 auto;
	width: 120px;
}

/*
 * Following block defines the OUTER LIST LAYOUT for property cards.
 * - Mobile: single column.
 * - ≥900px: two equal columns using CSS Grid.
 * - `align-items: stretch` ensures cards in the same row share height.
 * Also see: the card container `.results-grid .result-item` below.
 */
.results-grid{
    display: grid;
    grid-template-columns: 1fr;       /* mobile */
    gap: 0px;                        /* space between cards */
    align-items: stretch;             /* equal height per row */
}
@media (min-width: 900px){
    .results-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/*
 * Following block styles the CARD CONTAINER inside the grid.
 * - Vertical flex column so content stacks: image, text, footer.
 * - `height:100%` lets each card fill the grid row height.
 * - Visual shell (white, radius, shadow). `overflow:hidden` clips overlays.
 * Also see: `.result-text` (flex column) and `.result-data-rate` (footer).
 */
.results-grid .result-item{
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border-radius: 0px;
    box-shadow: 0 2px 12px rgba(0,0,0,.12);
    overflow: hidden;
}

/*
 * Following block makes the IMAGE LINK a block-level region.
 * - Allows it to span full card width and hold the ratio wrapper/swiper.
 */
.results-grid .result-item .result-img{
    display: block;
}

/*
 * Following block creates a fixed-ASPECT-RATIO wrapper for the media.
 * - Classic “padding-top” trick reserves ~800×460 (57.5%) to avoid CLS.
 * - The inner `.sb-swiper` is absolutely positioned to fill that box.
 * Important detail: keep the wrapper `position:relative` for `inset:0`.
 */
.result-img .sb-swiper-ratio { position: relative; width: 100%; height: 0; padding-top: 57.5%; }
.result-img .sb-swiper-ratio > .sb-swiper { position: absolute; inset: 0; }

/*
 * Following block ensures slide images fill their slide and crop nicely.
 * - `object-fit: cover` = edge-to-edge without distortion.
 * - `display:block` removes inline image whitespace.
 */
.result-img .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }

/*
 * Following block styles SWIPER CONTROLS for legibility over photos.
 * - White arrows + soft shadow for contrast.
 * - Bullets: light base; active bullet uses brand blue.
 * Also see: pagination positioning further below.
 */
.result-img .swiper-button-prev,
.result-img .swiper-button-next { color: #fff; filter: drop-shadow(0 2px 6px rgba(0,0,0,.6)); }
.result-img .swiper-pagination-bullet { background: rgba(255,255,255,.9); }
.result-img .swiper-pagination-bullet-active { background: #1e73be; }

/*
 * Following block is a placeholder hook for control-layer tweaks.
 * - Add `z-index` / `pointer-events` here if overlays ever block clicks.
 * Example: z-index: 5; pointer-events: auto;
 */
.result-img .swiper-button-prev,
.result-img .swiper-button-next,
.result-img .swiper-pagination {  }

/*
 * Following block is a to control the size and style of the swiper controls;
 */
.result-img .swiper-button-prev::after,
.result-img .swiper-button-next::after { font-size:2rem; }

/*
 * Following block improves touch ergonomics on phones/tablets.
 * - Slightly enlarges arrow targets without affecting desktop.
 */
@media (pointer:coarse){
    .result-img .swiper-button-prev,
    .result-img .swiper-button-next { transform: scale(1.2); }
}

/*
 * Following block sets SWIPER THEME VARIABLES for this media area.
 * - Progressbar thickness + theme color (used by some UI elements).
 * Note: If you’re using bullets (not progressbar), only the theme color matters.
 */
.result-img .sb-swiper {
    --swiper-pagination-progressbar-size: 6px;
    --swiper-theme-color: #ffffff;
}

/*
 * Following block pins the PAGINATION ROW to the bottom of the media.
 * - Forces bullets/progressbar to sit on the lower edge of the image.
 */
.result-img .swiper-pagination-horizontal {
    bottom: 0 !important;
    top: auto !important;
    left: 0 !important;
    width: auto;
    background: rgba(0,0,0,0.5);
    padding: 0.75rem 0.75rem 0.75rem 2.25rem;
    color: #fff;
    font-size: 0.85714286rem;
    line-height: 1rem;
}
.result-img .swiper-pagination-horizontal::before {
    content: "\e902";
    color: #fff;
    font-size: 1rem;
    font-family: sandyblue;
    padding: 0 0.5rem 0 0;
    line-height: 1rem;
    position: absolute;
    left: 0.75rem;
}

/*
Hacky reset of img spans
*/
.result-img .swiper-pagination-horizontal span {
    box-sizing: unset !important;
    bottom: unset !important;
    left: unset !important;
    opacity: unset !important;
    padding: unset !important;
    position: unset !important;
    text-shadow: unset !important;
    width: unset !important;
}

/*
 * Following block styles the TEXT AREA (everything under the image).
 * - Flex column that grows to fill leftover space.
 * - Link inherits color and drops default underline.
 * Important detail: enables footer pin with `margin-top:auto`.
 */
.results-grid .result-item .result-text{
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    text-decoration: none;
    color: inherit;
}

/*
 * Following block clamps the INTRO blurb to ~3 lines.
 * - Keeps rows tidy and card heights reasonable.
 * - Older browsers simply respect `overflow:hidden`.
 */
.results-grid .result-item .intro{
    display: -webkit-box;
    -webkit-line-clamp: 3;            /* show ~3 lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/*
 * Following block lays out the FOOTER BAR (price/discount) in-flow.
 * - Pinned to the bottom via `margin-top:auto`.
 * - Full-width, padded, with a thin top divider.
 * - Horizontal flex: icon + text aligned center with a small gap.
 * Important: `padding: ... !important` overrides legacy utility padding
 * (e.g., `p-lft-300`) used by old overlay ribbons.
 */
.results-grid .result-item .result-data-rate{
    margin-top: auto;                 /* push footer to bottom */
    align-self: stretch;              /* stretch across card */
    width: 100%;
    bottom: auto; left: auto; right: auto;
    display: flex; align-items: center;
    gap: 10px;
    padding: 12px 16px !important;
    border-top: 1px solid #eee;
}

/*
 * Following block normalizes the TAG ICON inside the footer bar.
 * - Removes absolute positioning/transform so it sits inline beside the text.
 */
.results-grid .result-item .result-data-rate .icon-tag{
    position: static !important;
    margin: 0 10px 0 0;
    transform: none;
    top: auto;
    left: auto;
    font-size: 14px; line-height: 1;
}

/*
 * Following block removes legacy pseudo-elements from the rate bar.
 * - Prevents decorative shapes from the old ribbon overlay pattern.
 */
.results-grid .result-item .result-data-rate::before,
.results-grid .result-item .result-data-rate::after{ content: none !important; }

/*
 * Following block is a simple UTILITY to force full width when needed.
 * - Kept generic; use sparingly since the footer already stretches by default.
 */
.rate-full-width { width: 100%; }
