/* CSS3 Document */

#pageWrapper .mobileOnly, #header .nav .mobileOnly, #footer .mobileOnly {
	display: none;
}
#pageWrapper .hideFromMobile {
	display: block;
}

h1 {
	font-size: 2.25em;
	padding: .15em 0;
	line-height: 1.2;
}
body.home h1, .sectionName {
	font-size: 3em;
}
h2 {
	font-size: 1.75em;
}
h2+p, h3+p {
	margin-top: 0.56em;
}
h2+ul, h3+ul, h2+ol, h3+ol {
	margin-top: 0.6em;
}

/***
	Header and Main Navigation
***/

#headerWrapper.fixed {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
}
#headNav,
#footer {
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
}
#headNav {
	max-width: 980px;
}
#logoWrapper {
	margin-top: 0;
	background: url(../images/carlson-logo-bg.png) no-repeat 50% 0;
	height: 125px;
	padding: 22px 9px 0;
}
#logo {
	background: none;
	padding-top: 29px;
}
#headerWrapper.fixed #logo {
	padding-top: 0;
}
#logo img {
	opacity: 1;
}
@media screen and (min-resolution:144dpi),(-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5) {
	#logoWrapper {
		background-image: url(../images/carlson-logo-bg%402x.png);
		-webkit-background-size: 100% auto;
		-moz-background-size: 100% auto;
		background-size: 100% auto;
	}
}
#headNav .nav {
	text-align: center;
	padding: 12px 0 1px;
	display: table;
	width: 100%;
}
#headNav .nav, #headNav .nav a, #header #logo {
	-moz-transition: padding .5s;
	-webkit-transition: padding .5s;
	transition: padding .5s;
}

#headerWrapper.fixed #headNav .nav {padding-top:3px}
.nav li,
#headNav .nav li {
	display: inline;
	display: -moz-inline-stack;
	display: inline-block;
}
#headNav .nav li {
	display: table-cell;
}
#headNav .nav li.projects {
	padding-right: 103px;
}
#headNav .nav li.scheduling {
	padding-left: 102px;
}
#headNav .nav a {
	padding: 46px 1.2em;
	margin: 0 .269em;
}
head~/**/body #headNav .nav a {
	padding: 46px .5em;
	display: block;
}
#headerWrapper.fixed #headNav .nav a {
	padding: 15px .5em;
}

#headNav .nav a:hover,
#headNav .nav a:focus,
#headNav .nav a:active {
	color: #e1524b;
	text-decoration: none;
}

@media screen and (min-width:600px) and (max-width:920px) {
	#header {padding-top: 80px}
	#logoWrapper {margin-top: -80px}
	#headNav {
		margin-top: 49px;
		background: #1e191a;
		float: left;
		width: 100%;
	}
	#headNav .nav {
		padding: 0;
	}
	#headNav .nav li.projects,
	#headNav .nav li.scheduling {
		padding: 0;
	}
	head~/**/body #headNav .nav a,
	head~/**/body #headNav .nav .about a {
		padding: .75em;
		margin: 0 .269em;
		display: block;
	}
}

