/*
Theme Name: Cornerstone Technology Partners Theme
Description: Custom designed theme specially for Cornerstone Technology Partners
Version: 0.9
Author: Rob Williams, DevUp Inc <hello@devup.ca>
Tags: custom template
*/

/* Default Styles */

:root {
	--cornerstone-header-footer-container-width: 1600px;
	--cornerstone-container-width: 1280px;
	--cornerstone-form-container-width: 600px;
	--cornerstone-main: #7c9a3d;
	--cornerstone-main-light: #b2d17c;
	--cornerstone-main-alt: #5f7a2c;
	--cornerstone-text-light: #ffffff;
	--cornerstone-text-dark: #444444;
	--cornerstone-button-filled-text: #ffffff;
	--cornerstone-button-filled-border: var( --cornerstone-main);
	--cornerstone-button-filled-background: var( --cornerstone-main);
	--cornerstone-button-filled-hover: var( --cornerstone-main-alt);
	--cornerstone-button-hollow-text: #ffffff;
	--cornerstone-button-hollow-text-alt: #444444;
	--cornerstone-button-hollow-border: #aaaaaa;
	--cornerstone-button-hollow-background: transparent;
	--cornerstone-button-hollow-hover: #444444;
	--cornerstone-header-background: #f2ede3;
	--cornerstone-footer-text: #cccccc;
	--cornerstone-header-button-hollow-background: #444444;
	--cornerstone-header-button-hollow-background-hover: #777777;
}

html, body {
    width:                  100%;
    font-family:            'Fira Sans', 'Arial', sans-serif;
    line-height:            1.4em;
    background:             white;
}
body { height: 100%; }

p { padding: 0 0 1em 0; line-height: 1.2em; }
.bold { font-weight: bold; }
.italic { font-style: italic; }
.textleft { text-align: left; }
.textcenter { text-align: center; }
.textright { text-align: right; }
.clear { clear: both; }
.floatleft { float: left; }
.floatright { float: right; }

img.centered {
	display: block;
	margin: 0 auto;
}

img.alignright {
	padding: 4px;
	margin: 0 0 1em 1em;
	display: inline;
}

img.alignleft {
	display: inline;
}

img.aligncenter {
    display: block;
}

.alignright { float: right; }
.alignleft { float: left; }
.aligncenter { margin: 0 auto; }

.padding_top { padding-top: 2em; }
.padding_top_small { padding-top: 1em; }
.padding_bottom { padding-bottom: 2em; }
.padding_bottom_small { padding-bottom: 1em; }

.no_margin_top { margin-top: 0 !important; }
.margin_top { margin-top: 3em !important; }
.margin_top_small { margin-top: 1em !important; }
.no_margin_bottom { margin-bottom: 0 !important; }
.margin_bottom { margin-bottom: 3em !important; }
.margin_bottom_small { margin-bottom: 1em !important; }

/* Basic styles */

a { text-decoration: none; color: var(--cornerstone-main); font-weight: 800; transition: 0.5s all; }
a:hover { color: var(--cornerstone-main-alt); }

.button_link a { text-transform: uppercase; font-family: "Fira Sans", "Arial", sans-serif; padding: 0.5em 1em; display: inline-block; font-size: 1rem; }
.button_link a:after { font: var(--fa-font-solid); content: "\f061"; margin-left: 0.5rem; }
header .button_link a:after { content: none; }
.button_link a.filled_button, .button_link_filled a { border: var(--cornerstone-button-filled-border) 1px solid; background: var(--cornerstone-button-filled-background); color: var(--cornerstone-button-filled-text) !important; }
.button_link a.filled_button:hover, .button_link_filled a:hover { background: var(--cornerstone-button-filled-hover); }
.button_link a.hollow_button, .button_link_hollow a { border: var(--cornerstone-button-hollow-border) 1px solid; background: var(--cornerstone-button-hollow-background); color: var(--cornerstone-button-hollow-text) !important; }
.button_link a.hollow_button:hover, .button_link_hollow a:hover { background: var(--cornerstone-button-hollow-hover); }
header .button_link_hollow a { background: var(--cornerstone-header-button-hollow-background); }
header .button_link_hollow a:hover { background: var(--cornerstone-header-button-hollow-background-hover); }


h1, h2, h3, h4, h5 { font-family: 'DM Serif Text', 'Times New Roman', 'Times', serif; line-height: 1.2em; }
h1 em { color: var(--cornerstone-main); }
h1 { font-size: 3.5rem; }
h2 { font-size: 2.5rem; }
h3 { font-size: 2rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }

