/**
 * GW Blueprint - Main Stylesheet
 * 
 * This file contains base styles and utilities for the theme
 */

/* CSS Variables for easy customization */
:root {
	--font-family--primary: "Outfit", sans-serif;
	--swiper-pagination-color: var(--wp--preset--color--custom-color-500);
	--swiper-pagination-bullet-inactive-color: var(--wp--preset--color--neutral-100);
	--swiper-pagination-bullet-inactive-opacity: 1;
	--swiper-pagination-bullet-size: 8px;
	--swiper-pagination-bullet-horizontal-gap: 10px;
}

/* Reset and Base Styles */
* {
	box-sizing: border-box;
}

html {
	font-size: 16px;
	line-height: 1.6;
}

body {
	font-family: var(--font-family--primary);
	color: var(--wp--preset--color--neutral-700);
	background-color: var(--wp--preset--color--neutral-white);
	margin: 0;
	padding: 0;
	font-weight: 300;
}	

/* Typography */
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 20px 0;
	font-weight: 600;
	line-height: 1.2;
}

h1 { font-size: 48px; }
h2 { font-size: 36px; }
h3 { font-size: 24px; }
h4 { font-size: 20px; }
h5 { font-size: 16px; }
h6 { font-size: 12px; }

p{
	font-size: 17px;
	margin: 0 0 20px 0;
	line-height: 180%;
	font-weight: 100;
}
ul, ol{
	font-size: 17px;
	line-height: 180%;
	margin: 0 0 20px 0;
	font-weight: 100;
}
p:last-child,
ul:last-child,
ol:last-child{
	margin-bottom: 0;
}
ul:empty,
ol:empty,
li:empty,
p:empty{
	display: none;
}
img{
	max-width: 100%;
	border:none;
	outline:none;
}
a{
	color: currentColor;
}
a, a:hover{
	text-decoration:none
}
p a{
	color: var(--wp--preset--color--custom-color-500);
	text-decoration: underline;
}
.wp-block-heading a:hover{
	text-decoration: underline;
}
input,
select,
textarea,
button{
	font-family: var(--font-family--primary);
	outline: none;
}
::-webkit-scrollbar {
	width: 5px;
}
::-webkit-scrollbar-track {
	background: rgba(0, 0, 0, 0.1);
}
::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, 0.2);
}
.wp-site-blocks > *{
	margin-block-start:0;
}

