/*
THEME NAME: Sourcing Change 2026
THEME URI: https://deliciousdesign.com/
VERSION: 3.5
AUTHOR: Delicious Design
AUTHOR URI:
*/

/* ------------------------------------------------------------------ RESET --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;tab-size:4;}
body{min-height:100vh;line-height:1;}
h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,dt,dd,li,figure,figcaption,address,details,summary{margin:0;padding:0;font-size:100%;font-weight:inherit;font-style:inherit;font-family:inherit;overflow-wrap:break-word;}
ul,ol{list-style:none;}
blockquote,q{quotes:none;}
blockquote::before,blockquote::after,q::before,q::after{content:"";}
a{color:inherit;text-decoration:none;}
a:focus-visible{outline:2px solid currentColor;outline-offset:2px;}
img,video,svg,canvas,audio,iframe,embed,object{display:block;max-width:100%;}
img,video{height:auto;}
table{border-collapse:collapse;border-spacing:0;}
caption,th,td{text-align:left;font-weight:normal;vertical-align:middle;}
input,button,textarea,select{font:inherit;appearance:none;-webkit-appearance:none;border:0;background:none;color:inherit;}
button{cursor:pointer;}
textarea{resize:vertical;}
:focus-visible{outline:2px solid currentColor;outline-offset:2px;}
:focus:not(:focus-visible){outline:none;}
[hidden]{display:none !important;}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;}html{scroll-behavior:auto;}}


/* ------------------------------------------------------------------------ GLOBALS --- */
:root {
	--sou-blue-dark: #071b3d;
	--sou-violet-light: #9f9ae9; /* footer hover state */

		--sou-page-violet: #7e78f7;
		--sou-page-violet-dark: #6560d4;
	--sou-page-violet-tint: #e6e4fd;
	--sou-page-blue-dark: #071b3d;
	--sou-page-blue-tint: #dae3f3;
		--sou-page-cyan: #4975c1; /* connect */
		--sou-page-teal: #2aa7ab;
	--sou-page-teal-tint: #d5e3e3;

	--sou-header-background:rgba(255,255,255,0.9);
	--sou-header-shadow: 0px 0px 30px rgba(0,0,0,0.2);
	--sou-nav-color: #999999;
	--sou-nav-hover: #7F77FF;
	--sou-search-border: 1px solid #ededed;
	--sou-search-border-light: 1px solid rgba(255,255,255,0.5);

	--sou-excerpt-shadow: 0px 0px 15px rgba(0,0,0,0.2);
	--body-color: #363636;
	--main-bg-color: #ffffff;

	--headline-color: #071b3d;
	--type-color-dark: #464646;
	--type-color-light: #ffffff;
	--post-hr: #dddddd;

	--link-color: #7e78f7;
	--link-color-hover: #622bff;

	--main-radius: 8px;
	--button-radius: 5px;

/*
	--sou-page-violet: #8e9677;
	--sou-page-violet-dark: #858f68;
	--sou-page-cyan: #5d7295;
	--sou-page-teal: #7d8f90; */
	}
.red { color: red; }


/* --------------------------------------------------------------------------- BODY --- */
html {
	font-size: 17px;
	text-align: left;
	}
body {
	background: var(--sou-blue-dark);
	}
body,
input,
textarea,
select {
	color: var(--type-color-dark);
	}


/* ------------------------------------------------------------------------- COLORS --- */
a {
	transition: all .3s;
	cursor: pointer;
	}
a:link,
a:visited {
	color: var(--link-color);
	}
a:hover,
a:active,
div.entry_meta div a:hover,
div.entry_meta div a:active {
	color: var(--link-color-hover);
	}
.headlines, h1, h2, h3, h4, h5, h6 {
	color: var(--headline-color);
	}
a.button,
div.button,
input[type=submit],
input[type=button] {
	display: inline-block;
	background-color: var(--sou-blue-dark);
	color: var(--type-color-light);
	border: 1.5px solid rgba(255,255,255,1.0);
	cursor: pointer;
	text-align: center;
	padding: 16px 40px;
	font-size: 0.9rem;
	line-height: 1;
	font-weight: 900;
	border-radius: 10px;
	transition: background-color .3s, color .3s;
	}
a.button:hover,
div.button:hover,
input[type=submit]:hover,
input[type=button]:hover {
	background-color: var(--sou-blue-dark);
	color: var(--type-color-light);
	border: 1.5px solid rgba(255,255,255,0.0);
	}

a.button.has_icon {
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--sou-blue-dark);
	color: var(--type-color-light);
	border: 1px solid rgba(255,255,255,1.0);
	cursor: pointer;
	text-align: center;
	padding: 16px 5px;
	margin: 0 auto 40px auto;
	max-width:240px;
	font-size: 0.9rem;
	line-height: 1;
	font-weight: 900;
	transition: background-color .3s, border .3s;
	}
a.button.has_icon div.btn_text {
	display:block;
	transition: max-width 0.5s, opacity 1s;
	}
a.button.has_icon div.btn_icon {
	position: relative;
	top:-0.5px;
	display:block;
	max-width:0px;
	padding: 2px 0 2px 0;
/*	overflow:hidden; */
	opacity:0;
	transition: max-width 0.5s, opacity 2s, padding 1s;
	}
a.button.has_icon:hover div.btn_icon {
	max-width:50px;
	padding-left: 6px;
	opacity:1;
	}
a.button.has_icon:hover {
	background-color: var(--sou-blue-dark);
	color: var(--sou-violet-light);
	border: 1px solid rgba(255,255,255,0.0);
	}


/* --------------------------------------------------------------------- TYPOGRAPHY --- */

body,
input[type=text],
input[type=email],
input[type=tel],
textarea,
.archivo_regular {
	font-family: "archivo", sans-serif;
	font-weight: 400;
	font-style: normal;
	}

.archivo_medium {
	font-family: "archivo", sans-serif;
	font-weight: 500;
	font-style: normal;
	}

