@charset "utf-8";
/* CSS Document */


@font-face {
  font-family: 'CronosPro-bold-subhead';
  src: url('../fonts/CronosPro-BoldSubh.woff2') format('woff2'),
	  url('../fonts/CronosPro-BoldSubh.woff') format('woff'),
	  url('../fonts/CronosPro-BoldSubh.ttf') format('ttf'),
	  url('../fonts/CronosPro-BoldSubh.otf') format('otf');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'CronosPro-caption';
  src: url('../fonts/CronosPro-Capt.woff2') format('woff2'),
       url('../fonts/CronosPro-Capt.woff') format('woff');
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: 'CronosPro-display';
  src: url('../fonts/CronosPro-Disp.woff2') format('woff2'),
       url('../fonts/CronosPro-Disp.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'CronosPro-lt-display';
  src: url('../fonts/CronosPro-LtDisp.woff2') format('woff2'),
       url('../fonts/CronosPro-LtDisp.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'CronosPro-regular';
  src: url('../fonts/CronosPro-Regular.woff2') format('woff2'),
       url('../fonts/CronosPro-Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}



.space5 {
	padding: 5px;
}
.space10 {
	padding: 10px;
}
.space15 {
	padding: 15px;
}
.space20 {
	padding: 20px;
}
.space30 {
	padding: 30px;
}
.space40 {
	padding: 40px;
}
.space50 {
	padding: 50px;
}
.space60 {
	padding: 60px;
}
.space70 {
	padding: 70px;
}
.space80 {
	padding: 80px;
}
.space100 {
	padding: 100px;
}

.mid {
    position: relative;
    margin: 0 auto;
    max-width: 1200px;
	text-align: center;
	padding: 0 20px;
}

.hidden {
    display: none;
}

.english, .afrikaans {
    transition: opacity 0.3s ease;
}


/*menu*/

header {
    text-align: center;
    background-color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
	padding: 20px 0;
}

nav {
	position: relative;
    margin: 0 auto;
    max-width: 1600px;
    display: flex;                  
    align-items: center;            
    justify-content: space-between; 
    padding: 0 20px;
}

a#toplogolink {
    display: flex;
    align-items: center;
}

img#logotopimg {
    width: 280px;
    display: block;
}

#topdivlinks {
    display: flex;
    align-items: center;
    gap: 5px;
	position: relative;
}

.mendivs {
    display: inline-block;
}

a.menlink {
    font-family: 'CronosPro-bold-subhead', sans-serif;
    font-size: 18px;
    color: #000;
    text-decoration: none;
	padding: 6px 14px;
	position: relative;
}

a.menlink::after { 
	content: '';
	position: absolute; 
	bottom: 2px; 
	left: 50%; 
	right: 50%; 
	height: 1px; 
	background: #000; 
	transition: left 0.25s ease, right 0.25s ease;
}
a.menlink:hover::after { 
	left: 14px; 
	right: 14px;
}

span.arownmenu {
	font-size: 14px;
    display: inline-block;
    transition: transform 0.3s ease;
}

.arownmenu.open {
    transform: rotate(180deg);
}

#menlangdiv {
	position: absolute;
	top: 30px;
	right: 15px;
	background-color: #fff;
	width: 100px;
	display: none;
	box-shadow: 0px 1px 2px -1px #000;
}

a.menlanlink {
	font-family: 'CronosPro-regular', sans-serif;
    font-size: 14px;
	display: block;
	transition-duration: 0.2s;
	padding:10px 20px;
	color:#000;
}

a.menlanlink:hover {
	background-color: #1493D5;
}

a.menlanselct {
	background-color: #1493D5;
}


a#topmobmenu {
	display: none;
}

img#menutopimg {
	width: 50px;
	display: block;
	padding-left: 20px;
}

#menuoverlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

#topdivlinks {
    z-index: 2; 
}








/*Top box*/

#topbox {
    margin-top: 80px;
    width: 100%;
    height: 800px;
    background-image: url("../imgs/background.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    z-index: 1;
}

#topinbox {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

h1#headone {
	font-family: 'CronosPro-regular', sans-serif;
	font-size: 80px;
	width: 900px;
	line-height: 90px;
	color: #fff;
	text-align: center;
	text-shadow: 0px 0px 10px #000;
    font-weight: bold;
	letter-spacing: -1px;
}

form#searcfrm {
	margin: 0 auto;
    padding: 15px 20px;
    position: relative;
    width: 600px;
    background-color: rgba(255,255,255,0.5);
    border-radius: 8px;
	-webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
	-moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
	box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
}

