/*
Theme Name: Serpentine
Author: Craig McNaught
Version: 1.0
*/

* {
    box-sizing: border-box;
}

:root {
	--main-header-height: 30rem;
}

body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.page {
	font-family: Quicksand, sans-serif;
	color: rgba(60,60,60);
}

.white-fill {
	fill: white;
}

.almost-black-bg {
	background-color: #040000;
}

.grey {
	color: rgba(60,60,60);
}

.double-spacing {
	line-height: 2.5;
}

.sans-serif {
	font-family: Quicksand, sans-serif;
}

.serif {
	font-family: Benne, serif;
}

.serif-alt {
	font-family: Cormorant Garamond, serif;
}

h1, h2 {
	color: white;
	font-weight: normal;
}

h1 {
	font-size: 4rem;
	line-height: 1.2;
	color: #f0e4d0;
	color: rgb(226,206,166);
}

h2 {
	font-size: 1.6rem;
	line-height: 1.2;
}

.home h2 {
	font-size: 3rem;
	font-style: italic;
}

h2 + .wp-block-button {
	margin-top: 2rem;
}

h3 {
	font-size: 1.8rem;
	font-weight: normal;
	margin-top: 0;
}

h4 {
	font-size: 0.7rem;
	letter-spacing: 0.2rem;
	color: rgb(126,126,126);
	text-transform: uppercase;
}

h4 + h3 {
	margin-top: -0.8rem;
}

.btn-whatsapp a {
	background-color: #25D366;
	background-color: #128C7E;
}

.individual-cottage p {
	line-height: 1.5;
}

.individual-cottage .hero-image {
	padding-top: 10%;
	padding-bottom: 10%;
	position: relative;
	background-size: cover;
}

.individual-cottage .hero-image h1 {
	font-size: 6rem;
	font-family: Parisienne, serif;
	margin-bottom: 0.1rem;
	color: white;
}

.individual-cottage .hero-image h2 {
	font-family: Benne, serif;
	text-transform: uppercase;
	font-size: 1rem;
	color: #e7e7e7;
	letter-spacing: 2px;
}

.individual-cottage h2 {
	font-family: Benne, serif;
}

.individual-cottage .wp-block-gallery {
	margin-top: 2rem;
}

.attribution a {
	color: #e7e7e7;
	font-size: 0.7rem;
	font-style: italic;
}

ul.wp-block-list li {
    margin-bottom: 0.6rem;
}

ul.wp-block-list li:last-child {
    margin-bottom: 0;
}


.wp-element-button {
	opacity: 0.8;
	transition: opacity 0.5s;
}

.wp-element-button:hover {
	opacity: 1;
}

.purple-bg {
	background-color: #74505f;
}

.purple {
	color: #74505f;
}

.grey-blue {
	color: rgb(46,56,81);
}

.grey-blue-bg {
	background-color: rgb(46,56,81);
}

.wp-element-button, .wp-block-button__link {
	background-color: #74505f;
	background-color: rgb(46,56,81);
}

h2.wp-block-heading {
	text-transform: uppercase;
	color: rgb(46,56,81);
}

.reviews p {
	padding: 1.5rem;
	background-color: rgba(46,56,81,0.1);
	font-size: 0.85rem;
	border-radius: 1rem;
	line-height: 1.7;
}

.reviews p em {
	color: rgb(46,56,81);
}

.reviews p em::before {
	content: "- ";
}

.reviews strong {
	color: black;
	font-size: 1rem;
}


.center-x {
	width: 100%;
	text-align: center;
}
.home .hero-image {
	/*padding-top: calc(100vh - var(--main-header-height, 30rem));*/
	padding-top: 28%;
	padding-bottom: 5rem;
}

.hero-image {
	background-position: center top;
	background-size: cover;
	background-size: contain;
	background-size: 100% auto;
	background-repeat: no-repeat;
}

.hero-image h2:has(+h1) {
	margin-bottom: 0.7rem;
}

.hero-image h1:has(+h2) {
	margin-bottom: -0.7rem;
}

.hero-image h1, .hero-image h2 {
	margin-block-start: 0;
	margin-block-end: 0;
}

.all-caps {
	text-transform: uppercase;
}

.no-margin-bottom {
	margin-bottom: 0;
}

.site-header {
    width: 100%;
	background-color: rgba(46,56,81,0.85);
    position: fixed;
    top: 0;
    left: 0;
	z-index: 9999;
}