#footer .signInForm, #footer .clientMenuWrap {
	width: auto;
	max-width: 980px;
	position: absolute;
	margin: 0 auto;
	padding: 0;
	z-index: 999;
	font-size: .7778em;
	text-align: left;
}
#footer .signInForm.fixedPos, #footer .clientMenuWrap.fixedPos {
	position: fixed;
	top: 129px;
	left: 0;
	right: 0;
}
#footerWrapper.menuOpen {
	z-index: 99;
}
#header .signInForm, #header .clientMenuWrap {
	width: auto;
	max-width: 980px;
	margin: 0 auto;
	font-size: .875em;
	text-align: left;
}
#header .signInForm form, #header .clientMenu,
.signInForm.fixedPos form, .clientMenu.fixedPos {
	position: absolute;
	width: 261px;
	right: 0;
	padding: 0 20px 6px;
	z-index: 399;
	margin-top: 3px;
}
body.home #header .signInForm form, body.home #header .clientMenu,
#headerWrapper.fixed .signInForm form, #headerWrapper.fixed .clientMenu {
	margin-top: 0;
}
#header .signInForm form:after, #header .clientMenu:after,
.signInForm.fixedPos form:after, .clientMenu.fixedPos:after {
	content: '';
	position: absolute;
	top: 100%;
	left: 0;
	border: solid transparent;
	border-bottom: none;
	border-width: 30px 151px 0 152px;
	border-top: 30px solid #4a1519;
}
#header .clientMenu {
	padding: 0;
}
.signInForm input[type=text],
.signInForm input[type=email] {
	width: 259px;
}
#headNav .signInForm a,
#headNav .clientMenu a {
	padding: 0;
	margin: 0;
	text-transform: none;
	font-weight: 400;
}
head~/**/body #headNav .signInForm a,
head~/**/body #headNav .clientMenu a {
	padding: 0;
	display: inline;
}

@media screen and (max-width:920px) {
	#header .signInForm form, #header .clientMenu,
	#footer .signInForm form, #footer .clientMenu {
		width: 261px;
	}
	#footer .signInForm form, #footer .clientMenu {
		bottom: 0;
	}
}


/***
	General Content
***/

#headerWrapper.fixed+#mainContent {
	padding-top: 58px;
}

#headerWrapper:after,
.contentWrap:after,
.home .section.services:after {
	content: '.';
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}

.contentWrap .section {
	max-width: 1200px;
	margin: 0 auto;
}
.contentWrap.heroPhoto .section {
	max-width: none;
}

.contentWrap.twoCols,
.contentWrap.threeCols {
	max-width: 940px;
	margin: 0 auto;
	padding: 0 20px;
}
.contentWrap .col {
	clear: none;
}
.twoCols .col {
	float: right;
	width: 700px;
	margin: 0 0 30px;
}
.twoCols .col.last {
	float: left;
	width: 220px;
}
.threeCols .col {
	width: 31.9%;
	float: left;
}
.threeCols .doubleCol {
	width: 66%;
}
.threeCols .col.last {
	float: right;
}

.contentWrap .col .sectionNav {
	margin-left: 0;
	margin-right: 0;
}
@media all and (max-width:820px) {
	.twoCols .col, .twoCols .col.last {float:none}
	.contentWrap .col .sectionNav {margin-left:20px;margin-right:20px}
}

.breadcrumbs p {
	visibility: visible;
}

/***
	Home Page
***/

.home .section {
	max-width: 940px;
}
.section.intro p {
	margin: 0 auto 1em;
}
.section.intro p:nth-of-type(n) {
	width: 50%;
	padding: 0 0 0 15px;
	margin: 0 0 1em auto;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
.section.intro p:only-of-type {
	width: auto;
	padding: 0;
}
.section.intro p:nth-of-type(-n+2):nth-last-of-type(n+2),
.section.intro p:nth-of-type(-n+3):nth-last-of-type(n+3),
.section.intro p:nth-of-type(-n+4):nth-last-of-type(n+4),
.section.intro p:nth-of-type(-n+5):nth-last-of-type(n+5),
.section.intro p:nth-of-type(-n+6):nth-last-of-type(n+6) {
	float: left;
	padding: 0 15px 0 0;
	clear: left;
}


.heroPhotoInner img {
	margin: -160px 0 0 -600px;
	left: 50%;
	max-width: none;
	width: auto;
}
.heroPhoto .caption {
	width: 100%;
	max-width: 812px;
	margin: 0 auto;
	right: 0;
	font-size: 4.375em;
}

.heroPhoto .caption p {
	/*padding: 30px 10px;*/
}

.home .contentWrap.intro {
	background: none;
}
.home .contentWrap.accreditation {
	padding: 0 20px 38px;
	background: url(../images/ruler_ticks2_bg.png) repeat-x 0 100%;
}

html > .home ul.services, #hideFrom#IE8 {
	padding-left: 1.661em;
}