.headlines, h1, h2, h3, h4, h5, h6,
.archivo_black {
	font-family: "archivo", sans-serif;
	font-weight: 900;
	font-style: normal;
	}

div#blog-description {
	margin: 0 0 0 2px;
	font-size: 0.9rem;
	}
h1 {
	font-size: 2.3rem;
	line-height: 1.1;
	margin: 0 0 1.0rem 0;
	}
h1.post_title {
	font-size: 3.8rem;
	line-height: 1.2em;
	margin: 0 0 1.0rem 0;
	}
.single h1.post_title {
	font-size: 3.2rem;
	line-height: 1.2em;
	margin: 0 0 1.0rem 0;
	}
h1#blog_title {
	display: block;
	position: fixed;
	top: -1000px;
	left: 0;
	}
h2 {
	font-size: 1.9rem;
	line-height: 1.1;
	margin: 0 0 1.0rem 0;
	}
div#main_headline h2 {
	font-size: 2.2rem;
	line-height: 1.1em;
	margin: 0 0 1.0rem 0;
	}
div.solution_content h2 {
	font-size: 1.4rem;
	line-height: 1.3em;
	margin: 0 0 1.0rem 0;
	}
h2.lg_header {
	font-size: 3.2rem;
	line-height: 1.1;
	margin: 0 0 1.0rem 0;
	}
div.one_post_excerpt h2 {
	font-size: 1.3rem;
	line-height: 1.3;
	margin: 0 0 10px 0;
	}

h3 {
	font-size: 1.42rem;
	line-height: 1.1;
	margin: 0 0 1.0rem 0;
	}
h4 {
	font-size: 1.3rem;
	line-height: 1.3em;
	margin: 0 0 20px 0;
	font-weight: 900;
	}
div.solution_content h4 {
	font-size: 1.3rem;
	line-height: 1.4em;
	margin: 0 0 20px 0;
	font-weight: 400;
	}
#footer h4 {
	font-weight: 900;
	}
p {
	font-size: 1.0rem;
	line-height: 1.7em;
	margin: 0 0 1.3rem 0;
	}
ul li,
ol li {
	font-size: 1.0rem;
	line-height: 1.7em;
	margin-bottom: 10px;
	}
ul {
	margin-left: 30px;
	margin-bottom: 0.85rem;
	}
ol {
	margin-left: 33px;
	margin-bottom: 20px;
	}
.entry_content ul {
	margin-left: 30px;
	margin-bottom: calc(1.3rem + 3px);
	list-style-type: square;
	}
.entry_content ol {
	margin-left: 33px;
	margin-bottom: calc(1.3rem);
	list-style-type: decimal;
	}

blockquote {
	display: block;
	position: relative;
	padding-left: 1.3em;
	box-sizing: border-box;
	overflow-wrap: break-word;
	margin-block-start: 40px;
	margin-block-end: 40px;
	}
blockquote:before {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 4px;
	content: '';
	border-left: 4px solid var(--sou-violet-light);
	}
blockquote p {
	margin-bottom: 0;
	font-size: 1.2rem;
	line-height: 1.5em;
	}
em,
i {
	font-style: italic;
	}
strong,
b {
	font-weight: 900;
	}
hr {
	border: 0;
	border-top: 1px solid var(--post-hr);
	margin: 20px 0;
	height: 0;
	}

/* ---------------------------------------------------------------------- STRUCTURE --- */
div#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	background-color: var(--sou-header-background);
	box-shadow: var(--sou-header-shadow);
	z-index: 10;
	transition: margin-top 1s;
	}
div#logo,
div#ftr_logo {
	position:relative;
	width: 210px;
	height: 76px;
	margin: 25px 0;
	}
div#ftr_logo {
	margin: 25px auto;
	}
div#logo img,
div#ftr_logo img {
	position:absolute;
	left:0px;
	top:0px;
	width: 210px;
	height: 76px;
	transition:opacity 0.5s ease;
	}

div#header_search {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease, padding-top 0.4s ease, padding-bottom 0.4s ease;
	}
div#header_search.dd_search_open {
	padding-top:9px;
	padding-bottom:20px;
	max-height: 100px; 
	}






#billboard {
	position: absolute;
	top:0px;
/*	margin-top:103px; */
	left:0px;
	width: 100%;
    height: calc(100vw * 9/16);
	max-height:calc(80vh - 40px);
	overflow: hidden;
	z-index:1;
	background: #bac7df;
	}
#billboard.video_billboard video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	}

.billboard_slide {
	position: absolute;
	top: 0px;
	left: 0;
	width: 100%;
	height:100%;
	opacity: 1;
	transition: opacity 1s ease-in-out;
	z-index: 1;
	}
.billboard_slide img {
	width:100%;
	height:100%;
	object-fit: cover;
	}
#billboard_buffer {
	box-sizing:border-box;
	position: relative;
/*	margin-top:50px; */
	width: 100%;
	height: 70vh;
	min-height: 500px;
	max-height:800px;
	transition: height .5s ease-in-out;
	}
#billboard_headline {
    box-sizing: border-box;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
	width:100%;
	max-width: 1460px;
	margin:0 auto;
    height:100%;
    text-align: center;
    z-index: 5;
    padding: 80px;
	}
#main_headline {
	box-sizing:border-box;
	line-height: 1;
	padding: 0px 0px 0px 0px; 
	width:calc(100% - 350px);
	height: 100%;
	display: flex;
	align-items: center;
	}
div#main_headline h2 {
	color:var(--sou-blue-dark);
    margin:0px;
    min-height:187px;
    width:100%;
    padding-left:40px;
	border-left: 2px solid var(--sou-blue-dark);
	}

div#billboard_logo {
	position:relative;
	width: 350px;
	height: 100%;
	max-height: 400px;
	}
div#billboard_logo img {
	position:absolute;
	left:0px;
	top:50%;
    transform: translate(0, -50%);
	width: 100%;
	padding-top:30px;
	padding-bottom:30px;
	padding-right:40px;
	margin-right: 0px;
	transition:opacity 0.5s ease;
	}
