/*
-------------------------------------------------------------|
---               Custom Stylesheet for GBS               ---|
---                      Frits Steyn                      ---|
---                 COFFEE CREATIVE STUDIO                ---|
-------------------------------------------------------------|
                                                       INDEX |
-------------------------------------------------------------|
- FONT IMPORT
- VARIABLES
- TYPOGRAPHY & RESETS
- HEADER
- FOOTER
- HOME BLOCK
- HEADER BLOCK
- ABOUT BLOCK
- TEXT BLOCK
- ICON LIST
- FORMULA BLOCK
- DIVISIONS
- MEET THE TEAM
- JOIN OUR TEAM
- CONTACT BLOCK
- SECONDARIES
- RESPONSIVE
-------------------------------------------------------------|
                                                 FONT IMPORT |
-------------------------------------------------------------|
*/

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

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

:root {
	--color-white: #ffffff;
	--color-black: #000000;
	--color-grey: #BABBB6;
	--color-grey-light: #f1f1f0;

	--fontsize-heading-primary: 32px;
	--fontsize-heading-secondary: 22px;
	--fontsize-heading-tertiary: 21px;
	--fontsize-heading-quarternary: 12px;
	--fontsize-body-small: 15px;
	--fontsize-body-normal: 17px;
	--fontsize-body-large: 18px;
	--fontsize-button: 10px;

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

	--fontfamily-body: "Montserrat", sans-serif;
	--fontfamily-headings: "Montserrat", sans-serif;

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

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

body {
	color: var(--color-black);
	font-size: var(--fontsize-body-normal);
	font-weight: 400;
	font-family: var(--fontfamily-body);
	margin: 0;
	line-height: 1.6;
	font-display: fallback;
}

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-black);
}

a:not(.button) {
	text-decoration: underline;
}

h1, 
h2, 
h3, 
h4, 
h5, 
h6 {
	/*text-transform: capitalize;*/
	color: var(--color-black);
	font-family: var(--fontfamily-headings);
	font-weight: 700;
}

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

h2 {
	font-size: var(--fontsize-heading-secondary);
	margin-bottom: 0.5em;
}

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

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

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

ul,
ol {
	margin: 0;
	padding-left: 20px;
	font-size: var(--fontsize-body-normal);
}

mark, 
ins {
	background: transparent;
}

fieldset {
	padding: 0 20px 20px;
}

.max-width-container {
	max-width: 1075px;
	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 15px;
	display: inline-block;
	font-size: var(--fontsize-button);
	transition: all 0.1s ease 0s;
	border: 1px solid var(--color-black);
	position: relative;
	z-index: 1;
	color: var(--color-black) !important;
	background-color: transparent; !important;
	height: 32px;
	line-height: 30px;
	cursor: pointer;
	font-weight: 500;
	letter-spacing: 0.1em;
}

.button + .button {
	margin-left: 5px;
}

.button + .button, 
.button.grey {
	background-color: var(--color-grey) !important;
	border-color: var(--color-grey) !important;
	color: var(--color-white) !important;
}

.button:hover {
	background-color: var(--color-black) !important;
	border-color: var(--color-black) !important;
	color: var(--color-white) !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;
}

.overflow-container {
	overflow: hidden;
}

#primary {
	margin-top: 0;
}

body:not(.home) #primary {
	margin-top: 83px;
}

.custom_animate {
	opacity: 0;
}

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

/*
-------------------------------------------------------------|
                                                      HEADER |
-------------------------------------------------------------|
*/

#masthead {
	background-color: #fff;
	height: 83px;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 999;
}

body.home #masthead {
	background-color: transparent;
}

.header-container {
	position: relative;
	height: 100%;
	width: 95%;
	margin-left: 2.5%;
}

.header-container::after {
	content: "";
	position: absolute;
	top: 0;
	left: 100%;
	height: 100%;
	width: 2.5vw;
	background-color: #ffffff;
}

body.home .site-branding {
	display: none;
}