/* Button Styles */
.wp-element-button,
.wp-block-button__link,
.button{
	--btnColor: var(--wp--preset--color--custom-color-400);
	--btnColorHover: color-mix(in srgb, var(--btnColor) 90%, #000000);
	--btnTextColor:  var(--wp--preset--color--neutral-white);
	--btnTextColorHover:  var(--wp--preset--color--neutral-white);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap:10px;
	background-color: var(--btnColor);
	color: var(--btnTextColor);
	padding: 10px 25px;
	border-radius: 0;
	border:none;
	cursor: pointer;
	transition: all 0.3s;

	&:hover{
		background: var(--btnColorHover);
		color: var(--btnTextColorHover);
	}
}
.button{
	padding: 15px 30px;
	border-radius: 4px;
	font-size: 16px;
	color: var(--wp--preset--color--neutral-700);
}

.is-style-secondary-fill .wp-element-button,
.is-style-secondary-outline .wp-element-button{
	--btnColor: var(--wp--preset--color--neutral-700);
	--btnColorHover: color-mix(in srgb, var(--btnColor) 90%, #000000);
	--btnTextColor: var(--wp--preset--color--neutral-white);
}

.is-style-outline .wp-element-button,
.is-style-secondary-outline .wp-element-button{
	background: none;
	border: 1px solid var(--btnColor);
	color: var(--btnColor);

	&:hover{
		background: var(--btnColor);
		color: var(--btnTextColorHover);
	}
}

.is-style-gradient-fill .wp-element-button{
	--btnColor: linear-gradient(to bottom, var(--wp--preset--color--custom-color-400), var(--wp--preset--color--custom-color-500));
	--btnColorHover:linear-gradient(to bottom, var(--wp--preset--color--neutral-600), var(--wp--preset--color--neutral-600));
	--btnTextColor: var(--wp--preset--color--neutral-500);
	--btnTextColorHover: var(--wp--preset--color--neutral-white);
	padding: 5px 15px;
	border-radius: 5px;
    text-transform: uppercase;
	background: var(--btnColor);
	color: var(--btnTextColor);
	
	&:hover{
		background: var(--btnColorHover);
		color: var(--btnTextColorHover);
	}
}
#header .is-style-gradient-fill .wp-element-button{
	--btnColorHover: linear-gradient(to bottom, var(--wp--preset--color--custom-color-400), var(--wp--preset--color--custom-color-500));
}
.entry-content > *{
	margin-block-start: 0;
}
.wp-block-separator{
	border-width: 1px 0 0 0;
}

/*** HEADINGS ***/
.is-style-section_title{
	font-weight: lighter;
	line-height: 115%;
	font-size: 27px;
    letter-spacing: .05em;
	text-transform: uppercase;
}
.is-style-section_title_big{
	font-weight: lighter;
	line-height: 115%;
	font-size: 42px;
    letter-spacing: .05em;
	text-transform: uppercase;
}
h3.is-style-section_title{
	font-size: 35px;
}
.is-style-section_subtitle{
	font-weight: lighter;
	line-height: 115%;
	font-size: 23px;
    letter-spacing: .05em;
	text-transform: uppercase;
}
.is-style-cover_image_left .wp-block-cover__image-background{
	width: calc(50% - 60px);
}
.is-style-cover_image_right .wp-block-cover__image-background{
	width: calc(50% - 60px);
	right: 0;
}

/*** GRAVITY FORMS ***/
.gform_description:empty,
.gform_heading{
	display: none !important;
}
.form_wrapper .gform_wrapper.gravity-theme input[type=text],
.form_wrapper .gform_wrapper.gravity-theme input[type=email],
.form_wrapper .gform_wrapper.gravity-theme input[type=tel],
.form_wrapper .gform_wrapper.gravity-theme input[type=number],
.form_wrapper .gform_wrapper.gravity-theme select,
.form_wrapper .gform_wrapper.gravity-theme textarea{
	border-radius: 4px;
	height: 42px;
	border:1px solid rgba(17, 17, 17, 0.2);
}
.form_wrapper .gform_wrapper.gravity-theme .gfield_label{
	display: block;
	font-size: 16px;
	font-weight: 400;
	margin-bottom: 10px;
	font-weight: normal;
}
.form_wrapper .gform_wrapper.gravity-theme .gform_fields {
	grid-row-gap: 20px;
}
.form_wrapper .ginput_container_fileupload{
	border: 1px dashed #CCC;
    border-radius: 3px;
    position: relative;
    height: 86px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.3s;
}
.form_wrapper .ginput_container_fileupload:hover{
	background-color: rgba(17, 17, 17, 0.05);
}
.form_wrapper .ginput_container_fileupload [type="file"]{
	position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
	cursor: pointer;
}
.form_wrapper .ginput_container_fileupload .gfield_description{
	text-align: center;
	margin:0 !important;
	padding:0 !important;
}
.form_wrapper .ginput_container_fileupload .gfield_description::before{
	content: 'Choose file or drop here';
	display: block;
	font-size: 14px;
	color: var(--wp--preset--color--neutral-700);
}
.form_wrapper .gform_footer{
	justify-content: center;
}


/*** HEADER ***/
#header_placeholder{
	height: 122px;
}
#header{
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	padding-top: 35px;
	z-index: 99;
}
.admin-bar #header{
	top:32px;
}
.is-position-sticky{
	top: 135px;
}
.admin-bar .is-position-sticky{
	top: 167px;
}
#header_logo{
	margin: -25px 0 -40px;
}
#header li a{
	font-size: 16px;
}
#header .wp-block-navigation > li > a{
	position: relative;
	transition: all 0.3s;

	&::before{
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 1px;
		background-color: var(--wp--preset--color--custom-color-400);
		transform: translateY(-5px);
		opacity: 0;
		transition: all 0.3s;
	}
	&:hover::before{
		transform: translateY(0);
		opacity: 1;
	}
	&:hover{
		color: var(--wp--preset--color--custom-color-400);
	}
}
#header .wp-block-navigation > li.current-menu-item > a{
	color: var(--wp--preset--color--custom-color-400);

	&::before{
		transform: translateY(0);
		opacity: 1;
	}
}
#mobile_menu{
	display: none;
	padding:20px 0;
}
#menu_trigger{
	display: none;
	position: absolute;
	top: 50px;
    right: 20px;
	align-items: center;
	justify-content: center;
	width: 40px;
    height: 40px;
	color:var(--wp--preset--color--neutral-200);
	cursor: pointer;
	transition: all 0.3s;
}
#menu_trigger svg {
	fill: currentColor;
	stroke: currentColor;
	overflow: visible;
	width: 28px;
	height: 28px;
}
#mobile_menu .wp-block-navigation__container{
	width: 100%;
	gap: 0;
	text-transform: uppercase;
}
#mobile_menu .wp-block-navigation__container li{
	width: 100%;
	justify-content: center;
	flex-wrap: wrap;
}
#mobile_menu .wp-block-buttons {
	width: 80%;
	margin: 0 auto;
}
#mobile_menu ul.wp-block-navigation-submenu{
	position: relative;
	width: 100%;
	height: auto;
	visibility: visible;
	opacity: 1;
	padding: 5px 0;
	background: rgba(255, 255, 255, 0.1);
    color: #FFF;
	display: none;
}
#mobile_menu ul.wp-block-navigation-submenu li{
	background:none;
}
#mobile_menu .wp-block-navigation-submenu a{
	justify-content: center;
	padding:0;
}
#mobile_menu .wp-block-navigation .wp-block-navigation__submenu-icon{
	width: 20px;
	height: 20px;
	fill: currentColor;
	stroke: currentColor;
	overflow: visible;
	transition: all 0.3s;
}
#mobile_menu .wp-block-navigation .wp-block-navigation__submenu-icon svg{
	width: 13px;
}
#mobile_menu .wp-block-navigation-submenu__toggle.is-active{
	transform: rotate(180deg);
}
#mobile_menu .has-child{
	gap: 5px;
}

