/* CSS Document */


option{color: black;font-size: 0.8em;}
option[disabled]{display: none;}
select:invalid{color: rgb(200,200,200); font-size: 0.7em; padding: 0 0 0 3px; height: 2.2em;}


/* ------------------------------ SITE FOOTER -------------------------- */

.footer{
	text-align: center;
	padding: 2em 1em;
	background-color: white;
	position: relative;
	z-index: 2;
}
.footer img{
	max-width: 100%;
}
.footer .phone{
	color: rgba(74,81,98,1.00);
	font-size: clamp(2.2em, 9vw, 2.75em);
	font-weight: 700;
	padding: 0 0 0.2em 0;
}
.footer .phone img{
	height: 0.8em;
	vertical-align: baseline;
	filter: grayscale(100%) brightness(75%);
}
.footer .address{
	font-size: clamp(1.4em, 7vw, 2em);
	color: rgba(77,81,88,1.00);
	padding: 1em;
}

.subfooter{
	background-color: rgba(113,21,58,1.00);
	background-color: rgba(30,30,50,1);
	color: white;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 75%;
	padding: 1em;
	flex-wrap: wrap;
	border-bottom: 20px solid rgba(74,81,98,1.00);
	position: relative;
	z-index: 2;
}
.subfooter a{
	color: white;
	font-weight: 500;
	text-decoration: underline;
}
.subfooter > div:nth-of-type(2n + 1){
	flex: 1 1 100px;
	text-align: right;
}
.subfooter > div:nth-of-type(2){
	flex: 8 1 800px;
	text-align: center;
	padding: 1em;
}
.subfooter img{filter: brightness(1000%)}
.subfooter-links{margin-top: 0.5em;}

.parallax-overlay {
	color: white;
	width: 100%;
	text-align: center;
	font-size: 5em;
	font-weight: bold;
	filter: drop-shadow(0 0 0.25em black);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* ---------------- UNIVERSAL STYLES ------------------- */

.background{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: bottom center;
	z-index: -1;
}
.csc-generic-page{
	width: 100%;
	padding: 6em clamp(1em, calc(100% - 1700px), 6em);
	text-align: center;
	position: relative;
	background-color: white;
	position: relative;
	z-index: 1;
}
div[class*="hero"]{
	position: relative;
	z-index: 1;
}

.h3{
	color: white;
	font-size: 1.8em;
	font-weight: 600;
}

.icon{
	font-family: 'Material icons';
	font-size: 1.4em;
	vertical-align: middle;
	text-transform: lowercase;
	background-color: inherit;
	color: inherit;
}

.animated-headline{
	opacity: 0;
	white-space: normal;
   text-shadow: 0 0 0.1em black, 0 0 0.15em black;	
}
.animate{
	display: inline-block;
	opacity: 0;
	animation: resolve;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
	position: relative;
	}
.word{
	display: inline-block;
	margin: 0 0.25em;
	white-space: nowrap;
}
@keyframes resolve{
	0%{opacity: 0;}
	100%{opacity: 1; transform: scale(1,1) translateY(0);}
}

.bkgrd{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url('../images/writing.webp');
	background-size: cover;
}
.frgrd{
	position: relative;
}

.contact-hero,
.team-hero,
.about-hero,
.services-hero,
.portfolio-hero{
	aspect-ratio: 3 / 1;
}


/* -------------------- HOME PAGE ---------------------------- */


.construction-expertise{
	width: 100%;
	padding: 4em clamp(1em, calc(100% - 1700px), 6em);
	text-align: center;
	position: relative;
	background-color: white;
}

.expertise-cards{
	width: 100%;
	max-width: 1720px;
	margin: auto;
	display: flex;
	justify-content: space-between;
	align-content: stretch;
	gap: 2em;
	flex-wrap: wrap;
}
.expert-card{
	flex: 1 1 350px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: stretch;
}
.expert-card  .icon-message{
	background-color: rgba(76,81,99,1.00);
	color: white;
	padding: 2em;
	flex: 1 1 auto;
}
.expert-card .icon-message img{
	margin-bottom: 1.5em;
}
.expert-card .icon-message p{
	text-align: left;
	font-weight: 500;
	line-height: 1.5em;
	margin: 1.5em auto 0 auto;
}
.expert-card .number{
	font-size: 4.5em;
	font-weight: 700;
	margin-top: 0.8em;
	opacity: 0;
	transition: opacity 0.5s;
	font-variant: tabular-nums lining-nums;
}
.expert-card .number.visible{
	opacity: 1;
}
.expert-card .subnumber{
	font-size: 1.625em;
	font-weight: 600;
}

.challenges{
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	background-color: white;
}
.challenges a{
	display: inline-block;
	margin-top: 3em;
	font-size: min(5vw, 1.4em);
	font-weight: 600;
	text-transform: uppercase;
	line-height: 1em;
	border-bottom: 3px solid rgba(91,202,244,1.00);
	color:  rgba(11,126,168,1.00);
	background-color: white;
}
.challenges > div{
	flex: 1 1 500px;
	position: relative;
}

.challenges h1{
	text-align: center;
}
.challenges-image img{
	height: 120%;
	width: 100%;
	object-fit: cover;
	object-position: center;
}
.challenges-text{
	padding: 4em clamp(1em, calc(100% - 1700px), 6em);
}

.pre-footer {
	background-color: rgba(255,255,255,1.00); 
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	flex-wrap: wrap;
	border: 5px solid rgba(113,21,58,1.00);
	border-width: 5px 0;
	color: rgba(113,21,58,1.00);
}
.pre-footer .h3 {
	color: rgba(113,21,58,1.00);
}
.pre-footer > div {
	flex: 1 1 400px;
	text-align: center;
}
.pre-footer .sponsor {
}
.committed {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-content: center;
	gap: 0.5em;
	padding: 1em;
	font-size: 2em;
	color: white;
	line-height: 1em;
	background-color: rgba(113,21,58,1.00);
}
.committed img {
	width: 100%;
	max-width: 15em;
}
.sponsor-container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding-top: 1em;
}
.sponsors {
	margin: 1em 0;
	display: flex;
	justify-content: center;
	align-items: stretch;
	gap: 0 2em;
	flex-wrap: wrap;
	padding: 0 2em;
	width: 100%;
	max-width: 700px;
}
.sponsors a {
	display: block;
	flex: 0 1 125px;
}
.sponsors img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: contain;
	object-position: center;
}
.relationships2 {
	text-align: center;
	padding: 2em;
}