.site-branding {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
.site-branding img, 
.site-branding a {
	display: block;
	max-width: 143px;
}

#site-navigation {
	position: absolute;
	top: 50%;
	right: 0;
	background-color: #fff;
	width: auto;
	transform: translateY(-50%);
}

#site-navigation #primary-menu li a::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 0;
	height: 0;
	background-color: var(--color-grey);
	transition: all 0.25s ease 0s;
	border-radius: 100%;
}
#site-navigation #primary-menu li:hover a::before, 
#site-navigation #primary-menu li.current-menu-item a::before,
#site-navigation #primary-menu li.current_page_item a::before {
	height: 9px;
	left: 0;
	border-radius: 0;
	width: 100%;
}

#site-navigation #primary-menu li a {
	line-height: 83px;
	text-decoration: none;
	position: relative;
	font-size: var(--fontsize-body-small);
	font-weight: 400;
	text-transform: uppercase;
	margin-left: 50px;
}

/*
-------------------------------------------------------------|
                                                      FOOTER |
-------------------------------------------------------------|
*/

#colophon {
	background-color: var(--color-black);
	color: var(--color-white);
	height: 45px;
	font-size: var(--fontsize-button);
}

.footer-container {
	width: 95%;
	margin-left: 2.5%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.footer-links {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: var(--fontsize-button);
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
}

.footer-links li {
	position: relative;
}

.footer-links li:nth-child(n+2) {
	margin-left: 21px;
}

.footer-links li:nth-child(n+2)::before {
	content: "";
	position: absolute;
	top: 4px;
	left: -10px;
	width: 1px;
	height: calc(100% - 8px);
	background-color: #fff;
}

.footer-links a {
	color: #ffffff;
	text-transform: uppercase;
	text-decoration: none;
}

.footer-links img {
	height: 13px;
	vertical-align: -2px;
	margin-left: 5px;
}

#colophon {
	background-color: var(--color-black);
	color: var(--color-white);
	height: 45px;
	font-size: var(--fontsize-button);
	padding: 15px 0;
}


/*
-------------------------------------------------------------|
                                                  HOME BLOCK |
-------------------------------------------------------------|
*/

.home-banner {
	height: 550px;
	position: relative;
	min-height: 1080px;
	transition: all 0.3s ease-out 0s;
}

.home-banner::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(360deg, rgba(0, 0, 0, 0.6) -10.79%, rgba(0, 0, 0, 0.362008) 40.96%, rgba(0, 0, 0, 0) 89.57%);
}

.home_banner_content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	color: var(--color-white);
	text-align: center;
	width: 800px;
	z-index: 1;
}

.home_banner_content p {
	margin: 0;
	font-size: var(--fontsize-heading-secondary);
	text-transform: uppercase;
	line-height: 1.2em;
}

.home_banner_content p strong {
	font-size: var(--fontsize-heading-primary);
}

/*
-------------------------------------------------------------|
                                                HEADER BLOCK |
-------------------------------------------------------------|
*/

.header-banner {
	height: 450px;
	position: relative;
	text-align: center;
}

.header-banner::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(360deg, rgba(0, 0, 0, 0.8) -10.79%, rgba(0, 0, 0, 0.482677) 40.96%, rgba(0, 0, 0, 0) 89.57%);
}

.header_banner-content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #ffffff;
}

.header_banner-headings h1 {
	margin: 0;
	text-transform: uppercase;
	font-size: var(--fontsize-heading-secondary);
	color: var(--color-grey);
	font-weight: 500;
}

