/*
Theme Name: MattCrigger_v3.0
Theme URI: none
Description: My attempt to make a "block driven" site
Author: Matt Crigger
Author URI:
Version: 1.0
*/


:root {
	/*
	https://contrast-grid.eightshapes.com/?version=1.1.0&background-colors=&foreground-colors=%23FFFFFF%2C%20White%0D%0A%23000%2C%20Black%0D%0A%23175676%2C%20Blue%0D%0A%23D84A31%2C%20Chili%0D%0A%23776055%2C%20Brown%0D%0A%23EFEDE7%2C%20Izzy%0D%0A%23E0DDCF%2C%20Bone%0D%0A&es-color-form__tile-size=regular&es-color-form__show-contrast=aaa&es-color-form__show-contrast=aa&es-color-form__show-contrast=aa18
	*/
	
	--white: #FFFFFF;
	--black: #000;

	/* COLORS */
	--color1: #175676; /* primary color */
	--color1text: #FFF;
	--color2: #D24228; /* secondary color */
	--color2text: #FFF;
	--color3: #776055; /* tertiary color */
	--color3text: #FFF;
	
	/* BACKGROUNDS */
	--colorlight1: #CCE6F4;
	--colorlight2: #EFEDE7;
	--colorlight3: #E0DDCF;	
	
	/* SITE SETTINGS */
	--transTime: 250ms;
	/* --easeFav: ease-in-out; */
	--easeFav: cubic-bezier(0.7, 0.1, 0.1, 0.7);
	
	/* HEADER SETTINGS */
	--header-color: #175676;
	--header-color-hover: #D24228;
	--header-height: auto;
	--header-background: var(--colorlight1);
	--header-height: none;
	--header-shadow: 0px 2px 12px rgba(0,0,0,0.5);
	--header-padding: 0;
	--header-max-width: 1200px;
	
	--border-color: none;
	--border-radius: 100rem;
	
	--logo-padding: 10px 2rem;
	
	--font: "Outfit", sans-serif;
	
	--blockPadding: 5rem;
	--maxWidth: 75rem; /* Page content max width */
	--gap: 1.75rem; /* Default gaps for cards, etc. */
	
}



* {
	box-sizing: border-box;
	margin:0;
	padding: 0;
	position: relative;
}



/* GLOBAL ANIMATIONS */
.fade-in-on-scroll,
.stagger-in-on-scroll > * {
  opacity: 0;
  transform: translateY(calc(2 * var(--gap)));
}

.fade-in-on-scroll.is-visible,
.stagger-in-on-scroll > *.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.75s ease-out, transform 1s ease-out; /* only apply here */
}



/* VIDEO MODAL STYLE */
.video-modal {
	display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.8); justify-content: center; align-items: center; z-index: 9999; }
.video-modal-content {
	position: relative; width: 90%; max-width: 800px; }
.video-modal-content iframe {
	width: 100%; height: 450px;	}
.close-video {
	position: absolute; top: -15px; right: -15px; cursor: pointer; z-index: 10; height: 30px; width: 30px; background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path d="M10 10 L20 20 M10 20 L20 10 Z" style="fill:none;stroke:white;stroke-width:1" /></svg>') no-repeat center var(--color2); border-radius: 100px; box-shadow: 0px 1px 5px rgba(0,0,0,0.3); transition: all 0.25s ease-in-out; }
.close-video:hover {
	transform: rotate(90deg); }





.outfit-thin,
.outfit-extralight,
.outfit-light,
.outfit-normal,
.outfit-medium,
.outfit-semibold,
.outfit-bold,
.outfit-extrabold,
.outfit-black { font-family: "Outfit", sans-serif; font-optical-sizing: auto; font-style: normal; }

.outfit-thin { font-weight: 100; }
.outfit-extralight { font-weight: 200; }
.outfit-light { font-weight: 300; }
.outfit-normal { font-weight: 400; }
.outfit-medium { font-weight: 500; }
.outfit-semibold { font-weight: 600; }
.outfit-bold { font-weight: 700; }
.outfit-extrabold { font-weight: 800; }
.outfit-black { font-weight: 900; }


body {
	font-family: var(--font);
	font-weight: 400;
	color: var(--black);
}
hr {
	height: 1px;
	width: 80%;
	margin: 10px auto;
}



#wpadminbar {
	/*
	position: fixed !important;
	bottom: 0;
	top: auto !important;
	*/
}








h1 {
	font-size: 2.25rem;
}
h2,
.h2Text {
	font-size: 1.875rem;
	font-weight: 500;
	font-size: calc(1.25rem + 1.25vw);
}
.h2Text {  }
h3 {
	font-size: 1.625rem;
	font-weight: 200;
}




@media screen and (min-width: 768px ) {
	h1 {
		font-size: calc(2rem + 1.5vw);
	}
	h2 {
		font-size: calc(1.25rem + 1.25vw);
		
	}
}