div#billboard_buffer img.tone {
	width:100%;
	height:100%;
	}












.dd_typewriter::after {
	content: '|';
	display: inline-block;
	margin-left: 2px;
	opacity: 1;
	font-weight: 400;
	color: var(--sou-page-violet);
	transition: opacity 0.4s ease;
	}
.dd_typewriter.dd_blink_once::after {
	opacity: 0;
	}
.dd_typewriter.dd_cursor_done::after {
	display: none;
	}
@keyframes dd_blink {
	50% { opacity: 0; }
	}
span.dd_line_2 {
	color: var(--sou-page-violet); 
	display:inline-block;
	margin-top:20px;
	text-shadow: 0 0 8px rgba(255,255,255,1.0); 
	}




/* ------------------------------------------------------ COLOR VARIATIONS --- */
.blog div#header,
.page div#header {
	background-color: var(--sou-blue-dark);
	box-shadow: none;
	}
.home div#header { 
	background-color: transparent;
	box-shadow: none;
	}
.home div#header div#logo { 
	opacity:0;
	}
.home div#header.has_scrolled {
	background-color: var(--sou-header-background);
	box-shadow: var(--sou-header-shadow);
	}
.home div#header.has_scrolled div#logo { 
	opacity:1;
	}

.pageid-2489 div#header /* connect */ { 
	background-color: var(--sou-page-cyan);
	box-shadow: none;
	}
div.intro_color {
	text-align:center; 
	padding:200px 0 40px 0;
	background:black; 
	color:white; 
	}
div.intro_color.dark_blue {
	background:var(--sou-blue-dark); 
	color:var(--type-color-light); 
	}
.pageid-2489 div.intro_color /* connect */ {
	background:var(--sou-page-cyan); 
	color:var(--type-color-light); 
	}

.blog nav#access #menu ul.menu > li.menu-item > a,
.page nav#access #menu ul.menu > li.menu-item > a {
	max-height:20px;
	}
.blog nav#access #menu ul.menu > li#menu-item-4673 a,
.page nav#access #menu ul.menu > li#menu-item-4673 a {
	border-left: var(--sou-search-border-light);
	}
.blog .dd_nav_text::after,
.pageid-2489 .dd_nav_text::after /* connect */ {
	background-color: var(--type-color-light);
	}
.blog nav#access #menu ul.menu > li.menu-item > a,
nav#access #menu ul.menu > li.menu-item > a {
	color: var(--type-color-light);
	}





div#logo img.color_logo,
.blog div#logo img.white_logo,
.page div#logo img.white_logo {
	opacity:1.0;
	}
div#logo img.white_logo,
.home div#logo img.white_logo {
	opacity:0.0;
	}


div#header.scrolled {
	margin-top:-200px;
	}


div#wrapper {
	width: 100%;
	padding: 160px 0 0 0;
	position: relative;
	background-color: var(--main-bg-color);
	}
.blog div#wrapper,
.page div#wrapper {
	padding: 0px 0 0 0;
	}

div.container {
	width: 100%;
	margin: 0 auto;
	}
div.content {
	position:relative;
	z-index:2;
	box-sizing: border-box;
	width:100%;
	padding-top:30px;
	padding-bottom:40px;
	margin: 0 auto;
	transition: width .5s;
	}

div.micro_float {
	position:relative;
	box-sizing: border-box;
	width:100%;
	max-width: 600px;
	margin:0 auto;
	transition: padding 1s;
	}
.min_float {
	position:relative;
	box-sizing: border-box;
	width:100%;
	max-width: 1000px;
	margin:0 auto;
	transition: padding 1s;
	}
.med_float {
	position:relative;
	box-sizing: border-box;
	width:100%;
	max-width: 1200px;
	margin:0 auto;
	transition: padding 1s;
	}
.max_float {
	position:relative;
	box-sizing: border-box;
	width:100%;
	max-width: 1400px;
	margin:0 auto;
	transition: padding 1s;
	}
div.ultra_float {
	box-sizing: border-box;
	position:relative;
	margin:0 auto;
	width:calc(100% - 160px);
	transition: padding 1s;
	}
div.nice_gutter {
	padding-right: 60px;
	padding-left: 60px;
	}
div.nice_gutter_40 {
	padding-right: 40px;
	padding-left: 40px;
	}
h1.text_gutter,
h2.text_gutter,
h4.text_gutter {
	padding-right: 20px;
	padding-left: 20px;
	}
h2.text_gutter {
	margin-top:20px !important;
	}

div.entry_content {
	padding: 30px 0;
	}
div.entry_content.post_content {
	border-top: 1px solid var(--post-hr);
	padding-bottom: 60px;
	}

/* ------------------------------------------------------------------- WIDGET GRIDS --- */
h2#expertise_header {
	font-family: "archivo", sans-serif;
	font-weight: 400;
	font-style: normal;
	text-align:center; 
	margin-top:60px; 
	margin-bottom:40px; 
	color:#fff;
	font-size: 1.7rem;
	line-height: 1.3em;
	}
h2#biographical_header {
	font-family: "archivo", sans-serif;
	font-weight: 400;
	font-style: normal;
	text-align:center; 
	margin-top:60px; 
	margin-bottom:40px; 
	color:#fff;
	font-size: 1.7rem;
	line-height: 1.3em;
	}
h2#featured_work_header {
	font-family: "archivo", sans-serif;
	font-weight: 400;
	font-style: normal;
	text-align:center; 
	margin-top:60px; 
	margin-bottom:40px; 
	color:var(--sou-page-blue-dark);
	font-size: 1.7rem;
	line-height: 1.3em;
	}
h2#insights_header {
	font-family: "archivo", sans-serif;
	font-weight: 400;
	font-style: normal;
	text-align:center; 
	margin-top:60px; 
	margin-bottom:40px; 
	color:var(--sou-page-blue-dark);
	font-size: 1.7rem;
	line-height: 1.3em;
	}
div#expertise_toggles {
	margin-top:5px;
	margin-bottom:40px;
	align-items: flex-start;
	}
