/*
-------------------------------------------------------------|
---             Custom Stylesheet for CHGroup             ---|
---                      Frits Steyn                      ---|
-------------------------------------------------------------|
                                                       INDEX |
-------------------------------------------------------------|
- FONT IMPORT
- VARIABLES
- TYPOGRAPHY & RESETS
- EVERYTHING ELSE
- RESPONSIVE
-------------------------------------------------------------|
                                                 FONT IMPORT |
-------------------------------------------------------------|
*/

@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400;700&family=Open+Sans:wght@300;400;700&display=swap');


/*
-------------------------------------------------------------|
                                                   VARIABLES |
-------------------------------------------------------------|
*/

:root {

	/*--color-orange: #BB8B72;
	--color-green: #75827E;
	--color-beige: #F4EEEA;*/

	--color-grey-light: #D7D7D4;
	--color-navy: #111B23;

	--fontsize-heading-primary: 59px;
	--fontsize-heading-secondary: 40px;
	--fontsize-heading-tertiary: 32px;
	--fontsize-heading-quarternary: 20px;
	--fontsize-body-small: 14px;
	--fontsize-body-normal: 16px;
	--fontsize-body-large: 18px;
	--fontsize-button: 16px;

	--spacing-primary: 75px;
	--spacing-secondary: 50px;
	--spacing-tertiary: 25px;

	--fontfamily-headings: 'Josefin Sans', sans-serif;
	--fontfamily-body: 'Open Sans', sans-serif;

	/*for animate lib - cut down delays in half*/
	--animate-delay: 0.2s !important;
}

/*
-------------------------------------------------------------|
                                         TYPOGRAPHY & RESETS |
-------------------------------------------------------------|
*/

body {
	color: var(--color-navy);
	font-size: 16px;
	font-weight: 400;
	font-family: var(--fontfamily-body);
	margin: 0;
}

body,
button, 
input, 
select, 
optgroup, 
textarea {
	font-family: var(--fontfamily-body);
}

.post, 
.page {
	margin: 0;
}

body > * {
	max-width: 1920px;
	margin: auto;
}

a,
a:visited,
a:hover,
a:focus,
a:active {
	outline: 0;
	text-decoration: none;
	color: var(--color-navy);
}

h1, 
h2, 
h3, 
h4, 
h5, 
h6 {
	text-transform: uppercase;
	color: var(--color-navy);
	font-family: var(--fontfamily-headings);
}

h1 {
	line-height: 1.1;
	margin: 0 0 15px;
	font-size: var(--fontsize-heading-primary);
}

h2 {
	font-size: var(--fontsize-heading-secondary);
}

h3 {
	font-size: var(--fontsize-heading-tertiary);
}

p {
	font-size: var(--fontsize-body-normal);
	line-height: 1.5;
}

ul,
ol {
	margin: 0;
	padding-left: 20px;
}

mark, 
ins {
	background: transparent;
}

fieldset {
	padding: 0 20px 20px;
}

.max-width-container {
	max-width: 1135px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

body.logged-in .show-logged-out,
body:not(.logged-in) .show-logged-in {
	display: none;
}

.entry-footer {
	display: none;
}

.entry-content,
.hentry {
	margin: 0;
}

.button {
	text-transform: uppercase;
	padding: 0 25px;
	display: inline-block;
	font-size: var(--fontsize-button);
	transition: all 0.1s ease 0s;
	border: 2px solid var(--color-grey-light);
	position: relative;
	z-index: 1;
	color: var(--color-navy) !important;
	background-color: var(--color-grey-light) !important;
	border-radius: 100px;
	height: 45px;
	line-height: 43px;
	cursor: pointer;
	font-weight: 400;
}

.button:hover {
	background-color: var(--color-navy) !important;
	color: var(--color-grey-light) !important;
}

.clear:after,
.clear::before,
.clear::after,
.clear {
	clear: both;
}

.parent-flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.half {
	width: 50%;
}

.third {
	width: 33.3%;
}

.twothirds {
	width: 66.6%;
}

.flex {
	display: flex;
}

.fake-heading {
	font-size: var(--fontsize-heading-primary);
	font-weight: 700 !important;
	text-transform: uppercase;
	font-family: var(--fontfamily-headings);
	margin: 0;
	line-height: 1em;
}

.pre-heading {
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	font-family: var(--fontfamily-body);
	text-transform: uppercase;
}

.rlp-header > :last-child:not(:first-child):not(.rlp-head) {
	margin-top: 20px;
}

.overflow-container {
	overflow: hidden;
}

#primary {
	margin-top: 0;
}

.custom_animate {
	opacity: 0;
}