.section.accreditation {
	max-width: 908px;
	margin: 38px auto 0;
	border: 2px solid #fff;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
}
.section.accreditation h2 {
	font-size: 2.25em;
	margin: .278em 0 .223em;
}
ul.accreditation a {
	opacity: .4;
	-moz-transition: opacity .5s;
	-webkit-transition: opacity .5s;
	transition: opacity .5s;
}
ul.accreditation a:hover,
ul.accreditation a:focus,
ul.accreditation a:active {
	opacity: 1;
}

.home .section.services {
	padding-left: 475px;
	max-width: 465px;
}

.section.services h2 {
	padding-top: 1.14em;
}

.home .gallery {
	width: 380px;
	margin: 0 20px 5px -475px;
	float: left;
	display: inline;
	left: -5px;
	padding: 7px 40px 8px;
}

.home .galleryInner:before {
	width: 380px;
	height: 243px;
	padding-top: 0;
	position: absolute;
	top: 7px;
	left: 40px;
}
.home .galleryInner:after {
	content: '';
	width: 460px;
	height: 258px;
	position: absolute;
	top: 0;
	left: 0;
	background: url(../images/slideshow_brackets.png) no-repeat 50%;
	z-index: 49;
	pointer-events: none;
}

body.home .gallery .prev,
body.home .gallery .next {
	display: block;
	left: 2px;
	top: 99px;
	margin-top: 0;
	padding: 15px 3px 15px 22px;
	background: none;
}
body.home .gallery .next {
	left: auto;
	right: 2px;
	padding: 15px 22px 15px 3px;
}
.home .gallery .arrow:before {
	top: 15px;
}
.home .gallery .arrow:after {
	top: 12px;
}

@media screen and (max-width:940px) {
	.home .galleryInner:after, .home .gallery .prev, .home .gallery .next {
		display: none;
	}
}


.home .section.newsletter {
	float: right;
	width: 302px;
	-webkit-box-shadow: 0 10px 10px rgba(0,0,0,.25);
	-moz-box-shadow: 0 10px 10px rgba(0,0,0,.25);
	box-shadow: 0 10px 10px rgba(0,0,0,.25);
	z-index: 99;
	margin: 0 0 0 10px;
}
@media screen and (min-width:720px) {
	.home .section.newsletter {
		-webkit-transform-origin: top;
		-moz-transform-origin: top;
		-ms-transform-origin: top;
		-o-transform-origin: top;
		transform-origin: top;
		-webkit-transform: rotate(5deg) translateY(5px) translateZ(0);
		-moz-transform: rotate(5deg) translateY(5px);
		-ms-transform: rotate(5deg) translateY(5px);
		-o-transform: rotate(5deg) translateY(5px);
		transform: rotate(5deg) translateY(5px) translateZ(0);
		/* translateZ(0) helps text rendering in some browsers that support it */
		-webkit-backface-visibility: hidden;
		-moz-backface-visibility: hidden;
		backface-visibility: hidden;
		margin: 0 0 0 34px;
	}
	.home .section.newsletter .sectionBg {
		border: 2px solid #ddddd3;
	}
	.section.newsletter > .sectionBg:before {
		right: -2px;
		bottom: -2px;
	}
	.section.newsletter > .sectionBg:after {
		left: -2px;
		top: -2px;
	}
}
.home .section.newsletter form {
	position: relative;
	-moz-transform: translateZ(0);
}

.home .contentWrap.locations {
	background: url(../images/sheet_metal_bg.jpg) 50% 0;
	clear: none;
}
.home .contentWrap.newsletter {
	max-width: 960px;
	margin: 0 auto;
}
.home .contentWrap.newsletter:after {
	clear: none;
	display: none;
}