/*** FOOTER ***/
#footer_social_links{
	font-size:35px
}
#mobile_bottom_nav{
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 99;
}
.mobile_nav_action{
	width: 25%;
	padding:10px 5px;
}
.mobile_nav_action a{
	text-decoration: none;
}

/*** COMPONENTS ***/
.hero_slider_image{
	height: calc(100vh - 122px);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.hero_slider_nav_prev,
.hero_slider_nav_next{
	position: absolute;
    z-index: 2;
    top: 0;
	width: 76px;
    height: 100%;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2272%22%20height%3D%2272%22%3E%3Csvg%20y%3D%2250%25%22%20overflow%3D%22visible%22%20height%3D%2218%22%20viewBox%3D%220%200%2037.64%2037.64%22%3E%3Cpath%20transform%3D%22translate(0%2C-18.82)%22%20fill%3D%22none%22%20stroke%3D%22%232e2e2e%22%20d%3D%22M37.14%2018.82H.5M18.72.5l18.42%2018.32-18.42%2018.32%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E%3C%2Fsvg%3E");
    background-position: 50% 50%;
    background-repeat: no-repeat;
	cursor: pointer;
}
.hero_slider_nav_prev{
	left: 0;
	transform:scaleX(-1);
}
.hero_slider_nav_next{
	right: 0;
}

.images_carousel_image{
	margin: 0;
}
.images_carousel_image img{
	height: 100%;
	object-fit: cover;
	object-position: center;
}
#termonial_carousel img{
	border-radius: 10px;
}

#portrait_images_carousel .images_carousel_image{
	aspect-ratio: 10/15;
}

.locations_columns h3{
	font-size: 18px;
    font-weight: 300;
}

.team_grid .wp-block-image{
	overflow: hidden;
	position: relative;
}

.team_grid .wp-block-image::after{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.2);
	opacity: 0;
	pointer-events: none;
	transition: all 0.3s;
}
.team_grid .wp-block-image:hover::after{
	opacity: 1;
}
.team_grid .wp-block-image img{
	transform: scale(1);
	transition: all 0.3s;
}
.team_grid .wp-block-image:hover img{
	transform: scale(1.2);
}

.news_grid .wp-block-image{
	overflow: hidden;
	position: relative;
}
.news_grid .wp-block-image::after{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(255,255,255, 0.4);
	opacity: 0;
	pointer-events: none;
	transition: all 0.3s;
}
.news_grid .wp-block-image:hover::after{
	opacity: 1;
}
.news_grid .wp-block-image img{
	transform: scale(1);
	transition: all 0.3s;
}
.news_grid .wp-block-image:hover img{
	transform: scale(1.2);
}
.overflow_hidden{
	overflow: hidden;
}

/*** MEDIA QUERIES ***/
@media (max-width: 1340px) {
	header.wp-block-template-part{
		padding-left: 0.75em;
		padding-right: 0.75em;
	}
	.is-layout-constrained:not(.entry-content){
		padding-left: 0.75em;
		padding-right: 0.75em;
	}
}

@media (max-width: 992px) {
	#header_placeholder {
		height: 132px;
	}
	#header {
		padding:10px 0;
	}
	#header_logo {
		margin: 0;
	}
	.header_logo img{
		width: 124px;
		height: auto;
	}
	#header_menu_left,
	#header_menu_right{
		display: none;
	}
	#menu_trigger{
		display: flex;
	}
	.hero_slider_image {
		height: calc(100vh - 300px);
	}
	#mobile_bottom_nav{
		display: flex;
	}
	.is-style-cover_image_left .wp-block-cover__image-background {
		width: 100%;
		height: 350px;
	}
	.is-style-cover_image_left{
		padding-top:380px;
		min-height: 350px !important;
	}
	.wp-elements-6b4c7e67f3e376510deeb5d159c7ce10{
		--wp--preset--spacing--40: var(--wp--preset--spacing--20);
	}
}

@media (max-width: 750px) {
	
}

@media (max-width: 400px) {
	
}