div#expertise_toggles div.one_grid_item {
	position:relative;
	cursor:pointer;
	width:calc((100% / 3) - 40px);
	margin: 60px 20px 20px 20px;
	padding: 0px 20px 40px 20px;
	min-height:175px;
	background:var(--sou-page-violet-dark);
/*	border-radius: var(--main-radius); */
	transition: background .6s ease, opacity 0.6s ease, transform 0.6s ease;
	transition-delay: var(--dd-fade-delay, 0s);
	}
div#expertise_toggles div.one_grid_item.dd_visible {
	transition: background .6s ease, opacity 0.6s ease, transform 0.6s ease;
	transition-delay: 0s !important;
	}
div#expertise_toggles div.one_grid_item:hover {
	background:var(--sou-page-blue-dark);
	}
div#expertise_toggles div.one_grid_item:hover i {
	color:var(--sou-page-violet);
	bottom:22px;
	}
div#expertise_toggles div.one_grid_item img {
	display:block;
	width:90px;
	height:90px;
	margin: -45px auto 16px auto;
	border-radius:50%;
	}
div#expertise_toggles div.one_grid_item h4 {
	margin: 0 0 10px 0;
	text-align: center;
	}
div#expertise_toggles div.one_grid_item i {
	display:block;
	text-align:center;
	position: absolute;
	width:100%;
	bottom:26px;
	left:0px;
	transition: color .3s, bottom .6s, transform .3s ease;
	}
div#expertise_toggles div.one_grid_item i.dd_rotated {
	transform: rotate(180deg);
	}
div#expertise_toggles div.one_grid_item:hover i.dd_rotated {
	bottom:30px;
	}
div#expertise_toggles div.one_grid_item p {
	text-align:center;
	margin-bottom:0px;
	display:none;
	}
div#experience_grid.dd_toggle_grid div.one_grid_item p {
	margin-bottom:0px;
	display:none;
	}
div#experience_grid.dd_toggle_grid div.one_grid_item {
	cursor:pointer;
	display:flex;
	}
div#experience_grid.dd_toggle_grid div.one_grid_item img {
	display:block;
	width:60px;
	height:60px;
	margin: 0 20px 20px -8px;
	border-radius:50%;
	}
div#experience_grid.dd_toggle_grid div.one_grid_item div {
	margin: 2px 0 0 0;
	}
div#experience_grid.dd_toggle_grid div.one_grid_item i {
	display: block;
	padding: 6px 0 10px 0;
	color:var(--sou-page-teal-tint);
	opacity:0.3;
	transition: opacity 0.3s, padding 0.3s;
	}
div#solution_source div#experience_grid.dd_toggle_grid div.one_grid_item h4 {
	color:var(--type-color-light);
	transition: color 0.6s;
	}
div#solution_source div#experience_grid.dd_toggle_grid div.one_grid_item:hover h4 {
	color:var(--sou-blue-dark);
	}
div#experience_grid.dd_toggle_grid div.one_grid_item:hover i {
	padding: 10px 0 6px 0;
	opacity:1.0;
	}
div#experience_grid.dd_toggle_grid div.one_grid_item i.dd_rotated {
	padding: 10px 0 6px 0;
	opacity:0;
	}



div.one_grid_item {
	width:calc((100% / 3) - 40px);
	margin: 20px;
	}
div#biographical_grid div.one_grid_item {
	width:calc((100% / 2) - 40px);
	margin: 20px;
	}
div.one_grid_item img {
	display:block;
	width:60px;
	height:60px;
	margin: 0 0 20px 0;
	border-radius:50%;
	}
div#biographical_grid div.one_grid_item img {
	display:block;
	width:160px;
	height:160px;
	margin: 0 0 20px 0;
	border-radius: 50%;
	}
div.one_grid_item h4 {
	margin: 0 0 10px 0;
	color:var(--sou-page-violet);
	}
.home div#solution_design div.one_grid_item h4,
.home div#solution_counsel div.one_grid_item h3 {
	color:var(--type-color-light);
	}
.home div#solution_design div.one_grid_item h4,
.home div#solution_counsel div.one_grid_item h3,
div.one_grid_item h4 {
	font-weight: 500;
	}
div#solution_counsel div.one_grid_item h4 {
	color: var(--type-color-dark);
	}
div#solution_source div.one_grid_item h4 {
	color: var(--sou-page-teal);
	}


/* ---------------------------------------------------------------------- SOLUTIONS --- */
div#solutions h2 {
	color:var(--type-color-light);
	}
div#solutions div.solution_content h2 {
	color:var(--sou-blue-dark);
	}
div#solution_design {
	background:var(--sou-page-violet);
	background: linear-gradient(135deg, var(--sou-page-violet) 50%, var(--sou-page-teal) 100%);
	color:var(--type-color-light);
	}
div#strategize {
	background:var(--sou-page-cyan);
	background: linear-gradient(135deg, var(--sou-page-cyan) 50%, var(--sou-page-teal) 100%);
	color:var(--type-color-light);
	}
div#solution_design div.solution_content {
	background:var(--sou-page-violet-tint);
	color:var(--type-color-dark);
	}
div#solution_counsel {
	background:var(--sou-blue-dark);
	color:var(--type-color-light);
	}
div#solution_counsel div.solution_content {
	background:var(--sou-page-blue-tint);
	color:var(--type-color-dark);
	}
div#solution_source {
	background:var(--sou-page-teal);
	background: linear-gradient(-135deg, var(--sou-page-teal) 50%, var(--sou-page-cyan) 100%);
	color:var(--type-color-light);
	}
div#solution_source div.solution_content {
	background:var(--sou-page-teal-tint);
	color:var(--type-color-dark);
	}
div.solution_graphic {
	width: 36%;
	}
div.solution_graphic img {
	width:100%;
	height:auto;
	}
div.solution_intro {
	width: 62%;
	}


/* -------------------------------------------------------------------- SINGLE POST --- */
div.entry_meta {
	display:flex;
	margin: 0 0 30px 8px;
	}