.site-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0.7rem 2rem;
    color: white;
}

.site-logo {
    text-decoration: none;
    color: inherit;
    font-weight: 700;
}

.site-logo img:first-of-type {
    margin-right: 1rem;
}

.site-logo img:nth-of-type(2) {
    margin-bottom: 0.2rem;
}

.site-navigation {
    display: flex;
}


.primary-menu {
    text-transform: uppercase;
    font-size: 0.9rem;
    display: flex;
    gap: 2.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.primary-menu a {
    display: block;
    text-decoration: none;
    color: inherit;
	opacity: 0.8;
	transition: opacity 0.4s;
}
.primary-menu a:hover {
	opacity: 1;
}

.home-description {
	display: block;
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: 2rem;
}

.content-container {
	max-width: 1400px;
	margin: 0 auto;
	padding-top: 2rem;
}



.navigation-offset {
	margin-top: 4rem;
}

.content-container.has-header {
	padding-top: 0;
}

.brag-bar {
	max-width: 22rem;
	margin-top: 2rem;
}

.brag-bar img {
	height: 4rem !important;
	width: auto;
}








/* Desktop dropdown */

.primary-menu .menu-item-has-children {
    position: relative;
}

.primary-menu .sub-menu {
    display: none;
    position: absolute;
    margin: 0;
    padding: 0.5rem 0;
    list-style: none;
    background: white;
    min-width: 180px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	background-color: rgb(77,86,107);
}

.primary-menu .menu-item-has-children:hover > .sub-menu {
    display: block;
}

.primary-menu .sub-menu a {
    padding: 0.5rem 1rem;
    white-space: nowrap;
	color: rgba(255,255,255,0.8);
	transition: margin-left 0.3s;
}

.primary-menu .sub-menu a:hover {
    color: rgba(255,255,255,1);
	margin-left: 0.7rem;
}


/* Mobile navigation */

.menu-toggle {
    display: none;
    padding: 0.5rem 0.75rem;
    border: 1px solid currentColor;
    background: transparent;
    font: inherit;
    cursor: pointer;
}


/* ------------------- Property Explorer Home Page ------------------- */

.property-explorer-row {
	margin-bottom: 2rem;
}

.home-property-explorer {
	position: relative;
	display: block;
	height: 24rem;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.home-property-explorer.sunbird {
	background-image: url('./images/sunbird-750x500.jpg');
}

.home-property-explorer.kingfisher {
	background-image: url('./images/kingfisher-750x500.jpg');
	background-image: url('./images/kingfisher-750x422.jpg');
}

.home-property-explorer.loerie {
	background-image: url('./images/lourie-550x449.jpg');
}



.home-property-explorer .info {
	background-color: rgba(0,0,0,0.5);
	color: white;
	display: block;
	bottom: 0;
	position: absolute;
	padding-top: 1rem;
	padding-left: 1rem;
	width: 100%;
	max-height: 6rem;
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.home-property-explorer .info a {
    display: block;
    opacity: 0;
    color: rgba(255,255,255,0.8);
    text-decoration: none;
    text-transform: uppercase;
    font-size: 0.8rem;
    transition: opacity 0.2s ease;
}

.home-property-explorer:hover .info {
	max-height: 12rem;
}

.home-property-explorer:hover .info a {
    opacity: 1;
}

.home-property-explorer:hover .info a:hover {
	display: block;
	color: white;
	opacity: 1;
}

.home-property-explorer .info a:nth-of-type(2) {
	margin-bottom: 1rem;
}


.home-property-explorer h3 {
	text-transform: uppercase;
	font-size: 0.8rem;
	letter-spacing: 2;
	opacity: 0.75;
}

.home-property-explorer h2 {
	font-size: 1.5rem;
	margin: 0;
	font-style: normal;
	margin-bottom: 1rem;
}

.contact-page-contact-info p {
	line-height: 2;
}

.contact-page-contact-info strong {
	text-transform: uppercase;
}

.contact-page-contact-info a {
	color: rgb(60,60,60);
	opacity: 0.8;
	transition: opacity 0.3s ease;
}

.contact-page-contact-info a:hover {
	opacity: 1;
}


.contact-image {
	background-image: url(http://justfor2.co.za/wp-content/uploads/2026/10/DJI_0688-1024x683.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	padding-top: 10%;
	padding-bottom: 10%;
}

.contact-page-contact-info h2 {
	font-family: Benne, serif;
}

.contact-page-contact-info {
	background-color: rgba(255,255,255,0.8);
	padding: 2rem;
	border-radius: 20px 0 0 20px;
}



/* ------------------- /Property Explorer Home Page ------------------- */


.footer-address {
	text-align: left;
}

.map-container {
  position: relative;
  width: 100%;            /* Changes the width of the map layout */
  padding-bottom: 56.25%; /* Keeps a 16:9 aspect ratio (change this to adjust height) */
  padding-bottom: 30%;
  height: 0;
  overflow: hidden;
}

.map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.contact-map-container {
  padding-bottom: 56.25%; /* Keeps a 16:9 aspect ratio (change this to adjust height) */
  padding-bottom: 45%;
  margin-bottom: 2rem;
}

/* ------------------- GLOBAL FOOTER ------------------- */

.center-text {
	text-align: center;
}

.footer {
	background-color: #f5f1eb;
}

.footer h4 {
	letter-spacing: normal;
	font-size: 0.8rem;
	margin-bottom: 0;
}

.footer p {
	font-size: 0.8rem;
	color: #656461;
	
}

.footer a {
	text-decoration: none;
}

#footer-logo {
	min-width: 7rem;
	max-width: 9rem;
}

.footer-navigation {
	text-align: right;
	line-height: 2.2;
	text-transform: uppercase;
}

.footer-contact {
	line-height: 2.2;
}

.footer-navigation a {
	text-transform: uppercase;
}

.footer-logo-container {
	width: 100%;
	text-align: center;
	margin-bottom: 2rem;
}
.footer a {
	opacity: 0.8;
	transition: opacity 0.2s;
    color: #666666;
}

.footer-navigation a {
	transition: padding-right 0.3s;
}

.footer-navigation a:hover {
	padding-right: 0.5rem;
}

.footer a:hover {
	opacity: 1;
}

.footer-socmed {
	max-width: 30rem;
	justify-content: center;
	align-items: center;
}

.footer-main-content {
	margin-bottom: 0;
}

.footer-copyright {
	padding-top: 0;
	padding-bottom: 2rem;
	line-height: 2;
}

.footer-socmed .wp-block-column {
    display: flex;
    justify-content: center;
}


/* ----------------- MOBILE ------------------------- */


@media (max-width: 1480px) {
	.has-text {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

@media (max-width: 930px) {
	
	.hide-on-mobile {
		display: none;
	}
	
	.contact-get-in-touch {
		text-align: center;
	}
	
	.footer-socmed {
		max-width: 100%;
	}

	.footer-address {
		text-align: center;
	}


    .site-header-inner {
        flex-wrap: wrap;
    }

    .menu-toggle {
        display: block;
		background-color: rgba(255,255,255,0.7);
    }

    .site-navigation {
        display: none;
        width: 100%;
    }

    .site-navigation.is-open {
        display: block;
    }

    .primary-menu {
        flex-direction: column;
        gap: 0;
        width: 100%;
        padding-top: 1rem;
    }

    .primary-menu a {
        padding: 0.75rem 0;
    }

	.primary-menu .sub-menu {
		position: static;
		display: none;
		min-width: 0;
		padding: 0 0 0 1rem;
		box-shadow: none;
	}

	.primary-menu .menu-item-has-children.submenu-open > .sub-menu {
		display: block;
	}

	.primary-menu .sub-menu {
		background-color: transparent;
	}
	
    .primary-menu .sub-menu a {
        padding: 0.5rem 0;
    }
	
    .primary-menu .sub-menu li:hover {
		
	}
	
    .primary-menu .sub-menu li a {
        padding-right: 2rem;
    }
	
	#primary-navigation {
		text-align: right;
	}
	
	
}

@media (max-width: 800px) {

	.footer-socmed {
		max-width: 10rem;
		margin-left: auto;
		margin-right: auto;
	}

	.footer-navigation {
		display: none;
	}

	.footer-contact {
		text-align: center;
	}

}

@media (max-width: 780px) {
	.contact-page-contact-info {
		text-align: center;
		border-radius: 20px;
	}

}


@media (max-width: 600px) {

	.individual-cottage .hero-image h1 {
		font-size: 4rem;
	}

}