.button {
	display: inline-block;
	padding: .375rem 1.5rem;
	background: var(--color1);
	color: white;
	text-decoration: none;
	margin: 1rem 0;
	position: relative;
	top: 0;
	box-shadow: 0px 0px 0px rgba(0,0,0,0.5);
	transition: all var(--transTime) ease-in-out;
	border-radius: var(--border-radius);
	align-self: start;
}
.button:hover { background: var(--color2); top: -2px; box-shadow: 0px 3px 5px rgba(0,0,0,0.5); }









/* SMALL DESKTOP AND UP */
@media screen and (min-width: 1300px) {

	#desktopSidebar {
	order:1;
	}

	#desktopContent {
	order: 2;
	}


}







html,
body {
	margin: 0;
	padding: 0;
}

.section {
	width: 100%;
}

.container {
	position: relative;
	max-width: var(--maxWidth);
	margin: 0 auto;
	color: #444;
	font-weight: 300;
}

.section .container {
	padding: 30px 0 50px 0;
}

.section.bg {
	background: #f7f7f7;
}





















/*****	Columns *****/

.fourUpFeatures {
	
}

.flexContainer {
	/*
	display: grid;
	grid-template-columns: repeat(4, minmax(20px, 1fr));
	grid-column-gap: 1rem;
	grid-row-gap: 1rem;
	*/
	display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
    align-content: flex-start;
    gap: 1rem;
	
}


.column {
	padding: 1rem;
	background: var(--izzy);
	}
.column:hover {
	box-shadow: 0px 2px 20px rgba(0,0,0,0.25);
}





.column.five {
	width: calc((100% - 4rem)/5); /* 5 COLUMNS */
}

.column.four {
	width: calc((100% - 3rem)/4); /* 4 COLUMNS */
	}

.column.three {
	width: calc((100% - 2rem)/3); /* 3 COLUMNS */
	}

.column.two {
	width: calc((100% - 1rem)/2); /* 2 COLUMNS */
	}

.column.extrapad {
	}

.column .service,
.column .feature {
	font-size: 21px;
}

	.column .service:after {
	content: "";
	width: 50px;
	position: relative;
	border-bottom: 1px solid #eee;
	display: block;
	text-align: center;
	margin: auto;
	margin-top: 15px;
	}

	.column .feature {
	font-size: 19px;
	}

	.column h2.side,
	.column p.side,
	.column span.side:first-of-type {
	margin-left: 50px;
	text-align: left;
	}

	.column .icon {
	border-radius: 50%;
	height: 85px;
	width: 85px;
	line-height: 85px;
	text-align: center;
	margin: 0 auto;
	transition: background 0.25s linear, color 0.25s linear;
	display: block;
	}

	.column .icon.side {
	position: absolute;
	padding: 0;
	margin: 0;
	top: -15px;
	height: 50px;
	width: 50px;
	}

	.column:hover > .icon {
	background: #F44336;
	color: white;
	}

	.column:hover > .icon.side {
	background: initial;
	color: initial;
	}

	.responsivegroup {
	display: none;
	}





/*****	Column Generals  *****/

.column h2,
.column h3,
.column h4,
.column h5
.column p {
	padding: 0 1%;
	text-align: center;
	}

	.group.margin {
	margin-bottom: 20px;
	}

	.column .imgholder {
	height: 300px;
	width: 100%;
	background: #333;
	transition: background 0.3s linear;
	}

	.column.bg {
	background: #FFF;
	}

	.column.pointer {
	cursor: pointer;
	}

	.column.bg:hover .imgholder {
	background: #555;
	}

	.column span.feature {
	font-size: 20px;
	}








/*
	Text
*/

.container > h2:not(.hero) {
	margin-bottom: 36px;
	text-align: center;
}

.container > h2:after {
	content: "";
	width: 30px;
	position: relative;
	border-bottom: 1px solid #aaa;
	display: block;
	text-align: center;
	margin: auto;
	margin-top: 15px;
}

.left,
.left > h2,
.left > p {
	text-align: left;
}

.reset {
	text-align: left !important;
}

.reset:after {
	display: none !important;
}







/*****  Slider with Content  *****/

.white h1,
.white h2,
.white p,
.white div,
.white a {
	color: #fff;
	}



/*
	Responsive
	*/


@media all and (max-width: 768px) {
	.container {
		width: 95%;
	}
	.column.four {
		width: 48%;
		margin: 1%;
	}
	.column.three {
		display: block;
		width: 95%;
		padding: 0;
		margin: 0 auto;
		float: none;
	}
	
	
	.header {
		height: auto;
		background: var(--header-background);
	}
	
	
	
	#logo {
		position: initial;
		float: none;
		display: block;
		transform: none;
		margin: 10px auto 0 auto;
	}
	ul.nav {
		float: none;
		display: block;
		text-align: center;
		margin: 0 auto;
	}
	ul.nav li {
		float: initial;
		display: inline-block;
	}
	.responsivegroup {
		display: block;
	}
	.responsivegroup:after {
		content: "";
		display: table;
		clear: both;
	}
}