div.entry_meta div {
	padding: 0 15px 0 0;
	margin: 0 15px 0 0;
	border-right: 1px solid var(--post-hr);
	}
div.entry_meta div.filed_under {
	border-right: none;
	}
div.entry_meta div a {
	color:var(--type-color-dark);
	}

/* ------------------------------------------------------------------- BLOG INDEXES --- */
div.archive_meta {
	text-align:center;
	}
div.one_post_excerpt {
	position:relative;
	box-sizing:border-box;
	width: calc((100% / 3) - 40px);
	margin: 20px;
	padding: 20px 20px 50px 20px;
	background: var(--type-color-light);
	box-shadow: var(--sou-excerpt-shadow);
	}
div.cat_links {
	display:flex;
	flex-wrap:wrap;
	margin: 0 0 15px 0;
	}
div.cat_links a {
	font-size: 0.88rem;
    display: inline-block;
    position: relative;
	margin: 0 11px 5px 0; 
	color:var(--link-color);
	}
div.cat_links a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -5px;
	height: 2px;
	background-color: var(--link-color);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.5s ease;
	}
div.cat_links a:hover::after {
	transform: scaleX(1);
	}
div.post_meta {
	position:absolute;
	left: 20px;
	bottom: 20px;
	}
div.post_meta .author {
	font-size: 0.88rem;
	font-weight: 500;
	margin: 0 0 7px 0;
	}
div.post_meta .author a {
	color: var(--type-color-dark);
	}
div.one_post_excerpt a.entry_link_wrap h2 {
	color:var(--type-color-dark);
	transition: color .3s;
	}
a.entry_link_wrap .excerpt_entry_content {
	color: var(--type-color-dark);
	opacity:0.7;
	transition: opacity .3s;
	}
div.one_post_excerpt a.entry_link_wrap:hover h2 {
	color: var(--link-color);
	}
a.entry_link_wrap:hover .excerpt_entry_content {
	opacity:1.0;
	}
div.post_meta .entry_date {
	font-size: 0.80rem;
	}

div#nav_below {
	display: flex;
	justify-content: center;
	margin: 60px 0 40px 0;
	}
div#nav_below ul.page-numbers {
	display: flex;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
	}
div#nav_below ul.page-numbers li {
	display: flex;
	margin: 0 4px;
	padding: 0;
	}
div#nav_below ul.page-numbers li a {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--sou-blue-dark);
	color:var(--type-color-light);
	text-align: center;
	height: 38px;
	width: 38px;
	line-height: 1;
	font-weight: 500;
	}
div#nav_below ul.page-numbers li span.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #c2c2c2;
	color:var(--type-color-dark);
	text-align: center;
	height: 38px;
	width: 38px;
	line-height: 1;
	font-weight: 900;
	}
div#nav_below ul.page-numbers li span.page-numbers.dots {
	font-weight: 400;
	opacity: 0.5;
	}
div#nav_below ul.page-numbers li a:hover {
	background: var(--sou-violet-light);
	color:var(--type-color-light);
	}
div.dd_post_nav {
	display: flex;
	justify-content: center;
	margin-bottom: 60px;
	}
div.dd_post_nav a {
	display:block;
	color:var(--sou-blue-dark);
	margin: 0 5px;
	}
div.dd_post_nav a:hover {
	color:var(--sou-violet-light);
	}

body.search-results div#grid_wrapper div.page {
	background:rgba(0,0,0,0.03);
	}
body.search-results div#grid_wrapper div.page div.cat_links,
body.search-results div#grid_wrapper div.page div.post_meta {
	display: none;
	}

/* --------------------------------------------------------------------------- FLEX --- */
div.flex_container {
	display: flex;
	}
div.flex_wrap {
	flex-wrap: wrap;
	}
div.flex_inverse_order {
	flex-direction: row-reverse;
	}
div.flex_align_v_center {
	align-items: center;
	}
div.flex_align_h_center {
	justify-content: center;
	}
div.flex_align_stretch {
	align-items: stretch;
	}
div.flex_space_between {
	justify-content: space-between;
	}
.f_100 { width: 100%; }
.f_80  { width: 80%; }
.f_60  { width: 60%; }
.f_50  { width: 50%; }
.f_49  { width: 49%; }
.f_33  { width: 33.332%; }
.f_20  { width: 20%; }

/* ------------------------------------------------------------------------ EFFECTS --- */
.fade_in {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease, max-height 0.6s ease;
	transition-delay: var(--dd-fade-delay, 0s);
	}
.fade_in.dd_visible {
	opacity: 1;
	transform: translateY(0);
	}


/* --------------------------------------------------------------------- NAVIGATION --- */
a#nav_toggle {
	display: none;
	}
nav#access {
	display: flex;
	align-items: stretch;
	}
nav#access #menu {
	display: flex;
	align-items: stretch;
	}
nav#access #menu ul.menu {
	display: flex;
	align-items: stretch;
	list-style: none;
	margin: 0;
	padding: 0;
	}
nav#access #menu ul.menu > li.menu-item {
	display: flex;
	align-items: center;
	margin:0;
	}
nav#access #menu ul.menu > li.menu-item > a {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 16px;
	font-size: 1.1rem;
	color: var(--type-color-light);
	cursor: pointer;
	}
.home nav#access #menu ul.menu > li.menu-item > a,
.single nav#access #menu ul.menu > li.menu-item > a,
.category nav#access #menu ul.menu > li.menu-item > a,
.author nav#access #menu ul.menu > li.menu-item > a,
.search nav#access #menu ul.menu > li.menu-item > a,
.four04 nav#access #menu ul.menu > li.menu-item > a,
.tag nav#access #menu ul.menu > li.menu-item > a {
	color: var(--type-color-dark);
	}
.dd_nav_text {
	position: relative;
	display: inline-block;
	}
.dd_nav_text::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 2px;
	background-color: var(--sou-nav-hover);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.3s ease;
	}