.home .section.locations {
	max-width: 620px;
	min-height: 371px;
	padding-right: 340px;
	background: none;
}
.home .section.locations h2 {
	margin-top: 1.1em;
}
.home .locations .map {
	margin: 0;
}
.home .locations .map img {
	width: 390px;
	height: 244px;
	float: left;
	margin: 0 7px 10px -8px;
	position: relative;
}

@media screen and (max-width:960px) {
	.home .locations .map img {
		width: 312px;
		height: 195px;
	}
}
@media screen and (max-width:820px) {
	.home .locations .map img {float:none}
}
@media screen and (max-width:720px) {
	.home .section.newsletter {
		float: none;
		width: auto;
		margin: 0;
	}
	.home .section.locations {
		min-height: 300px;
		max-width: none;
	}
}


/***
	About Section Pages
***/

.about .subSection p.photo {
	float: left;
}


/***
	Projects Page
***/

body.projects .section {
	max-width: 960px;
	padding-right: 0;
}
body.projects .subSection {
	width: 50%;
	padding-right: 20px;
	display: inline-table;
	display: inline-block;
	vertical-align: top;
	border-top: 0 none;
}
.projects .subSection:before {
	right: 20px;
	width: auto;
	left: 0;
	border-top: 1px solid #cecec6;
	border-bottom: 1px solid #efefea;
}
.projects .subSection:first-of-type,
.projects .subSection:first-of-type+.subSection {
	border-top: 0 none;
	padding-top: 0;
}
.projects .subSection:first-of-type:before,
.projects .subSection:first-of-type+.subSection:before {
	display: none;
}
@media (width) {
	.projects .subSection p.photo img {position: static}
}


body.projects.detail .section {
	padding-left: 0;
}


/***
	Scheduling Page
***/

.scheduling .contentWrap.threeCols {
	padding: 0 20px;
}
.scheduling .threeCols .section {
	padding: 11px 0;
}
.scheduling .subSection {
	border-top: 0 none;
}
.scheduling .subSection h2 {
	margin-top: 0;
}
.scheduling .subSection.concrete,
.scheduling .subSection.steel {
	float: left;
	border-right: 1px solid #d5d5d5;
	margin-right: -1px;
	width: 47.6%;
	clear: both;
	padding: 0 0 1em;
}
.scheduling .subSection.compaction,
.scheduling .subSection.spec-test {
	float: right;
	border-left: 1px solid #d5d5d5;
	margin-left: -1px;
	width: 52.4%;
	position: relative;
	left: -1px;
	padding: 0 0 1em 1.5em;
}
.scheduling .subSection.steel,
.scheduling .subSection.spec-test {
	border-top: 1px solid #d5d5d5;
	padding-top: 1em;
	padding-bottom: 0;
	margin-bottom: 1em;
}

.scheduling .col.last h2 {
	margin-top: 1.07em;
}


/***
	Client Area
***/

body.client table.projects th:last-child,
body.client table.projects td:last-child {
	display: table-cell;
	text-align: center;
}


/***
	Contact Page
***/
.contact .twoCols .col,
.careers .twoCols .col,
.page-template-page-careers-php .twoCols .col {
	float: right;
	width: 60%;
	padding: 0;
	margin: 0;
}
.contact .twoCols .col.last,
.careers .twoCols .col.last,
.page-template-page-careers-php .twoCols .col.last {
	float: left;
	width: 35%;
	padding: 0;
	margin: 0;
}
body.page-template-page-careers-php .contentWrap.twoCols .col:only-child {
    width: 100% !important;
    float: none !important;
}
body.page-template-page-careers-php .col.last h2 {
	color: #e1524b;
	font-size: 2.25em;
    margin: 0;
}
.contact .contentWrap .section,
.careers .contentWrap .section {
	padding: 11px 0 2px;
}

.contact .contentWrap .locations h2 {
	margin-top: .33em;
}

.contact .contentWrap form h3,
.careers .contentWrap form h3 {
	margin: .107em 0 .214em;
}