.header_banner-headings h1 + p {
	margin: 0;
	font-size: var(--fontsize-heading-primary);
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

/*
-------------------------------------------------------------|
                                                 ABOUT BLOCK |
-------------------------------------------------------------|
*/

.about-block {
	padding: var(--spacing-primary) 0;
	background-color: var(--color-white);
}

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

.thirds-blocks .left {
	width: calc(33.3% - 50px);
}

.thirds-blocks .right {
	width: calc(66.6% - 50px);
}

.about-block h2 {
	font-weight: 600;
	font-size: var(--fontsize-heading-tertiary);
	line-height: 1.5;
	margin: 0;
}

.tab-head {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
}

.tab-head li {
	font-size: var(--fontsize-heading-quarternary);
	text-transform: uppercase;
	transition: al 0.1s ease 0s;
	margin-right: 30px;
	cursor: pointer;
	position: relative;
}

.tab-head li:nth-child(n+2)::before {
	content: "";
	position: absolute;
	top: 5px;
	left: -15px;
	width: 1px;
	height: calc(100% - 10px);
	background-color: var(--color-black);
}

.tab-head li:hover, .tab-head li.active {
	font-weight: 700;
}

.tab-mobile-header {
	display: none;
}

.tabbed-content .single-tab {
	display: none;
}

.single-tab-content h4 {
	font-size: var(--fontsize-heading-quarternary);
	text-transform: uppercase;
}

/*
-------------------------------------------------------------|
                                                  TEXT BLOCK |
-------------------------------------------------------------|
*/

.text-block {
	padding: var(--spacing-primary) 0;
	text-align: center;
}

.text-block[data-colour="grey"] {
	background-color: var(--color-grey-light);
}

.text-block[data-colour="white"] {
	background-color: var(--color-white);
}

.text_block-content {
	max-width: 820px;
	width: 100%;
	margin: auto;
}

.text-block h2 {
	font-weight: 800;
	text-transform: uppercase;
	margin: 0;
	font-size: var(--fontsize-heading-quarternary);
	letter-spacing: 0.1em;
}

.text-block > :first-child {
	margin-top: 0;
}

.text-block > :last-child {
	margin-bottom: 0;
}

/*
-------------------------------------------------------------|
                                                   ICON LIST |
-------------------------------------------------------------|
*/

.icon-list {
	padding: var(--spacing-primary) 0;
}

.icon-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 50px;
}

.single-icon {
	width: calc(33.3% - 50px);
}

.single_icon-image {
	width: 94px;
	height: 94px;
	border-radius: 10px;
	background-color: var(--color-grey);
	position: relative;
}

.single_icon-image img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	object-fit: contain;
	width: 50px;
	height: 50px;
}

.single-icon h3 {
	font-size: var(--fontsize-heading-tertiary);
	margin: 30px 0 0;
}

.single-icon p {
	font-size: var(--fontsize-body-small);
}


/*
-------------------------------------------------------------|
                                               FORMULA BLOCK |
-------------------------------------------------------------|
*/

.about-block.formula-block {
	background-color: var(--color-grey-light);
}

.formula-content {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 10px;
}

.single-formula {
	/* font-weight: 800; */
	font-size: 12px;
	/* width: calc(50% - 10px); */
	/* width: 250px; */
	text-transform: uppercase;
	background-color: var(--color-grey);
	font-weight: 600;
	padding: 10px 25px;
	margin: 5px 0;
	background-color: rgba(186, 187, 182, 0.3);
}

/*
-------------------------------------------------------------|
                                                   DIVISIONS |
-------------------------------------------------------------|
*/

.divisions {
	padding: var(--spacing-secondary) 0;
}

.single-division {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 75px 0;
}

.single-division:nth-child(n+2) {
	border-top: 1px solid var(--color-grey);
}

.division-logo {
	position: relative;
	background-color: var(--color-grey-light);
	width: 327px;
	height: 181px;
}

.single-division:nth-child(2n+2) .division-logo {
	order: 1;
}

.division-logo img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	object-fit: contain;
	width: 220px;
	height: 55px;
}

.division-content {
	width: calc(100% - 425px);
}

.division-content h3 {
	text-transform: uppercase;
	font-weight: 800;
	font-size: var(--fontsize-heading-quarternary);
	letter-spacing: 0.1em;
}

.division-content :first-child {
	margin-top: 0;
}

.division-content :last-child {
	margin-bottom: 0;
}

/*
-------------------------------------------------------------|
                                               MEET THE TEAM |
-------------------------------------------------------------|
*/

.meet-the-team {
	padding: var(--spacing-primary) 0;
}