nav#access #menu ul.menu > li.menu-item:hover .dd_nav_text::after,
nav#access #menu ul.menu > li.menu-item.current-menu-item .dd_nav_text::after {
	transform: scaleX(1);
	}
nav#access #menu ul.menu > li#menu-item-4673 a {
	border-left: var(--sou-search-border);
	padding: 0 0 0 20px;
	margin-left:12px;
	}
nav#access #menu ul.menu > li#menu-item-4673 a:hover {
	color:var(--sou-nav-hover);
	}
nav#access #menu ul.menu > li#menu-item-4673 .dd_nav_text::after {
	display: none;
	}

/* ------------------------------------------------------------------------- FOOTER --- */
div#footer {
	width: 100%;
	background-color: var(--sou-blue-dark);
	color: var(--type-color-light);
	clear: both;
	text-align:center;
	padding: 40px 0 100px 0;
	}
div#footer h4 {
	color:var(--type-color-light);
	text-transform:none;
	font-size: 2.7rem;
	padding: 0px 0 8px 0;
	}
.ftr_phone {
	font-size: 1.2rem;
	font-weight: 500;
	padding: 10px 0 36px 0;
	}
.copyright {
	font-size: 0.70rem;
	opacity:0.8;
	}
div#footer a {
	color: var(--type-color-light);
	}
div#footer a:hover {
	color: var(--sou-violet-light);
	}


/* ------------------------------------------------------------------------- SOCIAL --- */
div.social {
	display:flex;
	justify-content: center;
	align-items: center;
	margin: 0px 0 40px 0;
	}
div.social a {
	display:flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width:52px;
	aspect-ratio: 1/1;
	margin: 0 10px;
	padding: 10px;
	border: 1.5px solid rgba(255,255,255,0.2);
	border-radius:50%;
	}
div.social a:hover {
	border: 1.5px solid rgba(255,255,255,1.0);
	}
div.social a i {
	font-size: 1.1rem;
	line-height: 1;
	display:block;
	box-sizing: border-box;
	}

/* ----------------------------------------------------------------- SEARCH RESULTS --- */
.search_result_blox {
	margin: 0 0 20px 0;
	background-color: rgba(194,194,194,0.5);
	}
div#nav_below div {
	width: 50%;
	background-color: rgba(194,194,194,0.5);
	float: left;
	}
div#nav_below div.nav_next {
	text-align: right;
	float: right;
	}


/* ------------------------------------------------------------- IMAGES / ALIGNMENTS --- */
img.alignright,
.alignright {
	float: right;
	margin: 3px 0 5px 14px;
	}
img.alignleft,
.alignleft {
	float: left;
	margin: 3px 14px 5px 0;
	}
img.aligncenter,
img.alignnone,
.aligncenter,
.alignnone {
	display: block;
	margin: 12px auto 3px;
	text-align: center;
	width: 100%;
	height: auto;
	}
.wp-caption p {
	font-size: 0.9rem;
	line-height: 1.3rem;
	margin: 4px 0 0 0;
	text-transform: uppercase;
	}
div.wp-caption.aligncenter,
div.wp-caption.alignnone {
	width: 100% !important;
	max-width: 100%;
	}


/* -------------------------------------------------------------------------- FORMS --- */
form.wpcf7-form {
	display: block;
	padding: 1rem 0 0.5rem 0;
	}
form.wpcf7-form p {
	margin: 0 0 0.5rem 0;
	}
input[type=text],
input[type=email],
input[type=tel],
textarea {
	width: 100%;
	padding: 10px;
	font-size: 1.0rem;
	line-height: 1.0rem;
	border-radius: var(--main-radius);
	background-color: #fff;
	border: .5px solid rgba(0,0,0,0.5);
	margin: 0 0 10px 0;
	transition: all .3s;
	}
input#s-hdr,
input#s-404,
input#s-no-results {
	margin: 0 10px 0;
	margin-left: 0px;
	}
form#searchform-404 input.button {
	padding: 15px 40px;
	}
textarea {
	height: 250px;
	}
input[type=radio] {
	height: 20px;
	transition: all .3s;
	}
select {
	width: 100%;
	padding: 8px;
	font-size: 1.0rem;
	line-height: 1.0em !important;
	border-radius: var(--main-radius);
	border: .5px solid rgba(0,0,0,0.5);
	background: url(images/select-pattern.png) #f0f0f0 no-repeat center right;
	transition: all .3s;
	}
input[type=text]:focus,
input[type=email]:focus,
input[type=tel]:focus,
textarea:focus,
select:focus {
	border: .5px solid rgba(0,0,0,1.0);
	}


/* -------------------------------------------------------------------- FORM ERRORS --- */
form div.wpcf7-response-output {
	display: block;
	padding: 0px;
	clear: both;
	}
form.invalid div.wpcf7-response-output {
	margin: 0 0 40px 0;
	padding: 20px;
	font-size: 1.0rem;
	border-radius: 5px;
	border: 1px solid #ebbc00;
	color: #da7726;
	background: #faeebd;
	}
input[type=text].wpcf7-not-valid,
input[type=email].wpcf7-not-valid,
input[type=tel].wpcf7-not-valid,
textarea.wpcf7-not-valid,
select.wpcf7-not-valid {
	background: #faeebd;
	border: 1px solid #ebbc00;
	}
span.wpcf7-not-valid-tip {
	text-align: right;
	color: #da7726;
	display: block;
	line-height: 1.0rem;
	margin-top: -8px;
	}

/* -------------------------------------------------------------------- GPDR BANNER --- */
div#gdpr_banner {
	width:100%;
	height:auto;
	padding: 20px 0;
	background: var(--main-bg-color);
	color: var(--type-color-dark);
	border-top: 4px solid var(--headline-color);
	position:fixed;
	bottom:0px;
	left:0px;
	z-index:90;
	display: none;
	}
div#gdpr_banner div#banner_inset_content {
	display: flex;
	}
div#gdpr_banner div.banner_buttons {
	display: flex;
	align-items: flex-start;
	margin-left:20px; 
	margin-top:0px; 
	flex-grow: 1; 
	}