.custom_animate.custom_animation_in-complete {
	opacity: 1;
}

/*
-------------------------------------------------------------|
                                             EVERYTHING ELSE |
-------------------------------------------------------------|
*/

#masthead {
	position: absolute;
	top: 0;
	left: 0;
	padding: 50px;
	z-index: 999;
}

.site-branding img {
	max-width: 197px;
}

.banner {
	height: 768px;
	position: relative;
}

.banner::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(117, 130, 126, 0.4);
}

.banner-content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 9;
}

.banner-content .fake-heading {
	color: #fff;
	white-space: nowrap;
}

.banner-content .pre-heading {
	color: #fff;
	font-size: var(--fontsize-heading-tertiary);
	font-weight: 300;
	margin-bottom: 15px;
}

.quad-blocks {
	display: flex;
	flex-wrap: wrap;
}

.quad-block {
	width: 25%;
	background-size: cover;
}

.quad-block {
	width: 25%;
	background-size: cover;
	position: relative;
	cursor: pointer;
	background-color: var(--color-navy);
	color: #fff;
	padding: 50px 70px;
	transition: all 0.1s ease 0s;
}

.quad-block:hover {
	background-color: var(--color-grey-light);
	color: var(--color-navy);
}

.quad-block h2 {
	color: #fff;
	font-size: var(--fontsize-heading-quarternary);
	margin: 0;
}

.quad-block:hover h2 {
	color: var(--color-navy);
}

.lightbox {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(117, 130, 126, 0.6);
	z-index: 9991;
}

.lightbox-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: transparent;
}

.lightbox-content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-color: var(--color-grey-light);
	padding: 50px 70px;
	width: 90%;
	max-width: 900px;
}

.lightbox_content-container :first-child {
	margin-top: 0;
}

.lightbox_content-container :last-child {
	margin-bottom: 0;
}

.lightbox_content-container h2 {
	font-size: var(--fontsize-heading-tertiary);
	margin-bottom: 30px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--color-navy);
}

.lightbox-close {
	position: absolute;
	top: 0;
	right: 0;
	width: 50px;
	height: 50px;
	cursor: pointer;
}

.lightbox-close span {
	position: absolute;
	top: 30px;
	left: 10px;
	height: 1px;
	width: 20px;
	background-color: var(--color-navy);
	transform: rotate(45deg);
}

.lightbox-close span:first-child {
	transform: rotate(-45deg);
}

.about {
	position: relative;
	overflow: hidden;
}

.about::before {
	content: "";
	position: absolute;
	bottom: 0;
	right: -300px;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background-image: url(/wp-content/themes/chgroup/images/logo-bg.png);
	background-repeat: no-repeat;
	background-size: 700px;
	background-position: bottom right;
}

.about-content {
	max-width: 850px;
	padding: 50px 0 100px;
}

.contact {
	color: #fff;
	background-color: #fff;
	position: relative;
	padding-bottom: 50px;
}

.contact::before {
	content: "";
	position: absolute;
	top: -65px;
	left: 0;
	height: calc(100% + 65px);
	width: 75%;
	background-color: var(--color-navy);
}

.contact .left {
	width: 50%;
	position: relative;
	z-index: 1;
}

.contact .right {
	width: 50%;
	position: relative;
	left: 100px;
	padding: 25px 0;
}

.contact h2 {
	color: #fff;
	margin-top: 0;
	margin-bottom: 0;
}