.member-image {
	width: 334px;
	margin-bottom: 25px;
}

.member-image img {
	display: block;
}

.member-content h3 {
	font-size: var(--fontsize-heading-tertiary);
	font-weight: 600;
	margin: 0;
}

.member-title {
	font-size: var(--fontsize-heading-quarternary);
	text-transform: uppercase;
	font-weight: 800;
	color: var(--color-grey);
	letter-spacing: 0.1em;
	margin: 0;
}

.featured-member {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding-bottom: var(--spacing-secondary);
	margin-bottom: 75px;
	border-bottom: 1px solid var(--color-grey);
}

.featured-member .left {
	width: 335px;
}

.featured-member .right {
	width: calc(100% - 435px);
}

.members-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	text-align: center;
}

/*
-------------------------------------------------------------|
                                               JOIN OUR TEAM |
-------------------------------------------------------------|
*/

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

.split-text .half {
	width: calc(50% - 25px);
}

.split-text p {
	margin: 0;
	font-size: var(--fontsize-body-small);
}

.join-team-block h3 {
	font-size: var(--fontsize-heading-tertiary);
	font-weight: 600;
}

/*
-------------------------------------------------------------|
                                               CONTACT BLOCK |
-------------------------------------------------------------|
*/

.contact-block h4 {
	font-weight: 800;
	font-size: var(--fontsize-heading-quarternary);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0;
}

.gform-body .gform_fields {
	margin-top: 30px;
}

.gform-body .gform_fields .gfield_label {
	display: none;
}

.gform-body .gform_fields .large {
	background-color: var(--color-grey-light);
	border-radius: 0;
	border-color: var(--color-grey-light);
	font-weight: 600;
	font-size: 13px;
	color: var(--color-grey);
	min-height: 42px;
}

.gform-body ::-webkit-input-placeholder {
	color: var(--color-grey);
	opacity: 1;
}
.gform-body ::-moz-placeholder {
	color: var(--color-grey);
	opacity: 1;
}
.gform-body :-ms-input-placeholder { 
	color: var(--color-grey);
	opacity: 1;
}
.gform-body :-moz-placeholder { 
	color: var(--color-grey);
	opacity: 1;
}

.gform-body .gform_fields {
	margin-top: 30px;
	row-gap: 15px !important;
	position: relative;
}

.gform-body .gform_fields textarea {
	height: 150px !important;
	resize: none;
	min-height: 150px !important;
}

.gform_footer .gform_button.button {
	text-transform: uppercase !important;
	padding: 0 15px;
	display: inline-block !important;
	font-size: var(--fontsize-button) !important;
	transition: all 0.1s ease 0s !important;
	border: 1px solid var(--color-black) !important;
	position: relative;
	z-index: 1;
	color: var(--color-black) !important;
	background-color: transparent !important;
	height: 32px;
	line-height: 30px !important;
	cursor: pointer !important;
	font-weight: 500 !important;
	letter-spacing: 0.1em !important;
	border-radius: 0 !important;
}

.gform_footer .gform_button.button:hover {
	background-color: var(--color-black) !important;
	border-color: var(--color-black) !important;
	color: var(--color-white) !important;
}

#field_1_8 {
	position: absolute;
	top: calc(100% + 15px);
	right: 0;
}

.contact-block .left p {
	font-size: var(--fontsize-body-small);
}

/*
-------------------------------------------------------------|
                                                 SECONDARIES |
-------------------------------------------------------------|
*/

.additional-content-container .entry-header {
	display: none;
}

#primary > .additional-content-container:first-child .entry-header {
	display: block;
	padding-top: 50px;
}

.error-404 {
	margin: 125px 0;
	text-align: center;
}

.search .max-width-container {
	margin: 125px auto 60px;
}

.error404 #colophon,
.search.search-no-results #colophon {
	position: absolute;
	bottom: 0;
	width: 100%;
}

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

#coffeerm-button {
	background-color: transparent;
	position: absolute;
	top: 20px;
	right: 20px;
	display: none;
}