.office-interior{
	width: 100%;
	padding-bottom: 36.84%;
}
.office-interior img{
	width: 100%;
	height: 125%;
	object-fit: cover;
	object-position: center;
}


.services{
	width: 100%;
	padding: 6em clamp(1em, calc(100% - 1700px), 6em);
	text-align: center;
	position: relative;
	background-color: rgba(230,231,232,1.00);
}
.services-container{
	width: 100%;
	max-width: 1700px;
	margin: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1em;
	margin-top: 3em;
	flex-wrap: wrap;
}
.services-container figure{
	display: table;
	margin: 0 auto;
}
.services-container img{
	width: 100%;
	height: auto;
}
.services-container figcaption{
	display: table-caption;
	caption-side: bottom;
	font-size: 1.4em;
	font-weight: 600;
	text-align: center;
	color: rgba(76,81,99,1.00);
	padding: 1em;
}


.middlers {
	text-align: center;
	background-color: white;
	background-image: linear-gradient(180deg, rgba(24,134,187,0.20), rgba(240,240,240,1));
	padding: 4em;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2em;
	flex-wrap: wrap;
	
	div {
		flex: 0 1 500px;
	}
	div > img {
		max-width: 100%;
	}
	.section-title {
		font-size: 1.6em;
		margin-bottom: 2em;
		border-bottom: 2px solid rgba(0,0,0,0.5);
		padding-bottom: 0px;
		display: inline-block;
		margin: 0 auto 2em auto;
	}
	.heading {
		font-size: 3em;
		color: rgba(113,21,58,1.00)l;
		font-weight: 700;
	}
	.advisory {
		color: rgba(150,0,0,1.00);
		font-size: 2.5em;
		font-weight: 900;
		padding: 0.5em;
		background-color: white;
		border: 5px solid rgba(150,0,0,1.00);
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%) rotate(15deg);
		transform-origin: center;
		border-radius: 9px;
		filter: drop-shadow(0 0 50px rgba(0,0,0,0.5));
	}
	.subheading {
		font-size: 2.5em;
		color: rgba(76,81,99,1.00);
		font-weight: 700;
	}
	.body {
		padding-top: 2em;
		line-height: 1.4em;
		width: 100%;
		max-width: 60em;
		margin: 0 auto 2em auto;
		text-align: justify;
	}
	.time-host {
		font-size: 1.6em;
		font-weight: bold;
	}
	.link{
		background-color: rgba(24, 134, 187, 1.00);
    	color: white;
    	text-decoration: none;
    	padding: 5px;
    	border-radius: 3px;
    	display: inline-block;
    	width: 15em;
		font-weight: bold;
		margin-top: 2em;
	}
}