@media all and (min-width: 768px) {
	.container {
		width: 95%; /* 760px is just too tight */
	}
}

@media all and (min-width: 1024px) {
	.container {
		width: 964px;
	}
}

@media all and (min-width: 1200px) {
	.container {
		width: 1140px; /* 1140px */
	}
}

@media all and (max-width:450px) {
	.column, .column.four, .column.three, .column.two {
		display: block;
		width: 95%;
		padding: 0;
		margin: 0 auto;
		float: none;
	}
	.column.extrapad {
		padding: 1%;
		margin-bottom: 10px;
	}
	.group {
		display: none;
	}
}





/* DESKTOP SPECIFIC */
	@media screen and (min-width: 1366px) {


	}





















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

HERO.php

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

.hero {
	color: #fff;
}
.heroBackground {
	background-repeat: no-repeat;
	background-size: cover;
	background-color: black;
}
.hero .headline {
	color: #fff;
}

.sliderHero {
	
}

.heroSimpleWindow {
	background: rgba(0,0,0,0.65);
}

.heroSimpleContent {
	text-align: center;
	min-height: 20rem;
	align-content: center;
}


.heroImageBackground {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
	background-attachment: fixed;
}

.simpleHeroPlaceholder {
	height: 30rem;
}


.hero h1 {
	font-size: 3.5vw;
}

.hero h2 {
	font-size: 30px;
	margin-bottom: 60px;
}

.hero h1:after {
	/*
	content: "";
	width: 300px;
	position: relative;
	border-bottom: 1px solid #aaa;
	text-align: center;
	margin: auto;
	margin-top: 15px;
	*/
}

.hero p {
	font-size: 1.25rem;
	font-weight: 100;
}






.heroImageBackground {
	background-size: cover; background-position: center center;
}
.hero-c .heroImageBackground {
	 height: 25vw; min-height: 12.5rem;
}





/*****	

HERO ....... CTA BUTTONS

*****/

.hero .cta {
	/*
	color: white;
	display: block;
	margin-bottom: 20px;
	*/
}

.hero .cta a {
	display: inline-block;
	border: 1px solid white;
	padding: 8px 13px;
	font-size: 20px;
	background: rgba(0,0,0,0.5);
	transition: all 0.25s ease-in-out;
	color: white;
	text-decoration: none;
	/*
	display: inline-block;
	padding: 0.5rem 1.5rem;
	border-radius: 3px;
	background: linear-gradient(0deg, rgba(23,86,118,1) 7%, rgba(2,119,179,1) 100%);
	border: 1px solid rgba(255,255,255,0.9);
	color: #fff;
	text-decoration: none;
	*/
}

.hero .cta a:hover {
	background: var(--color2);
	cursor: pointer;
	box-shadow: 0px 2px 10px rgba(0,0,0,0.5);
	position: relative;
	top: -2px;
}







/***** 
	
post_image_grid.php

********/

.post_image_grid { display: grid; margin: 0 auto; }

.flex-1column, .flex-2column, .flex-3column, .flex-4column {
	display: flex; gap: 1.875rem; max-width: 47.5rem; flex-wrap: wrap; margin: 0 auto; }
.flex-1column li,
.flex-2column li, 
.flex-3column li,
.flex-3column li { width: 100%; display:grid; font-size: 12px; margin-bottom: 1rem; align-self: start;
	& img { width: 100%; height: auto; min-width: 12.5rem; }	
}

.pg_cardGrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
	grid-gap: 1.875rem;
	align-items: flex-start;
}
.pg_cardGrid > article {
	/*
	box-shadow: 0px 2px 20px 0px rgba(0, 0, 0, 0.2);
	padding: 0rem;
	*/
	background: #0ff;
	display: grid;
	align-content: space-between;
	& img { width: 100%; height: auto; min-width: 12.5rem; }
	}



@media screen and (min-width: 451px) {
	.flex-1column li,
	.flex-2column li, 
	.flex-3column li,
	.flex-4column li { width: calc(50% - .9375rem); }
}


@media screen and (min-width: 47.5rem) {
	.flex-1column li { width: 100%; }
	.flex-2column li { width: calc(50% - .9375rem); }
	.flex-3column li { width: calc((100% / 3) - 1.25rem); }
	.flex-4column li { width: calc(50% - .9375rem); }
}

@media screen and (max-width: 768px) {
	.flex-1column, .flex-2column, .flex-3column, .flex-4column,
	.pg_cardGrid {
		width: 95%;
	}
}



/* 

basic_text.php

*/

.basic_text {
	color: var(--color1);
}






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

SIDEBAR 

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


aside h3 {
	padding-bottom: 15px;
	font-size: 20px;
	display: flex;
	align-items: flex-end;
	border-bottom: 3px solid var(--color1);
}

aside h3:after {
	display: block;
	flex-grow: 1;
	height: 3px;
	content: "";
	background: var(--colorlight3);
	border-left: 10px solid #fff;
	margin-bottom: -18px;
}







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

FOOTER 

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


footer {
	padding: 100px 0; min-height: 30rem; }




