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

/******************************

[Table of Contents]

1. 1600px
2. 1440px
3. 1280px
4. 1199px
5. 1024px
6. 991px
7. 959px
8. 880px
9. 768px
10. 767px
11. 539px
12. 479px
13. 400px

******************************/

/************
1. 1840px
************/

@media only screen and (max-width: 1840px)
{
	.main_nav
	{
	    margin-left: 143px;
	}
}

/************
1. 1760px
************/

@media only screen and (max-width: 1760px)
{
	.work_hours
	{
	    display: none;
	}
}

/************
1. 1600px
************/

@media only screen and (max-width: 1600px)
{
	.main_nav
	{
		margin-left: 54px;
	}
}

/************
2. 1440px
************/

@media only screen and (max-width: 1440px)
{
	.header_phone
	{
		display: none;
	}
}

/************
3. 1380px
************/

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

/************
3. 1280px
************/

@media only screen and (max-width: 1280px)
{
	.main_nav ul li:not(:last-child)
	{
		margin-right: 29px;
	}
}

/************
4. 1199px
************/

@media only screen and (max-width: 1199px)
{
	.header_button
	{
		display: none;
	}
	.home_slider_dots
	{
		left: calc((100vw - 930px) / 2);
	}
}

/************
4. 1100px
************/

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

/************
5. 1024px
************/

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

/************
6. 991px
************/

@media only screen and (max-width: 991px)
{
	.main_nav,
	.header_social
	{
		display: none;
	}
	.home_slider_dots
	{
		left: calc((100vw - 690px) / 2);
	}
	.hamburger
	{
		display: block;
	}
	.intro_form_container
	{
		margin-top: 102px;
	}
	.why_image
	{
		position: relative;
		bottom: auto;
		right: auto;
	}
	.why_content
	{
		padding-bottom: 60px;
	}
	.why_image img
	{
		max-width: 100%;
	}
	.cta_phone
	{
		margin-top: 33px;
	}
	.footer_col:not(:last-child)
	{
		margin-bottom: 80px;
	}
	.footer_location,
	.footer_contact
	{
		padding-top: 0;
	}
}

/************
7. 959px
************/

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

/************
8. 880px
************/

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

/************
9. 768px
************/

@media only screen and (max-width: 768px)
{
	/* Mobile optimizations for tablet and below */
	
	/* Reduce section padding */
	.intro
	{
		padding-top: 40px;
		padding-bottom: 30px;
	}
	
	.why
	{
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
	}
	
	.why .container
	{
		padding: 0 !important;
		margin: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
	}
	
	.why .row
	{
		margin: 0 !important;
	}
	
	.why .col-lg-6
	{
		padding: 0 !important;
	}
	
	.why_image_container
	{
		padding: 0 !important;
		margin: 0 !important;
	}
	
	.why_image
	{
		padding: 0 !important;
		margin: 0 !important;
	}
	
	.why_image img
	{
		width: 100%;
		display: block;
		margin: 0;
		padding: 0;
	}
	
	.why_content
	{
		padding: 30px 15px 30px 15px !important;
	}
	
	.services
	{
		padding-top: 40px;
		padding-bottom: 30px;
	}
	
	.cta
	{
		padding-top: 40px;
		padding-bottom: 40px;
	}
	
	/* Make service cards more compact */
	.service_col
	{
		margin-bottom: 25px;
	}
	
	.service_title
	{
		font-size: 16px;
		margin-top: 10px;
		margin-bottom: 8px;
	}
	
	.service_text p
	{
		font-size: 12px;
		line-height: 1.4;
	}
	
	.icon_container
	{
		width: 60px;
		height: 60px;
	}
	
	.icon_container .icon img
	{
		max-width: 30px;
		max-height: 30px;
	}
	
	/* Keep slider images centered */
	.home .background_image
	{
		background-position: center center !important;
	}
	
	/* Make paragraph text darker version of the light green on mobile */
	.home_text p
	{
		background-color: rgba(255, 255, 255, 0.65);
		padding: 8px 12px;
		border-radius: 4px;
		display: inline-block;
	}
	
	/* Make home slider more compact and shorter */
	.home
	{
		height: calc((100vh - 60px) * 0.7) !important;
		min-height: 400px;
	}
	
	.home_container
	{
		padding-top: 40px;
		padding-bottom: 40px;
	}
	
	/* Reduce extra/promo section size */
	.extra
	{
		padding-top: 50px;
		padding-bottom: 50px;
	}
	
	/* Reduce footer padding */
	.footer_content
	{
		padding-top: 50px;
		padding-bottom: 30px;
	}
	
	.footer_col:not(:last-child)
	{
		margin-bottom: 40px !important;
	}
	
	/* Reduce milestones spacing */
	.milestones
	{
		margin-top: 20px;
	}
}