button#searcbut {
	display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: #1493D5;
    color: #fff;
    font-family: 'CronosPro-regular', sans-serif;
    font-size: 18px;
    font-weight: bold;
    padding: 5px;
    border-radius: 5px;
    text-decoration: none;
	border: none;
    width: 100%;
	cursor: pointer;
}

img#searchicon {
	width: 25px;
    height: 25px;
    position: static;
}

.searchfrmdiv {
	display: block;
    text-align: left;
    margin-bottom: 15px;
}

label.searhlble {
	font-family: 'CronosPro-regular', sans-serif;
    font-size: 18px;
    color: #000;
    text-align: left;
    display: block;
    padding-bottom: 10px;
}

select.seachdrop, input.srchinput {
    background-color: #fff;
    font-family: 'CronosPro-regular', sans-serif;
    font-size: 14px;
    width: 100%;
    border-radius: 5px;
    box-sizing: border-box;
	padding: 5px;
	border: solid 1px #1493D5;
	color: #495057;
}

.searchfrmbjdivs {
	display: flex;
    gap: 15px;
    margin-bottom: 15px;
}

.searchfrmdivinsids {
	font-family: 'CronosPro-regular', sans-serif;
    font-size: 18px;
    width: 100%;
    border-radius: 5px;
    box-sizing: border-box;
	padding: 5px;
	border: none;
	flex: 1;
    display: flex;
    flex-direction: column;
}

input.chkoin {
	width: 100px;
}




/*Areas*/

.bluewrap {
	background-color: #1493D5;
}

.areadiv {
	display: inline-block;
	vertical-align: middle;
	margin: 0 10px;
}

a.arealnks {
	font-family: 'CronosPro-regular', sans-serif;
	font-size: 18px;
	color: #fff;
	padding: 10px 15px;
	border:solid 1px #1493D5;
	transition-duration: 0.2s;
}

a.arealnks:hover {
	border:solid 1px #fff;
	color: #fff;
}

a.areaslct {
	border:solid 1px #fff;
}





/*Search*/

#searchresultshed {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid #ededed;
}

p.searchresultstxt {
    font-family: 'CronosPro-bold-subhead', sans-serif;
    font-size: 16px;
    color: #555757;
    margin: 0;
}

a#searchresetslink {
    font-family: 'CronosPro-regular', sans-serif;
    font-size: 15px;
    color: #1493D5;
    border: 1px solid #1493D5;
    padding: 8px 18px;
    border-radius: 20px;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.2s, color 0.2s;
}

a#searchresetslink:hover {
    background-color: #1493D5;
    color: #fff;
}

#noresultsdiv {
    text-align: center;
    padding: 60px 20px;
}

#noresultstxt {
    font-family: 'CronosPro-regular', sans-serif;
    font-size: 30px;
    color: #000;
    max-width: 800px;
    margin: 0 auto 30px;
    line-height: 35px;
}

a.noresultsback {
    font-family: 'CronosPro-regular', sans-serif;
    font-size: 16px;
    color: #fff;
    background-color: #1493D5;
    padding: 10px 25px;
    border-radius: 8px;
    text-decoration: none;
    transition: background-color 0.2s;
}

a.noresultsback:hover {
    background-color: #0f7ab5;
}





/*Property*/

.whitewrap {
	margin: 0 auto;
	background-color: #fff;
	padding: 100px 0;
}

a.propmaindiv {
	transition-duration: 0.2s;
	display: flex;         
    text-align: left;
    margin: 0 auto;
    border-radius: 10px;
    border: 1px solid #ededed;
    overflow: hidden;
    max-width: 1200px;
	position: relative;
}

a.propmaindiv:hover {
	-webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
	-moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
	box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
}

.propmobdividimg {
	width: 30%;
	display: flex;
}

.propmobdivid {
	width: 70%;
	display: flex;
	height: 220px;
}

.propmainimgdiv {
    width: 100%;        
}

.propmaininsidivimg {
    width: 100%;
    height: 100%;           
    overflow: hidden;
    position: relative;
}

img.propmainimg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    object-fit: cover;      
}

.propmaindetaildiv {
    width: 50%;
    padding: 15px 20px;
    box-sizing: border-box;
    border-left: 1px solid #ededed;
}

.propmainpricdiv {
    width: 25%;
    padding: 15px;
    box-sizing: border-box;
}

.propmainholidiconsdiv {
	width: 25%;
    padding: 15px;
	padding-top: 5px;
    box-sizing: border-box;
	text-align: right;
	border-right: 1px solid #ededed;
}