#coffeerm-button span {
	background-color: var(--color-black);
}

.responsive-menu-items {
	background-color: #fff;
	background-image: url('http://gbs.ccdev.co.za/wp-content/uploads/2024/04/gbs-logo-small.png)');
	background-repeat: no-repeat;
	background-size: 148px;
	background-position: center 20px;
	padding-top: 80px;
	text-align: center;
	width: 250px;
}

.responsive-menu-items a {
	text-decoration: none;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--color-black);
	display: block;
	padding: 10px 0;
}

@media(max-width: 1100px) { /*1024*/
	#colophon {
		height: auto;
	}
	.footer-1, .footer-2, .footer-3 {
		width: 100%;
		padding: 3px 0;
	}
	.about-block.formula-block .button + .button {
		margin-left: 0;
		margin-top: 10px;
	}
}

@media(max-width: 1023px) { /*768*/
	:root {
		--spacing-primary: 50px;
		--spacing-secondary: 50px;
		--spacing-tertiary: 25px;
	}
	body:not(.home) #site-navigation {
		display: none;
	}
	body:not(.home) #coffeerm-button {
		display: block;
	}
	.home_banner_content {
		width: 90%;
	}
	.thirds-blocks .left, 
	.thirds-blocks .right {
		width: 100%;
	}
	.thirds-blocks .right {
		margin-top: 25px;
	}
	.about-block.formula-block .button + .button {
		margin-left: 10px;
		margin-top: 0;
	}
	.featured-member .right {
		width: calc(100% - 375px);
	}
	.about-block.contact-block .left {
		margin-top: 50px;
	}
}

@media(max-width: 767px) { /*640*/
	body.home #site-navigation, 
	body.home .header-container::after {
		display: none;
	}
	body.home #coffeerm-button {
		display: block;
	}
	.header-banner {
		height: 350px;
	}
	.header_banner-content {
		width: 90%;
	}
	.home_banner_content img {
		width: 90%;
		max-width: 400px;
	}
	.single-icon {
		width: calc(50% - 25px);
	}
	.divisions {
		padding: 0;
	}
	.division-logo, 
	.division-content {
		width: 100%;
	}
	.division-content {
		margin-top: 30px;
	}
	.single-division:nth-child(2n+2) .division-logo {
		order: 0;
	}
	.featured-member .left, 
	.featured-member .right {
		width: 100%;
	}
	.members-list {
		display: block;
	}
	.member-content {
		text-align: left;
	}
	.single-member {
		margin-bottom: 35px;
	}
	.split-text .half {
		width: 100%;
	}
	.join-team-block h3 {
		margin-top: 0;
	}
	.split-text p {
		margin: 0px 0 20px;
	}
}

@media(max-width: 639px) {
	.icon-container {
		gap: 15px;
	}
	.single-icon {
		width: 100%;
		text-align: center;
	}
	.single-icon:nth-last-child(n+2) {
		border-bottom: 1px solid var(--color-grey);
		margin-bottom: 11px;
	}
	.single_icon-image {
		margin: auto;
	}
	#field_1_8 {
		position: static;
	}
	.home-banner::before {
		background: linear-gradient(360deg, rgba(0, 0, 0, 0.6) -10.79%, rgba(0, 0, 0, 0.362008) 40.96%, rgba(0, 0, 0, 0.5) 89.57%);
	}
	body.home #coffeerm-button span {
		background-color: #fff;
	}
	.header-banner::before {
		background: linear-gradient(360deg, rgba(0, 0, 0, 0.8) -10.79%, rgba(0, 0, 0, 0.482677) 40.96%, rgba(0, 0, 0, 0.5) 89.57%);
	}
	.button-block {
		text-align: center;
	}
	.footer-container {
		text-align: center;
	}
	.footer-1 .footer-links li:last-child {
		width: 100%;
		margin: 5px 0 0;
	}
	.footer-1 .footer-links li:last-child::before {
		display: none;
	}
	.footer-links {
		justify-content: center;
	}
}