.wpcf7-form {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.wpcf7-form-control-wrap {
	width: 100%; 
	display: block;
	font-weight: 400;
}

.wpcf7-form-control {
	max-width: 100%;
	border-radius: 0 !important;
	font-size: var(--fontsize-body-small);
	padding: 13px 10px !important;
	font-weight: 400;
	max-height: 150px;
	resize: none;
}

.wpcf7-form label {
	font-weight: 600;
	font-family: var(--fontfamily-body);
	font-size: var(--fontsize-body-small);
}

.wpcf7-form .quarter {
	width: calc(25% - 10px);
}

.wpcf7-form .third {
	width: calc(33.3% - 13px);
}

.wpcf7-form .half {
	width: calc(50% - 20px);
}

.wpcf7-form .full {
	width: 100%;
}

.wpcf7-form-control.wpcf7-acceptance {
	position: relative;
	background-color: transparent !important;
}

.wpcf7-form-control.wpcf7-acceptance label {
	font-weight: 400;
}

.wpcf7-list-item label a {
	color: #fff;
	text-decoration: underline;
}

.wpcf7-list-item input[type="checkbox"] {
	opacity: 0;
}

.wpcf7-list-item input[type="checkbox"] + span {
	position: relative;
}

.wpcf7-list-item input[type="checkbox"] + span > span:last-child {
	position: absolute;
	width: 16px;
	height: 16px;
	border: 1px solid #fff;
	display: block;
	top: 2px;
	left: -15px;
	background-color: var(--color-grey-light);
}

.wpcf7-list-item input[type="checkbox"]:checked + span > span:last-child {
	border-color: var(--color-grey-light);
}

.wpcf7-list-item input[type="checkbox"] + span > span:last-child::before {
	content: "\f00c";
	font-family: fontawesome;
	color: var(--color-navy);
	font-size: 10px;
	position: absolute;
	top: -2px;
	left: 2px;
	opacity: 0;
}

.wpcf7-list-item input[type="checkbox"]:checked + span > span:last-child::before {
	opacity: 1;
}

.wpcf7 input[type="email"] {
	width: 100%;
	display: block;
}

.wpcf7-form-control.wpcf7-submit {
	padding: 15px 40px !important;
	font-size: var(--fontsize-body-normal);
	text-transform: uppercase;
	font-weight: 700;
	color: var(--color-navy);
	border: 2px solid var(--color-grey-light);
	transition: all 0.1s ease 0s;
	background-color: var(--color-grey-light);
}

.wpcf7-form-control.wpcf7-submit:hover {
	background-color: var(--color-navy);
	color: var(--color-grey-light);
}

.accordions-container {
	position: relative;
	overflow: hidden;
}

.accordions-container::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: -250px;
	width: 100%;
	height: 100%;
	background-image: url(/wp-content/themes/chgroup/images/logo-bg.png);
	background-position: bottom left;
	background-repeat: no-repeat;
	background-size: 700px;
}

.accordions {
	background-color: var(--color-grey-light);
	padding: 75px 100px;
	margin: 50px 0;
	position: relative;
}

.accordion-header h2 {
	font-size: var(--fontsize-heading-quarternary);
	margin: 0;
}

.accordion-content {
	display: none;
}

.accordion-header {
	border-bottom: 1px solid var(--color-navy);
	margin-bottom: 25px;
	padding-bottom: 15px;
	position: relative;
	cursor: pointer;
}

.accordion-header::before {
	content: "";
	position: absolute;
	right: 0;
	top: 12px;
	width: 16px;
	height: 2px;
	background-color: var(--color-navy);
	transition: all 0.3s ease 0s;
}

.accordion-header::after {
	content: "";
	position: absolute;
	right: 7px;
	top: 6px;
	width: 2px;
	height: 16px;
	background-color: var(--color-navy);
	transition: all 0.3s ease 0s;
}

.accordion.open .accordion-header::after {
	top: 13px;
	height: 0;
}

.accordion.open .accordion-header::before {
	right: 3px;
	width: 10px;
}

#colophon {
	background-color: var(--color-navy);
	color: #fff;
	text-transform: uppercase;
	font-size: var(--fontsize-body-small);
	padding: 20px 0;
}

#colophon p {
	font-size: var(--fontsize-body-small);
	margin: 0;
}

.privacy-policy {
	text-decoration: underline;
	cursor: pointer;
}

/*
-------------------------------------------------------------|
                                                  RESPONSIVE |
-------------------------------------------------------------|
*/

@media(max-width: 1024px) {
	:root {
		--fontsize-heading-primary: 50px;
		--fontsize-heading-secondary: 30px;
		--fontsize-heading-tertiary: 24px;
		--fontsize-heading-quarternary: 20px;
		--fontsize-body-small: 14px;
		--fontsize-body-normal: 16px;
		--fontsize-body-large: 18px;
		--fontsize-button: 16px;
	}
	.site-branding img {
		max-width: 197px;
	}
	.banner-content .fake-heading {
		white-space: normal;
	}
	.quad-block.one {
		display: none;
	}
	.quad-block {
		width: 100%;
		border-bottom: 1px solid #fff;
		padding: 50px 25px;
	}
	.about::before {
		right: -100px;
	}
	.contact {
		/* background-color: var(--color-navy); */
		padding-bottom: 0;
	}
	.contact::before {
		left: 0;
		height: 1100px;
		width: 100%;
	}
	.contact .left {
		width: 100%;
	}
	.wpcf7-form .half {
		width: 100%;
	}
	.wpcf7-form-control.wpcf7-acceptance label {
		font-size: 14px;
	}
	.contact .right {
		width: 100%;
		left: 0;
	}
	.contact .right iframe {
		height: 100vw;
	}
	.accordions {
		padding: 25px 20px;
	}
	#colophon {
		text-align: center;
	}
	#colophon .left, 
	#colophon .right {
		width: 100%;
		margin: 10px 0;
	}
}