h2.propmainhed {
    font-family: 'CronosPro-bold-subhead', sans-serif;
    font-size: 30px;
    color: #000;
    padding: 0;
	padding-bottom: 5px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

p.propmaindrop, p.propmainprysis {
    font-family: 'CronosPro-regular', sans-serif;
    font-size: 20px;
    color: #1493D5;
    padding: 0;
	font-weight: bold;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

p.propmainslpplk {
    font-family: 'CronosPro-bold-subhead', sans-serif;
    font-size: 20px;
    color: #000;
}

.propmainsplkdivi {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-right: 10px;
}

img.propslpicon {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

p.propslpplekpar, p.propmainprysnam {
    font-family: 'CronosPro-regular', sans-serif;
    font-size: 20px;
    color: #000;
    margin: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

p.propmainprysis {
	padding: 2px 5px 0;
	color: #1493D5;
}

p.propmainprysnam {
	font-size: 18px;
}

.propholidayiconsdiv {
    display: flex;
    flex-direction: column;  /* stacks icon above text */
    align-items: flex-end;   /* aligns both to the right */
    gap: 5px;
}

img.propholidayicon {
    width: 50px;
    display: block;
}

p.propmaindatinma {
    font-family: 'CronosPro-regular', sans-serif;
    font-size: 16px;
    color: #000;
    margin: 0;
}

.propmobprice {
    display: none;
	background-color: #1493D5;
	width: 100%;
	padding: 10px 15px;
	margin-top: 5px;
}

hr.proplinindi {
	border: none;
	text-align: left;
	width: 30%;
	background-color: #1493D5;
	height: 2px;
	margin: 0;
}






/*Footer*/

footer {
	padding: 150px 0 0;
	text-align: left;
	background-image:url("../imgs/img-footer.jpg");
	background-size: cover;
	background-position: center center;
	margin: 0 auto;
}

h4#foothed {
	font-family: 'CronosPro-bold-subhead', sans-serif;
    font-size: 50px;
    color: #000;
	padding-bottom: 50px;
	text-align: left;
	margin: 0 auto;
	letter-spacing: -1px;
}

.footdivs {
	padding: 20px 0 40px;
	font-size: 0px;
	text-align: left;
}

h5.footsecheds {
	font-family: 'CronosPro-bold-subhead', sans-serif;
    font-size: 30px;
    color: #000;
	text-align: left;
	vertical-align: middle;
	margin: 0 auto;
	letter-spacing: -1px;
}

.footindiv {
	display: inline-block;
	vertical-align: middle;
	text-align: left;
	padding-bottom: 10px;
}

img.footicons {
	margin-right: 15px;
	width: 25px;
	vertical-align: top;
	display: inline-block;
}

a.footlinks, p.footpargr, p.footpollink {
	font-family: 'CronosPro-regular', sans-serif;
    font-size: 20px;;
	color: #000;
	display: inline-block;
	vertical-align: middle;
	line-height: 25px;
}

a.ternslnk {
	font-size: 16px;
	text-decoration: none;
}

p.footpollink {
	display: block;
	font-size: 16px;

}

.footsocilinks {
	display: inline-block;
	vertical-align: middle;
	padding: 0 10px;
}

img.socialicon {
	width: 40px;
}

.footdivid {
	display: inline-block;
	vertical-align: top;
	padding-right: 50px;
}

#footwi {
	background-color: #555757;
	display: block;
	width: 100%;
	padding: 20px 0;
	text-align: center;
	margin-top: 100px;
}

p#footdes {
	color: #fff;
	font-family: 'CronosPro-regular', sans-serif;
    font-size: 14px;
}

a#fotdeslink {
	display: inline-block;
	text-decoration: underline;
	color: #fff;
}