div#gdpr_banner div.banner_buttons div.button {
	display:block;
	white-space: nowrap;
	margin-bottom: 5px;
	width:100%;
	font-size: 0.8rem;
	}
div#gdpr_banner p {
	font-size: 1.0rem;
	text-align: left;
	margin:0;
	font-size: 0.95rem;
	}


/* -------------------------------------------------------------------------- CRUFT --- */
.d_hidden {
	display: none;
	}
.fixme {
	color: darkred;
	background: #faeebd;
	}
div#edit {
	background: rgba(0,0,0,0.5);
	color: #fff;
	position: fixed;
	left: 0;
	bottom: 0;
	padding: 10px;
	z-index: 99;
	}
div#edit a {
	cursor: pointer;
	}


/* ------------------------------------------------------------------------------------ */
/* --------------------------------------------------------------------- RESPONSIVE --- */
div#viewport {
	position: fixed;
	z-index: 999;
	right: 0;
	bottom: 0;
	display: flex;
	}
div#viewport div {
	background: #CCC;
	color: #fff;
	padding: 10px;
	opacity: 0.7;
	display: none;
	}
div#viewport div#vp_3600 {
	display: block;
	}

/* ----------------------------------------------------------------------------- < 3600 */
@media (max-width: 3600px) {
div#viewport div { display: none; }
div#viewport div#vp_3600 { display: block; }
}

/* ----------------------------------------------------------------------------- < 2400 */
@media (max-width: 2400px) {
div#viewport div#vp_3600 { display: none; }
div#viewport div#vp_2400 { display: block; opacity: 0.9; }
}

/* ----------------------------------------------------------------------------- < 1600 */
@media (max-width: 1600px) {
div#viewport div#vp_2400 { display: none; }
div#viewport div#vp_1600 { display: block; opacity: 0.9; }
}

/* ----------------------------------------------------------------------------- < 1400 */
@media (max-width: 1400px) {
div#viewport div#vp_1600 { display: none; }
div#viewport div#vp_1400 { display: block; opacity: 0.9; }
}

/* ----------------------------------------------------------------------------- < 1269 */
@media (max-width: 1269px) {
div#main_headline h2 {
	min-height: 227px;
	}
}

/* ----------------------------------------------------------------------------- < 1200 */
@media (max-width: 1200px) {
div#viewport div#vp_1400 { display: none; }
div#viewport div#vp_1200 { display: block; opacity: 0.9; }
}

/* ----------------------------------------------------------------------------- < 1113 */
@media (max-width: 1113px) {
div#main_headline h2 {
	min-height: 268px;
	}
}

/* ----------------------------------------------------------------------------- < 1000 */
@media (max-width: 1000px) {
div#viewport div#vp_1200 { display: none; }
div#viewport div#vp_1000 { display: block; opacity: 0.9; }
#billboard_headline {
	padding: 60px;
	}
div#billboard_logo {
	width: 300px;
	}
#main_headline {
	width: calc(100% - 300px);
	}
div#main_headline h2 {
	min-height: 309px;
	}
div.ultra_float {
	width:calc(100% - 80px);
	}
div.nice_gutter,
div.nice_gutter_40 {
	padding-right: 30px;
	padding-left: 30px;
	}
div.one_post_excerpt {
	width: calc((100% / 2) - 40px);
		margin: 20px;
		padding: 20px 20px 50px 20px;
	}
div#expertise_toggles div.one_grid_item {
	width: calc((100% / 2) - 40px);
		margin: 60px 20px 20px 20px;
		padding: 0px 20px 40px 20px;
	}
div.one_grid_item {
	width: calc((100% / 2) - 40px);
		margin: 20px;
	}
div#gdpr_banner div.banner_buttons {
		display: flex;
		align-items: flex-start;
		margin-left: 20px;
		margin-top: 0px;
		flex-grow: 1;
	display: block;
	}

}

/* ------------------------------------------------------------------------------ < 839 */
@media (max-width: 839px) {
#billboard_headline {
	height:auto;
	flex-direction: column;
	align-items: flex-start;
	}
#main_headline {
	width:100%;
	}
div#billboard_logo {
	height: 156px;
	margin-bottom: 40px;
	}
div#main_headline h2 {
	min-height:270px;
	padding: 0;
	padding-top: 40px;
	border-left: transparent;
	border-top: 2px solid var(--sou-blue-dark);
	}
div#billboard_logo img {
	padding-top: 0px;
	padding-bottom: 30px;
	padding-right: 0px;
	}
div#billboard_logo.has_scrolled {
	max-height: 40px;
	opacity:0.0;
	overflow:hidden;
	transition: max-height 2s;
	}

}

/* -----------------------------------------------------------------  TABLETS  -- < 760 */
@media (max-width: 760px) {
div#viewport div#vp_1000 { display: none; }
div#viewport div#vp_760 { display: block; opacity: 0.9; }
.d_hidden { display: inline; }
.m_hidden { display: none; }


div#biographical_grid div.one_grid_item {
	width: calc((100%) - 40px);
	}
div.one_grid_item {
	width: calc((100%) - 40px);
	}


div#header.scrolled a#nav_toggle {
	top:-53px;
	}
a#nav_toggle {
	display: block;
	padding: 14px 15px 14px 25px;
	font-size: 1.5rem;
	line-height: 1.0rem;
	position: fixed;
	top: 32px;
	right: 0;
	z-index: 21;
	transition: top 1s;
	}
a#nav_toggle {
	color: var(--type-color-light);
	}
a#nav_toggle:hover {
	color: var(--sou-page-cyan);
	}
/* home */
body.home a#nav_toggle,
body.single a#nav_toggle,
body.search a#nav_toggle {
	color: var(--sou-blue-dark);
	}
body.home a#nav_toggle:hover,
body.single a#nav_toggle:hover,
body.search a#nav_toggle:hover {
	color: var(--sou-page-cyan);
	}