.contentWrap form .label {
	display: inline-block;
	width: 8.75em;
	padding-right: .625em;
	text-align: right;
}
body.contact .contentWrap form .field,
body.careers .contentWrap form .field {
	padding-left: 5.945em;
}
body.careers form .field.file {
	margin-left: 5.945em;
	padding-left: 0;
}
body.contact form .label,
body.careers form .label {
	width: 5em;
	margin-left: -5.945em;
}

.contentWrap form .buttons .button {
	width: 10.44em;
}

body.contact .contentWrap input[type=text],
body.contact .contentWrap input[type=email],
body.contact .contentWrap input[type=tel],
body.contact form textarea,
body.careers .contentWrap input[type=text],
body.careers .contentWrap input[type=email],
body.careers .contentWrap input[type=tel],
body.careers form textarea {
	width: 99%;
}

body.contact form textarea,
body.careers form textarea {
	vertical-align: top;
	overflow-y: auto;
}
body.contact form label[for=message],
body.careers form label[for^=message] {
	position: relative;
	top: .5em;
}
body.contact form span.error,
body.careers form span.error {
	text-align: left;
}
body.contact .contentWrap form .buttons,
body.careers .contentWrap form .buttons {
	padding-left: 5.945em;
	text-align: left;
}


.contact p.map {
	padding-top: 70px;
	min-height: 4.3em;
}
.contact .contentWrap .tagline {
	margin-top: -2.77em;
}


/***
	Careers Page
***/

.fileInputWrap {
	overflow: hidden;
	position: relative;
	display: inline-block;
	max-width: 100%;
	background: #e5e5dc;
	width: 54%;
	vertical-align: top;
}
.fileInputWrap input,
.fileInputWrap input.error {
	cursor: inherit;
	display: block;
	font-size: 999px;
	min-height: 100%;
	min-width: 100%;
	opacity: .01;
	color: transparent;
	border: transparent;
	position: absolute;
	right: -16px;
	top: -16px;
	z-index: 8;
}
.fileInputWrap .button {
	display: block;
	text-transform: uppercase;
	font-size: 1.125em;
	margin-top: 3px;
}
.attachedFile {
	display: -moz-inline-box;
	display: inline-block;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
	border: 2px solid #fff;
	background: #e7e7e1;
	font-size: .875em;
	line-height: 1.25;
	padding: .857em;
	width: 40%;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	margin-left: 4.8%;
}
.attachedFile .fileName {
	display: block;
	font-size: .857em;
	word-wrap: break-word;
}

/***
	Useful Links Page
***/

body.links .contentWrap.threeCols .section {
	padding: 11px 0;
}


body.login .contentWrap form .buttons .button {width:auto}


/***
	Footer
***/

#footerWrapper {
	background: #1d1e17 url(../images/footer_bg.jpg) repeat-x 50% 0;
	padding-bottom: 110px;
	min-height: 157px;
}
.home .contentWrap:last-of-type:before,
.home .contentWrap:last-of-type:after,
#footerWrapper:before {
	content: '';
	position: absolute;
	left: 0;
	top: -6px;
	width: 100%;
	height: 22px;
	background: url(../images/section_weld_bg.png) repeat-x 50% 0;
	z-index: 95;
}
.home .contentWrap:last-of-type:after {
	top: auto;
	bottom: -16px;
	visibility: visible;
}
body.home #footerWrapper:before {display: none}

#footer .nav {
	font-size: 1.125em;
	text-shadow: 0 0 4px #000;
	text-align: center;
	padding-top: .89em;
	margin: 0;
}
#footer .nav li {
	border: 0 none;
}
#footer .nav a {
	padding: 1.083em;
}

#footer p {
	opacity: .6;
	margin: 0 0 .35em;
}

@media screen and (min-width:600px) and (max-width:770px) {
	#footer {
		padding: 0 20px;
	}
	#footer .nav li {
		width: 33%;
	}
	#footer .nav a {
		width: 100%;
		-webkit-box-sizing: border-box;
		-moz-box-sizing: border-box;
		box-sizing: border-box;
	}
}