/************
10. 767px
************/

@media only screen and (max-width: 767px)
{
	.home_slider_dots
	{
		left: calc((100vw - 510px) / 2);
	}
	.home_content
	{
		max-width: 100%;
	}
	.home_title
	{
		font-size: 48px;
	}
	.home_subtitle
	{
		font-size: 24px;
	}
	.milestone_col:not(:last-child)
	{
		margin-bottom: 30px;
	}
	.extra_content
	{
		width: 100%;
	}
	.footer_bar_content
	{
		height: auto;
		padding-top: 30px;
		padding-bottom: 30px;
	}
	.footer_nav
	{
		margin-top: 15px;
	}
	
	/* More compact intro/philosophy section */
	.intro_text p
	{
		font-size: 14px;
		line-height: 1.6;
	}
	
	/* Reduce space between intro form and why section */
	.intro_form_container
	{
		margin-top: 40px !important;
	}
	
	/* Make milestones horizontal on mobile */
	.milestone_col
	{
		flex: 0 0 50%;
		max-width: 50%;
	}
	
	.milestone_col:nth-child(3)
	{
		flex: 0 0 100%;
		max-width: 100%;
		margin-top: 15px;
	}
	
	.milestone_counter
	{
		font-size: 32px;
	}
	
	.milestone_text
	{
		font-size: 12px;
		margin-top: 5px;
	}
}

/************
11. 575px
************/