/* home open, page */
body.menu_open.home a#nav_toggle,
body.single.menu_open a#nav_toggle,
body.search.menu_open a#nav_toggle,
.page a#nav_toggle {
	color: var(--type-color-light);
	}
body.menu_open.home a#nav_toggle:hover,
body.menu_open.search a#nav_toggle:hover,
.page a#nav_toggle:hover,
body.pageid-2489.menu_open a#nav_toggle:hover,
body.single.menu_open a#nav_toggle:hover {
	color: var(--sou-page-cyan);
	}
/* contact page */
body.pageid-2489 a#nav_toggle:hover {
	color: var(--sou-page-teal-tint);
	}
/* search link */
nav#access #menu ul.menu > li#menu-item-4673 a {
	border-left: 0px solid rgba(0,0,0,0)!important;
	padding: 20px;
    margin: 0;
    text-transform: none;
	}
nav#access #menu ul.menu > li.menu-item > a {
	color:white!important;
	max-height: 30px!important;
	}
nav#access #menu ul.menu .dd_nav_text::after {
	background-color: var(--sou-page-cyan);
	}
nav#access #menu ul.menu > li.menu-item:hover .dd_nav_text::after {
	display:none;
	}
nav#access #menu ul.menu > li.menu-item.current-menu-item:hover .dd_nav_text::after {
	display:inline-block;
	background:var(--sou-page-cyan);
	}

	nav#access {
		position: fixed;
		top: 0;
		right: -100vw;
		width: 100vw;
		margin: 0;
		min-height: 1500px;
		z-index: -1;
		background-color: rgba(0,0,0,0.5);
		opacity: 0;
		backdrop-filter: blur(2px);
		-webkit-backdrop-filter: blur(2px);
		transition: opacity .5s;
		}
	nav#access.visible_menu {
		right: 0;
		opacity: 1;
		z-index: 20;
		}
nav#access #menu ul.menu {
	padding: 10px 0;
	flex-direction: column;
	margin: 0;
	background:var(--sou-blue-dark);
	}
div#menu {
	position: absolute;
	top: 32px;
	right: 0;
	max-height: calc(100vh - 50px);
	overflow-y: auto;
	}
	div#menu ul li ul.sub-menu {
		top: auto;
		position: relative;
		opacity: 1;
		}
	ul.sub-menu {
		z-index: 99;
		}
	div#menu li {
		float: none;
		}
nav#access #menu ul.menu > li.menu-item > a {
	padding: 20px;
	margin: 0;
	min-width: 180px;
	text-transform: none;
	}
	div#menu ul.sub-menu li a {
		padding: 10px 20px 10px 15px;
		}
	li.menu-item-has-children ul.sub-menu {
		display: none;
		}
	li.menu-item-has-children.submenu_open ul.sub-menu {
		display: block;
		}

div#gdpr_banner div#banner_inset_content {
	display:block;
	}
div#gdpr_banner div.banner_buttons {
	display:flex;
	flex-direction: row;
	margin-left:0px; 
	}
div#gdpr_banner div.banner_buttons div.button {
	display:inline;
	margin-bottom: 10px;
	width:auto;
	}
body.menu_open {
	overflow: hidden;
	}
div#wrapper {
	transition: filter .5s;
	}

}

/* ------------------------------------------------------------------------------ < 666 */
@media (max-width: 666px) {
div#main_headline h2 {
	min-height: 308px;
	}

/* ------------------------------------------------------------------------------ < 600 */
@media (max-width: 600px) {
div#viewport div#vp_760 { display: none; }
div#viewport div#vp_600 { display: block; opacity: 0.9; }
div.ultra_float {
	width:calc(100% - 40px);
	}
div.nice_gutter,
div.nice_gutter_40 {
	padding-right: 20px;
	padding-left: 20px;
	}
div.one_post_excerpt {
	width: calc((100%) - 40px);
	}
div#expertise_toggles div.one_grid_item {
	width: calc((100%) - 40px);
	}
div#gdpr_banner div#banner_inset_content {
	display: block;
	}
div#gdpr_banner div.banner_buttons {
	margin-top: 10px;
	display: flex;
	flex-direction: row;
	
	}
div#gdpr_banner div.banner_buttons div#accept_cookies.button {
	margin:0 !important;
	}
div#banner_inset_content div p {
	line-height: 1.3em;
	}
div#solutions div#solution_design div.content, 
div#solutions div#strategize div.content,
div#solutions div#solution_source div.content {
	flex-direction: column;
	}
div#solutions div#solution_design div.content div.solution_intro, 
div#solutions div#strategize div.content div.solution_intro,
div#solutions div#solution_source div.content div.solution_intro {
	width:100%;
	padding: 20px 20px 0 20px;
	}
div#solutions div#solution_design div.content div.solution_graphic, 
div#solutions div#strategize div.content div.solution_graphic,
div#solutions div#solution_source div.content div.solution_graphic {
	width:80%;
	padding: 20px 20px 0 20px;
	}

}

/* ------------------------------------------------------------------  PHONES  -- < 430 */
@media (max-width: 430px) {
div#viewport div#vp_600 { display: none; }
div#viewport div#vp_430 { display: block; opacity: 0.9; }
div.ultra_float {
	width:calc(100% - 20px);
	}
#billboard_buffer {
	margin-top: 0px;
	height: 90vh;
	min-height: 500px;
	max-height: 3000px;
	}
#billboard_headline {
	padding: 20px;
	}
div#main_headline h2 {
	font-size: 1.9rem;
	min-height: 420px;
	}
div#billboard_logo img {
	padding-bottom: 0px;
	}
div#billboard_logo {
	margin-bottom: 40px;
	width: 250px;
	height:94px;
	}
h1.post_title {
	font-size: 3.0rem;
	line-height: 1.2em;
	margin: 0 0 1.0rem 0;
	}
h2.lg_header {
	font-size: 2.8rem;
	line-height: 1.1;
	margin: 0 0 1.0rem 0;
	}
.single h1.post_title {
	font-size: 2.0rem;
	line-height: 1.2em;
	margin: 0 0 1.0rem 0;
	}
}