/***
	Fixes for IE8 and older
***/

* html #pageWrapper, * html .contentWrap {width:1000px;margin:0 auto}
* html #headerWrapper, * html #footerWrapper, * html #mainContent,
* html .heroPhoto, * html .home .gallery .slideshow, * html .home .galleryInner {height:1px}
* html .heroPhoto img {width:100%}
* html #footer .nav a {display:inline-block}
* html .home .gallery, * html .home .gallery .slideshow img {width:380px}
* html .services .services {padding-left:0;width:auto;height:1px}

*~html .home .contentWrap.newsletter {z-index:98}
*~html .home .section.newsletter {margin-bottom:-330px}
*~html .section.newsletter h2 {height:auto;min-height:46px}

*~html #headNav .nav li, *~html #footer .nav li, *~html #pageWrapper .vShim,
*~html ul.accreditation li, *~html .twoCols .col,
*~html .fileInputWrap,*~html .attachedFile {display:inline}

* html #headNav .nav li, * html #footer .nav li, * html #pageWrapper .vShim,
* html ul.accreditation li, * html .twoCols .col,
* html .fileInputWrap,* html .attachedFile {display:inline}

#message {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
}
#inner-message {
    margin: 0 auto;
}
.page-template-page-careers-php .twoCols:first-of-type .col {
    float: right;
    width: 60%;
}

.page-template-page-careers-php .twoCols:first-of-type .col.last {
    float: left;
    width: 40%;
}
/* Career page - FORCE column widths */
body.page-template-page-careers-php #mainContent .contentWrap.twoCols:first-of-type .col {
    float: right !important;
    width: 60% !important;
}

body.page-template-page-careers-php #mainContent .contentWrap.twoCols:first-of-type .col.last {
    float: left !important;
    width: 40% !important;
}

/***
	Project Detail Page - Gallery
***/

body.projects.detail .gallery {
	position: relative;
}
body.projects.detail .gallery:after {
	content: '';
	width: 620px;
	height: 310px;
	position: absolute;
	top: 0;
	left: 0;
	background: url(../images/slideshow_brackets2.png) no-repeat 0 0;
	background-size: 620px 310px;
	z-index: 49;
	pointer-events: none;
}
body.projects.detail .swiper-slide img {
	display: block;
	width: 610px;
	height: 300px;
}
@media screen and (max-width:940px) {
	body.projects.detail .gallery:after {
		display: none;
	}
}


/***
	Navigation Menu Spacing
	Migrated from WordPress Customizer - do not re-add to Customizer
***/

#headNav ul.nav {
	display: flex;
	justify-content: flex-start;
	gap: 30px;
}
#headNav ul.nav > li.menu-spacer-left {
	flex: 0 0 100px;
	width: 150px;
}
#headNav ul.nav > li.menu-spacer-right {
	flex: 0 0 215px;
	width: 140px;
}
#headNav ul.nav > li.menu-spacer-left > a,
#headNav ul.nav > li.menu-spacer-right > a {
	display: block;
	width: 100%;
	height: 1px;
	overflow: hidden;
	pointer-events: none;
}


/***
	Links Page
	Migrated from WordPress Customizer - do not re-add to Customizer
***/

.page-template-page-links .section h2 {
	color: #e1524b;
	font-size: 36px;
	font-weight: 700;
	font-family: inherit;
}
.page-template-page-links .section p {
	font-style: italic;
	color: #444;
}
.page-template-page-links .section ul li a {
	color: darkred;
}
.page-template-page-links .section ul li a:hover {
	text-decoration: underline;
}


/***
	General Content Overrides
	Migrated from WordPress Customizer - do not re-add to Customizer
***/

.contentWrap .section h3 {
	text-align: center;
}
.sectionName {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0.5em !important;
}