@media only screen and (max-width:900px) {
	
	h1#headone {
		font-size: 45px;
		width: 600px;
		line-height: 55px;
		text-shadow: 0px 0px 10px #000;
	}	
	
	#topbox {
		height: 550px;
	}
	
	#topinbox {
		top: 55%;
	}
	
	
	
	a.propmaindiv {
        flex-wrap: wrap;
    }

    .propmobdividimg {
        width: 50%;
        flex-shrink: 0;
    }

    .propmobdivid {
        width: 50%;
        flex-wrap: wrap;    /* allows children to stack inside */
    }

    /* Detail div takes full width of the right side */
    .propmaindetaildiv {
        width: 100%;
        padding: 10px 12px;
        border-left: none;
    }

    /* Holiday icons sit in a row beneath the detail div */
    .propmainholidiconsdiv {
        width: 100%;
        padding: 0px 12px 10px;
        display: flex;
        flex-direction: row;    /* icons side by side in one line */
        justify-content: flex-start;
        gap: 10px;
        border-right: none;
        text-align: left;
    }

    .propholidayiconsdiv {
        align-items: anchor-center;    /* align left on mobile */
        flex-direction: row;        /* icon and text side by side */
        gap: 6px;
    }

    img.propholidayicon {
        width: 30px;
    }

    /* Price div — hide mid and off peak, show only peak */
    .propmainpricdiv {
        display: none;              /* hide entire price div on mobile */
    }
	
	.propmobprice {
        display: block;
    }
	
	p.propmainslpplk {
		vertical-align: middle;
		padding-top: 10px;
	}
	
	
	p.propmainprysis {
		color: #fff;
		font-weight: normal;
		padding: 0;
	}
	
	.propmobdivid {
		height: auto;
	}
	
	#menlangdiv {
		box-shadow: none;
	}
	
}





@media only screen and (max-width: 800px) {

    a#topmobmenu {
        display: flex;
        align-items: center;
        gap: 5px;
        position: relative;
    }

    nav {
        padding: 0 10px;
    }

    #topdivlinks {
        display: none;
        flex: none;
        position: absolute;
        width: 100%;
        top: 60px;
        left: 0px;
        box-shadow: 0 4px 10px rgba(0,0,0,0.08);
		border-top: 3px solid #1493D5;  
    }

    .mendivs {
        display: block;
        width: 100%;
		
    }

    a.menlink {
        width: 100%;
        display: block;
        background-color: #fff;
        padding: 20px;
        position: relative;
        box-sizing: border-box;
        border-bottom: 1px solid #eee;
    }

    a.menlink::after {
        display: none;
    }

    #menlangdiv {
        position: relative;
        top: 0;
        left:50%;
		transform: translateX(-50%);
        width: 95%;
        box-shadow: none;
        border-top: none;
    }

    a.menlanlink {
        font-size: 15px;
        border-bottom: 1px solid #eee;
    }
	
	a#toplogolink {
    	height: 50px;
	}
	
	img#logotopimg {
    	width: 250px;
	}
	
	header {
    	padding: 10px 0;
	}
	
	#topbox {
		margin-top: 50px;
	}
	
	.regindiv {
		display: flex;
	}
	
	.areadiv {
		display: flex;
    	flex-grow: 1;
		margin: 0 auto;
	}
	
	a.arealnks {
		white-space: nowrap;
		text-overflow: ellipsis;
		overflow: hidden;
	}
	
	.propcaldiv {
		width: 60%;
	}
   

}






@media only screen and (max-width: 700px){

	
	.bluewrap {
		display:none;
	}
	
	form#searcfrm {
		margin: 0 auto;
		width: 250px;
        padding: 20px;
		position: relative;
		background-color: rgba(255,255,255,0.5);
		border-radius: 8px;
		-webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
		-moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
		box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.75);
	}
	
	h1#headone {
        font-size: 36px;
        width: auto;
        line-height: 44px;
    }
	
	#topbox {
		height: auto;
	}
	
	#topinbox {
		position: relative;
		top: auto;
		left: auto;
		transform: none;
		margin: 0 auto;
		padding: 70px 20px 50px;
		width: auto;
	}

    /* Stack the three fields vertically */
 	.searchfrmbjdivs {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
    }

    /* Check-in + Check-out side by side */
    .searchfrmdivinsids {
        width: calc(50% - 6px);
        flex: unset;
        padding: 0;
    }

    /* Guests field full width underneath */
    .searchfrmdivinsids:last-child {
        width: 100%;
    }
	
	.mobadpad {
		padding-bottom: 50px;
	}	
	
	.propcaldiv {
		width: auto;
	}

}


@media only screen and (max-width:600px) {
	
	
	footer {
		padding: 100px 0 0;
	}
	
	form#contcactfrm {
		margin: 100px auto;
	}

    form#searcfrm {
        width: auto;
        padding: 15px;
    }
	
	.propmobdividimg, .propmobdivid {
        width: 100%;
		text-align: center;
    }
	
	.propmobdividimg {
		height: 250px;
	}
	
	hr.proplinindi {
		margin: 0 auto;
	}
	
	.propmainholidiconsdiv {
        justify-content: center;
    }
	
	#footwi {
		margin-top: 50px;
	}
	
	a.propmaindiv {
		margin-bottom: 40px;
	}
	

}