.subheading { display: block; position: relative; }
.subheading:after { content: ""; position: absolute; top: 1.25rem; left: 0; width: 100%; height: 3px; background: var(--cornerstone-main); transform-origin: left center; transform: scaleX(0); transition: transform 2s; transition-timing-function: ease-out; }
.subheading.draw_in:after { transform: scaleX(1); }

main { min-height: 79vh; transition: opacity 0.5s; opacity: 1; pointer-events: auto; padding-top: calc( 75px + 3rem ); /* the 3rem refers to the total of the header top + bottom padding. */ }
main > *:not(.fullwidth), .indented, .indented_inside > * { width: 95%; max-width: var(--cornerstone-container-width); margin: 2rem auto; }

header { padding: 1rem 0 2rem; position: fixed; width: 100%; z-index: 100; background: white; box-shadow: 0 0 10px rgba(0,0,0,0.4); }
.header_bar { list-style: none outside; height: 75px; width: 95%; max-width: var(--cornerstone-header-footer-container-width); margin-left: auto; margin-right: auto; }
.header_bar > li { display: inline-block; vertical-align: middle; width: 400px; }
.header_bar > li:last-child { width: calc(100% - 425px); }
.header_bar figure { float: none !important; }
.header_bar .menu { list-style: none outside; text-align: right; }
.header_bar .menu li { display: inline-block; vertical-align: middle; }
.header_bar .menu li.current-menu-item a { background: #ddd; }
.header_bar .menu li a { color: black; text-transform: uppercase; font-size: 1.1rem; padding: 1rem; }
.header_bar p:empty { display: none; }

footer { background: url(/wp-content/uploads/2026/08/denim.png) repeat; padding: 1rem 0; }
footer .footer_bar { list-style: none outside; width: 95%; max-width: var(--cornerstone-header-footer-container-width); margin-left: auto; margin-right: auto; }
footer h4, footer p, footer a { color: var(--cornerstone-footer-text); font-size: 0.8rem; padding-bottom: 0; }
footer a:hover { color: white; }

.boxed > .wp-block-column { border: 1px solid var(--cornerstone-main); padding: 1rem; align-self: stretch !important; }
.boxed ul { list-style: disc outside; padding-left: 2rem; padding-top: 0.5rem; }
.boxed ul li { padding-bottom: 0.5rem; }
.boxed ul li:last-child { padding-bottom: 0; }
.boxed p:first-of-type { padding-top: 0.5rem; }
.boxed p:last-child { padding-bottom: 0; }
.boxed p strong { font-family: 'DM Serif Text', 'Times New Roman', 'Times', serif; }

.glide_in > .wp-block-column { opacity: 0; transform: translateY(3rem); transition: opacity 0.5s, transform 0.5s; transition-delay: calc( var(--delay, 0) * 1000ms); }
.glide_in > .wp-block-column.in_view { opacity: 1; transform: translateY(0); }

.countup { opacity: 0; transition: 0.5s all; }

.dark_section { background: url(/wp-content/uploads/2026/08/denim.png) repeat;; color: var(--cornerstone-text-light); padding: 2rem 0; }

.cta_band { background: url(/wp-content/uploads/2026/08/tactile_noise.png) repeat; color: var(--cornerstone-text-light); font-size: 1.25rem; padding: 2rem 0; }
.cta_band a { margin-left: 2rem; }

.wp-block-cover .wp-block-columns { align-items: stretch !important; }
.wp-block-cover .wp-block-columns .wp-block-column { align-self: inherit; }
.wp-block-cover .wp-block-columns .wp-block-column:last-child { overflow: hidden; }
.wp-block-cover .wp-block-columns .wp-block-column .wp-block-image, .wp-block-cover .wp-block-columns .wp-block-column .wp-block-image img { height: 100%; width: 100%; }
.wp-block-cover .wp-block-columns .wp-block-column .wp-block-image img { object-fit: cover; display: block; }

.wp-block-cover .wp-block-columns .wp-block-column p:last-child { padding-bottom: 0; }

.wp-block-cover h2, .wp-block-cover p, .wp-block-cover .gfield_label, .wp-block-cover .gform-field-label { color: var(--cornerstone-text-light) !important; text-shadow: 5px 5px 9px rgba(0,0,0,0.7), 7px 7px 13px rgba(0,0,0,0.7), 0 0 5px rgba(0,0,0,0.7), 0 0 7px rgba(0,0,0,0.7), 0 0 9px rgba(0,0,0,0.7), -1px -1px 0 rgba(0,0,0,0.7), 1px -1px 0 rgba(0,0,0,0.7), 1px 1px 0 rgba(0,0,0,0.7), -1px 1px 0 rgba(0,0,0,0.7); }
.gfield_required { color: var(--cornerstone-text-light) !important; }
.wp-block-cover h2 strong { color: var(--cornerstone-main-light); }
.wp-block-cover .button_link { text-shadow: none; }

#gform_wrapper_2 { width: 95%; max-width: var(--cornerstone-form-container-width); margin: 3rem auto; }

.header_bar li:has(.mobile_menu_icon) { display: none; }

@media screen and ( max-width: 1340px ) {
	.header_bar .menu { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem 1rem; margin-right: -1rem; }
	.header_bar .menu li.button_link { order: -1; }
	.header_bar .menu:after { content: ""; flex-basis: 100%; order: -1; }
	.header_bar .menu li:not(.button_link) a { padding-right: 0; }
	.header_bar .menu li.button_link a { padding: 0.4rem 0.8rem; }
	.header_bar .menu li:not(.button_link) a { padding-right: 1rem; padding-bottom: 0.25rem; }
	.header_bar .menu li.current-menu-item a { background: transparent; border-bottom: 3px solid var(--cornerstone-main-light); }

}

@media screen and ( max-width: 1050px ) {
	.cta_band a { display: table; margin: 0.5rem auto 0; }
}

@media screen and ( max-width: 1024px ) {
	.wp-block-columns.fullwidth_at_1024 { flex-wrap: wrap !important; }
	.wp-block-columns.fullwidth_at_1024 > .wp-block-column { flex-basis: 100% !important; }
	.wp-block-columns.fullwidth_at_1024 > .wp-block-column:first-child { text-align: center; }
	.wp-block-columns.fullwidth_at_1024 > .wp-block-column:first-child .subheading { text-align: left; }
	#gform_wrapper_1 { width: 95%; max-width: var(--cornerstone-form-container-width); margin: 0 auto; }
}

@media screen and ( max-width: 900px ) {
	.boxed h3 { font-size: 2rem; }
	header { padding: 1rem 0; }
	/*.header_bar { height: auto; }*/
	.header_bar > li { width: 300px; }
	.header_bar > li:last-child { width: calc(100% - 325px); }
	.wp-block-columns.wrap_at_900 { display: grid; grid-template-columns: repeat(2, 1fr); }
	.wp-block-columns.wrap_at_900 > .wp-block-column:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.wp-block-columns.two_col_at_900 { flex-wrap: wrap !important; justify-content: space-between; }
	.wp-block-columns.two_col_at_900 > .wp-block-column { flex-basis: calc( 50% - 3.2rem ) !important; flex-grow: 0 !important; }
}

@media screen and ( max-width: 800px ) {
	html, body { overflow-x: hidden; }
	header { position: relative; padding-bottom: 1rem; }
	main { padding-top: 0; }
	.header_bar > li { width: 400px; }
	.header_bar li:has(.mobile_menu_icon) { display: inline-block; width: calc( 100% - 420px ); }
	.mobile_menu_icon p { padding-bottom: 0; }
	.mobile_menu_icon a { color: black; }
	.mobile_menu_icon .dashicons { width: 32px; height: 32px; font-size: 32px; }
	.header_bar .menu { display: block; position: absolute; top: 100px; right: -100%; z-index: 100; background: white; padding: 1rem; transition: 0.5s all; }
	.header_bar .menu li { display: block; padding: 0.5rem 1rem; border-bottom: 1px solid var(--cornerstone-button-hollow-border); }
	.header_bar .menu li.button_link { border-bottom: none; }
	.menu_visible .header_bar .menu { right: 0; }
	.menu_visible main { opacity: 0.3; pointer-events: none; }
	.footer_bar .wp-block-columns { display: block; }
	.footer_bar .wp-block-columns .wp-block-column > * { text-align: center; line-height: 1.6em; }
}

@media screen and ( max-width: 600px ) {
	header { position: fixed; padding-bottom: 0; }
	main { padding-top: calc( 75px + 1rem ); }
	.header_bar > li:first-child { width: 80%; }
	h2 { font-size: 1.75rem; }
	h3 { font-size: 1.5rem; }
	h4 { font-size: 1.25rem; }
	h5 { font-size: 1.1rem; }
	.button_link a { font-size: 0.9rem; }
	.wp-block-columns.wrap_at_900 > .wp-block-column { grid-column: 1 / -1; }
	.cta_band { padding: 2rem; }
}