@media only screen and (max-width: 575px)
{
	p
	{
		font-size: 13px;
	}
	h2
	{
		font-size: 36px;
	}
	.header.scrolled .header_content,
	.header_content
	{
		height: 60px;
	}
	.home
	{
		margin-top: 60px;
		height: calc((100vh - 60px) * 0.7);
		min-height: 400px;
	}
	.logo a > div:first-child
	{
		font-size: 24px;
	}
	.logo a > div:last-child
	{
		font-size: 10px;
	}
	.section_subtitle
	{
		font-size: 16px;
	}
	.header_content
	{
		padding-left: 15px;
		padding-right: 30px;
	}
	.button
	{
		height: 40px;
	}
	.button a
	{
		font-size: 12px;
		line-height: 36px;
		padding-left: 31px;
		padding-right: 30px;
	}
	.home_subtitle
	{
		font-size: 18px;
	}
	.home_title
	{
		font-size: 36px;
		line-height: 1.2;
	}
	.home_text
	{
		margin-top: 15px;
		margin-bottom: 20px;
	}
	.home_text p
	{
		font-size: 14px;
		line-height: 1.5;
		background-color: rgba(255, 255, 255, 0.65);
		padding: 8px 12px;
		border-radius: 4px;
		display: inline-block;
	}
	.cta_title
	{
		font-size: 24px;
	}
	.cta_text
	{
		font-size: 14px;
	}
	.cta_phone
	{
		font-size: 24px;
	}
	.cta
	{
		padding-top: 40px;
		padding-bottom: 40px;
	}
	
	/* Extra section - more compact */
	.extra
	{
		padding-top: 50px;
		padding-bottom: 50px;
	}
	
	.extra_disc > div:first-child
	{
		font-size: 36px !important;
	}
	.extra_disc > div:last-child
	{
		font-size: 16px !important;
	}
	.extra_title
	{
		font-size: 24px !important;
		margin-top: 10px;
		margin-bottom: 15px;
	}
	.extra_text
	{
		margin-bottom: 20px;
	}
	.extra_text p
	{
		font-size: 13px;
		line-height: 1.5;
	}
	
	/* Newsletter more compact */
	.newsletter
	{
		padding-top: 50px;
		padding-bottom: 50px;
	}
	.newsletter_row
	{
		margin-top: 30px;
	}
	.newsletter_title
	{
		font-size: 22px;
	}
	.newsletter_input
	{
		width: calc(100% - 120px);
		height: 40px;
	}
	.newsletter_input::-webkit-input-placeholder
	{
		font-size: 13px !important;
	}
	.newsletter_input:-moz-placeholder
	{
		font-size: 13px !important;
	}
	.newsletter_input::-moz-placeholder
	{
		font-size: 13px !important;
	} 
	.newsletter_input:-ms-input-placeholder
	{ 
		font-size: 13px !important;
	}
	.newsletter_input::input-placeholder
	{
		font-size: 13px !important;
	}
	.newsletter_button
	{
		width: 142px;
		height: 40px;
		font-size: 12px;
	}
	.opening_hours
	{
		left: auto;
		width: 100%;
	}
	
	/* Intro section more compact */
	.intro
	{
		padding-top: 30px;
		padding-bottom: 20px;
	}
	
	.section_title h2
	{
		font-size: 28px;
	}
	
	.intro_form_container
	{
		margin-top: 40px;
	}
	
	/* Services section more compact */
	.services
	{
		padding-top: 30px;
		padding-bottom: 20px;
	}
	
	.service_col
	{
		margin-bottom: 20px;
	}
	
	/* Why section - keep no padding */
	.why_content
	{
		padding: 25px 15px 25px 15px !important;
	}
	
	.why_list_title
	{
		font-size: 16px;
	}
	
	.why_list_text
	{
		font-size: 13px;
	}
	
	/* Keep milestones horizontal on very small screens */
	.milestones_row
	{
		margin-top: 15px;
	}
	
	.milestone_col
	{
		flex: 0 0 50%;
		max-width: 50%;
		margin-bottom: 15px !important;
	}
	
	.milestone_col:nth-child(3)
	{
		flex: 0 0 100%;
		max-width: 100%;
		margin-top: 5px;
	}
	
	.milestone_counter
	{
		font-size: 28px;
		margin-bottom: 5px;
	}
	
	.milestone_text
	{
		font-size: 11px;
		line-height: 1.3;
	}
	
	/* Compact footer */
	.footer_content
	{
		padding-top: 40px !important;
		padding-bottom: 20px !important;
	}
	
	.footer_col:not(:last-child)
	{
		margin-bottom: 30px !important;
	}
	
	.footer_about_text,
	.contact_list,
	.locations_list,
	.opening_hours_list
	{
		margin-top: 15px;
	}
}

/************
11. 539px
************/

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

/************
12. 480px
************/

@media only screen and (max-width: 480px)
{
	/* Even more compact for very small phones */
	.home_title
	{
		font-size: 30px;
	}
	
	.home_subtitle
	{
		font-size: 16px;
	}
	
	.home_text p
	{
		font-size: 13px;
	}
	
	.section_title h2
	{
		font-size: 24px;
	}
	
	.intro
	{
		padding-top: 25px;
		padding-bottom: 15px;
	}
	
	.services
	{
		padding-top: 25px;
		padding-bottom: 15px;
	}
	
	.why_content
	{
		padding: 20px 15px 20px 15px !important;
	}
	
	.cta
	{
		padding-top: 30px;
		padding-bottom: 30px;
	}
	
	.extra
	{
		padding-top: 35px;
		padding-bottom: 35px;
	}
	
	.newsletter
	{
		padding-top: 35px;
		padding-bottom: 35px;
	}
	
	.footer_content
	{
		padding-top: 30px !important;
		padding-bottom: 15px !important;
	}
	
	.footer_col:not(:last-child)
	{
		margin-bottom: 25px !important;
	}
}

/************
13. 479px
************/

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

/************
14. 400px
************/

@media only screen and (max-width: 400px)
{
	.home_title
	{
		font-size: 26px;
	}
	
	.milestone_counter
	{
		font-size: 24px;
	}
	
	.milestone_text
	{
		font-size: 10px;
	}
}