.specialty-groups{
	
	background-color: white;
	background-image: linear-gradient(180deg, rgba(24,134,187,0.20), rgba(240,240,240,1));
	padding: 4em;
	position: relative;
	
	& h1 {
		text-align: center;
	}
	
	& .groups-container {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 2em 4em;
		flex-wrap: wrap;
		display: flex;
		align-items: stretch;
		justify-content: center;
		
		& figure {
			flex: 0 1 350px;
			display: flex;
			flex-direction: column;
			align-content: center;
			justify-content: space-between;
			margin: 0;
		}
		& img {
			width: 100%;
			aspect-ratio: 1;
			object-fit: contain;
			object-position: center;
			background-color: white;
			padding: 1em;
			filter: drop-shadow(0 0 4em rgba(0,0,0,0.2));
		}
		& figcaption {
			padding: 1em 0 ;
			text-align: justify;
			font-weight: 600;
			
			& a {
				display: block;
				width: fit-content;
				margin: 1em auto;
				text-decoration: none;
				font-weight: 900;
			}
		}
		
	}

}
/* ---------------------- CONTACT PAGE -------------------------------- */

.contact-container{
/*
	background-color: rgba(74,81,98,1.00);
	color: white;
	background-color: white;
	filter: drop-shadow(0 0 3em rgba(0,0,0,0.3));
	padding: 1em 2em 0 2em;
	border-radius: 0.5em;
	width: 1400px;
*/
	max-width: 100%;
	margin: 0 auto;
	font-size: 1em;
	line-height: 1.6em;
}
.BGM-contact-form textarea{
	margin-bottom: 0;
}
.BGM-contact-form > div > div {
	margin: 0;
}
.map-window{
	width: 100%;
	height: 100vh;
	pointer-events: none;
}

.map-container{
	position: fixed;
	padding-top: calc(80px + 1em + 10px);
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	z-index: 1;
	opacity: 0;
	background-color: white;
	background-image: linear-gradient(0deg, rgba(91,202,244,0.3), white);
}


/* -------------------- ANTHOLOGY PAGE ------------------------------- */

.anthology-container {
/*
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: 2em;
	flex-wrap: wrap;
*/
	text-align: left;
}
.anthology-container > img {
	margin:  0 auto 1em auto;
	display: block;
}

.volume-container {
	background-image: linear-gradient(0deg, rgba(255,255,255, 1) 60%, rgba(255,255,255,0.4));
	text-align: left;
	margin: 2em 0;
}
.volume-container a,
.action-button{
	background-color: rgba(24,134,187,1.00);
	color: white;
	text-decoration: none;
	padding: 5px 1em;
	border-radius: 3px;
	display: inline-block;
	min-width: 10em;
	white-space: nowrap;
}
.volume-container h3{
	margin: 0 0 1em 0;
	text-align: center;
	background-color: transparent;
	border-bottom: 2px solid rgba(113,21,58,1.00);
	padding: 0;
	color: rgba(112,22,59,1.00);
	text-align: left;
}
.volume-container .submissions {
	display: block;
}
.volume-container .submissions ul{
	padding-left: 1.5em;
}
.volume-1-container,
.volume-2-container {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 1em;
	flex-wrap: wrap;
	padding: 1em;
}
.volume-1-container > div,
.volume-2-container > div {
	flex: 1 1 0;
}
.volume-1-container > div:nth-of-type(1){
	order: 2;
	display: flex;
	align-items: center;
	justify-content: center;
}
.volume-2-container > div:nth-of-type(1){
	display: flex;
	align-items: center;
	justify-content: center;
}
.volume-1-container img,
.volume-2-container img{
	width: 600px;
	height: auto;
	max-height: 100%;
	max-width: 100%;
}


.section-reviews{
	width: 100%;
   padding: 4em clamp(1em, calc(100% - 1700px), 6em);
   text-align: center;
   position: relative;	
	background-color: white;
	background-image: linear-gradient(180deg, rgba(24,134,187,0.40), rgba(240,240,240,1));
}
.reviews-container{
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 2em;
	flex-wrap: wrap;
	margin: 2em 0;
}
.review-container {
	flex: 1 1 450px;
	background-color: white;
	padding: 2em;
	border-radius: 5px;
	line-height: 1.8em;
	text-align: left;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.review {
	font-style: italic;
	font-size: 110%;
	margin-bottom: 1em;
}
.review::before {
	content: '\0201C';
	font-size: 275%;
	font-weight: bold;
	font-family: 'Times New Roman';
	line-height: 0em;
	position: relative;
	top: 0.3em;
	color: rgba(113,21,58,1.00);
}
.review::after {
	content: '\0201D';
	font-size: 275%;
	font-weight: bold;
	font-family: 'Times New Roman';
	line-height: 0em;
	position: relative;
	top: 0.4em;
	color: rgba(113,21,58,1.00);
}
.attribution{
	font-weight: bold;
	text-align: center;
	line-height: 130%;
}

/* --------------------- MEMBERS PAGE --------------------------------- */

.members{
	width: 100%;
	display: grid;
	grid-template-columns: repeat(4, auto);
}
.members > div {
	display: contents;
	padding: 55px;
}
.members > div:nth-of-type(odd) > div{
	background-color: rgba(255, 255, 255, 0.1);
}
.members > div:first-of-type > div {
	background-color: rgba(36,40,47,1.00);
	color: rgba(255,255,255,1.00);
	font-weight: bold;
}
.members > div > div{
	padding: 5px;
	border-bottom: 1px solid rgba(255,255,255,0.3);
}

.members-container {
	width: 100%;
	max-width: 1500px;
	margin: 0 auto;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 3em;
	flex-wrap: wrap;
}
.member-container {
	flex: 1 1 0;
	display: grid;
	grid-template-rows: 1fr;
	grid-template-columns: auto 1fr;
	gap: 1em;
	background-color: rgba(24,134,187,1.00);
	padding: 1em;
	margin: 0;
	position: relative;
}
/*
.member-container:before{
	content: '';
	width: 60px;
	height: 75px;
	background-image: url('../images/logo-icon.svg');
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0.2;
	position: absolute;
	right: 2em;
	bottom: 1em;
}
*/
.member-container img{
	grid-row: 1;
	grid-column: 1;
	width: 300px;
	border-radius: 100%;
	aspect-ratio: 1;
}
.member-container figcaption {
	grid-row: 1;
	grid-column: 2;
	background-color: white;
	padding: 1em;
	text-align: left;
	min-height: 200px;
}
.member-container .fullname {
	font-size: 2.2em;
	font-weight: 600;
	white-space: nowrap;
	text-align: center;
}
.member-container .skills{
	font-weight: 600;
	font-size: 1.2em;
	text-align: center;
}
.member-container hr{
	margin: 0.5em 0 1em 0;
}
.member-container .weblink{
	display: block;
	margin: 0;
}

.sorter {
	display: inline-block;
}

@media screen and (max-width: 600px) {
	.members {
			grid-template-columns: 1fr;
	}
	.members > div:first-of-type {
		display: none;
	}
	.members > div {
		display: block;
		padding: 10px 0;
	}
	.members > div:nth-of-type(even) {
		background-color: rgba(255,255,255,0.2);
	}
	.members > div:nth-of-type(odd) > div{
		background-color: transparent;
	}
	.members > div > div{
		padding: 0 5px;
		border-bottom: none;
	}
}


/* ---------------------- BGM CMS OVERRIDES ---------------------------- */

.BGM-parallax2-container{
	min-height: 400px;
}
#BGM_contactMap{
	padding-bottom: 100vh;
}
.BGM-contact-required{
	color: rgba(91,202,244,1.00);
}
.BGM-contact-form input[type=radio]{
	background-color: white;
	border: none;
}
.BGM-contact-form input[type=radio]:checked{
	background-color: rgba(91,202,244,1.00);;
	border: none;
}
.BGM-CMS-form-container {
	z-index: 45000!important;
}


/* ----------------------- MEDIA QUERIES ----------------------------- */

@media screen and (max-width: 1200px){
	.subfooter > div{
		flex: 1 1 100%!important;
		text-align: center!important;
	}
}

@media screen and (max-width: 900px){
}

@media screen and (max-width: 860px){
}

@media screen and (max-aspect-ratio: 1), 
screen and (orientation: portrait),
screen and (max-width: 800px){
	.challenges-image img{ height: 142%; }
	.map-container{
		padding-top: 45px;
	}
	.member-container {
		grid-template-rows: auto minmax(0, 1fr);
		grid-template-columns: 1fr;
	}
	.member-container img{
		grid-row: 1;
		grid-column: 1;
		justify-self: center;
	}
	.member-container figcaption{
		grid-row: 2;
		grid-column: 1;
	}
	.volume-1-container > div,
	.volume-2-container > div {
		flex: 1 1 100%;
		order: 1!important;
	}
}

@media screen and (max-width: 700px){
	h1 > span {
		display: block;
		text-align: center;
		margin-bottom: -.2em;
	}
}

@media screen and (max-width: 650px){
}

@media screen and (max-width: 600px){
}

@media screen and (max-width: 400px){
	
}






/* ----------------------------- PRINT STYLES ------------------------------- */

@media print {
	.noPrint{display: none}
}
