/* Fonts */

@font-face {
	font-family: 'League Spartan';
	src: url('/wp-content/themes/realred/font/leaguespartan/leaguespartan-bold.woff2') format('woff2'), url('/wp-content/themes/realred/font/leaguespartan/leaguespartan-bold.woff') format('woff');
	font-weight: 700;
	font-style: normal;
}

@font-face{
	font-family: 'Source Sans Pro';
	src: url('/wp-content/themes/realred/font/sourcesanspro/SourceSansPro-Regular.ttf.woff2') format('woff2'), url('/wp-content/themes/realred/font/sourcesanspro/SourceSansPro-Regular.otf.woff') format('woff');
	font-weight: 400;
	font-style: normal;
}

@font-face{
	font-family: 'Source Sans Pro';
	src: url('/wp-content/themes/realred/font/sourcesanspro/SourceSansPro-It.ttf.woff2') format('woff2'), url('/wp-content/themes/realred/font/sourcesanspro/SourceSansPro-It.otf.woff') format('woff');
	font-weight: 400;
	font-style: italic;
}

@font-face{
	font-family: 'Source Sans Pro';
	src: url('/wp-content/themes/realred/font/sourcesanspro/SourceSansPro-Bold.ttf.woff2') format('woff2'), url('/wp-content/themes/realred/font/sourcesanspro/SourceSansPro-Bold.otf.woff') format('woff');
	font-weight: 700;
	font-style: normal;
}

@font-face{
	font-family: 'Source Sans Pro';
	src: url('/wp-content/themes/realred/font/sourcesanspro/SourceSansPro-BoldIt.ttf.woff2') format('woff2'), url('/wp-content/themes/realred/font/sourcesanspro/SourceSansPro-BoldIt.otf.woff') format('woff');
	font-weight: 700;
	font-style: italic;
}

/* Global */

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-family: 'Source Sans Pro';
	font-size: 16px;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	background-color: #ffffff;
	color: #030509;
	overflow-x: hidden;
	overflow-y: scroll;
	font-size: 0;
	line-height: 0;
}

main {
	overflow-x: hidden;
}

body.no-scroll {
	overflow-y: hidden;
}

a {
	background-color: transparent;
	outline: 0 none transparent;
	text-decoration: none;
}

.hidden {
	display: none !important;
}

/* Type */

a {
	color: #1b4b7b;
}

a:visited {
	color: #af84c3;
}

a:hover {
	color: #dfe9f5;
}

p {
	line-height: 22px;
	font-size: 18px;
	margin-bottom: 10px;
}

p:last-child {
	margin-bottom: 0;
}

h1 {
	margin-bottom: 20px;
	line-height: calc(34 / 512 * 100vw); /* (A / B * 100vw) Percentage scale, Apx at Bpx screen width, linear scale at smaller sizes. */
	font-size: calc(28 / 512 * 100vw); /* (A / B * 100vw) Percentage scale, Apx at Bpx screen width, linear scale at smaller sizes. */
	font-family: 'League Spartan';
}

@media (min-width: 512px) {
	h1 {
		line-height: 34px;
		font-size: 28px;
	}
}

h2 {
	margin-bottom: 10px;
	line-height: calc(30 / 512 * 100vw); /* (A / B * 100vw) Percentage scale, Apx at Bpx screen width, linear scale at smaller sizes. */
	font-size: calc(24 / 512 * 100vw); /* (A / B * 100vw) Percentage scale, Apx at Bpx screen width, linear scale at smaller sizes. */
	font-family: 'League Spartan';
}

@media (min-width: 512px) {
	h2 {
		line-height: 30px;
		font-size: 24px;
	}
}

h3 {
	margin-bottom: 10px;
	line-height: 24px;
	font-size: 20px;
	font-family: 'League Spartan';
}

/* Navigation */

.main-navigation {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 32px 16px 16px;
	position: relative;
	background-color: #1b4b7b;
	z-index: 1;
	overflow: hidden;
}

.main-navigation--background {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	background-image: url('/wp-content/themes/realred/assets/banner.gif');
	background-size: auto 100%;
	background-position: center;
	background-repeat: no-repeat;
	filter: blur(2px);
}

.main-navigation--background-border {
	width: 1244px;
	height: 100%;
	position: absolute;
	left: 50%;
	top: 0;
	transform: translate(-50%, 0);
	background: linear-gradient(90deg, #1b4b7b 0%, rgba(27, 75, 123, 0.0) 10%, rgba(27, 75, 123, 0.0) 90%, #1b4b7b 100%);
}

.main-navigation--title {
	position: relative;
	line-height: calc(50 / 512 * 100vw); /* (A / B * 100vw) Percentage scale, Apx at Bpx screen width, linear scale at smaller sizes. */
	font-size: calc(42 / 512 * 100vw); /* (A / B * 100vw) Percentage scale, Apx at Bpx screen width, linear scale at smaller sizes. */
	font-family: 'League Spartan';
	text-transform: uppercase;
	text-align: center;
}

.main-navigation--title,
.main-navigation--title:hover,
.main-navigation--title:visited {
	color: #ffffff;
}

@media (min-width: 512px) {
	.main-navigation--title {
		line-height: 50px;
		font-size: 42px;
	}
}

.main-navigation--title-spacer {
	display: block;
	width: 100%;
	max-width: 540px;
	height: 4px;
	position: relative;
	margin: 8px auto;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #ffffff 20%, #ffffff 80%, rgba(255, 255, 255, 0) 100%);
}

.main-navigation--items {
	display: flex;
	justify-content: center;
	position: relative;
}

.main-navigation--item {
	padding: 6px;
	line-height: calc(18 / 512 * 100vw); /* (A / B * 100vw) Percentage scale, Apx at Bpx screen width, linear scale at smaller sizes. */
	font-size: calc(16 / 512 * 100vw); /* (A / B * 100vw) Percentage scale, Apx at Bpx screen width, linear scale at smaller sizes. */
	font-family: 'League Spartan';
	text-align: center;
	cursor: pointer;
}

.main-navigation--item,
.main-navigation--item:visited {
	color: #ffffff;
}

a.main-navigation--item:hover {
	color: #dfe9f5;
}

@media (min-width: 512px) {
	.main-navigation--item {
		padding: 8px;
		line-height: 18px;
		font-size: 16px;
	}
}

/* Lightbox */

.lightbox {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 30px;
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	background-color: rgba(180, 180, 180, 0.666);
	z-index: 2;
}

.lightbox > * {
	max-width: 100%;
	max-height: 100%;
}

.lightbox > img {
	object-fit: contain;
}

/* Transition Overlay */

.js .transition-overlay {
	position: fixed;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	opacity: 1.0;
	background-color: #ffffff;
	transition: opacity 0.333s linear;
}

.js .transition-overlay.\-\-out {
	opacity: 0.0;
	pointer-events: none;
}

/* Home Blocks */

.home-blocks {
	flex: 1 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	justify-items: stretch;
	align-content: stretch;
	align-items: stretch;
	width: 100%;
	max-width: 1404px;
	margin: auto;
	padding: 8px 16px;
}

.home-blocks--block {
	flex: 1 1 auto;
	min-width: 256px;
	width: calc(100% - 16px);
	min-height: 108px;
	margin: 8px;
	position: relative;
	background-color: #808080;
	overflow: hidden;
}

.ie-fix .home-blocks--block {
	min-height: calc((100vh - 232px) / 2); /* 152 for nav, 8x2 for section padding, 16x4 for block padding. */
}

@media (min-width: 768px) {
	.home-blocks--block {
		max-width: calc(50% - 32px);
		margin: 16px;
	}

	.ie-fix .home-blocks--block {
		min-height: calc((100vh - 232px) / 2); /* 152 for nav, 8x2 for section padding, 8x8 for block padding. */
	}
}

.home-blocks--image {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	transform: scale(1);
	transition: transform 2.0s ease-out;
}

.home-blocks--block:hover .home-blocks--image {
	transform: scale(1.1);
}

.home-blocks--image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.ie-fix .home-blocks--image img {
	height: auto;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

.home-blocks--title {
	width: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	padding: 12px 32px;
	transform: scale(1);
	transform-origin: 50% 100%;
	line-height: 20px;
	font-size: 18px;
	font-family: 'League Spartan';
	text-align: center;
	color: #ffffff;
	background-color: rgba(0, 0, 0, 0.333);
	transition: transform 0.2s ease-out;
}

@media (min-width: 768px) {
	.home-blocks--title {
		padding: 12px 62px;
		line-height: 26px;
		font-size: 20px;
	}
}

.home-blocks--block:hover .home-blocks--title {
	transform: scale(1.125);
}

/* General Content */

.general-content {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	justify-content: center;
	align-items: center;
	max-width: 1024px;
	margin: 0 auto;
	padding: 16px;
}

.ie-fix .general-content {
	min-height: 1px;
}

@media (min-width: 768px) {
	.general-content {
		padding: 32px;
	}
}

/* Content About Image */

.content-about-image {
	flex: 0 1 384px;
	padding: 16px;
}

.content-about-image img {
	width: 100%;
}

/* Content Wysiwyg */

.content-wysiwyg {
	flex: 1 1 384px;
	padding: 16px;
}

/* Art Gallery */

.art-gallery {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	max-width: 1404px;
	margin: 0 auto;
}

.art-gallery--section-title {
	flex: 0 0 100%;
	text-align: center;
	color: #1b4b7b;
	margin: 24px 0 0;
}

.art-gallery--block {
	flex: 0 1 420px;
	margin: 24px;
	position: relative;
	overflow: hidden;
}

.art-gallery--block::before {
	display: block;
	content: '';
	width: 100%;
	padding-top: 100%;
}

.art-gallery--image {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	transform: scale(1);
	transition: transform 2.0s ease-out;
}

.art-gallery--block:hover .art-gallery--image {
	transform: scale(1.1);
}

.art-gallery--image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.ie-fix .art-gallery--image img {
	height: auto;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

.art-gallery--title {
	width: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	padding: 12px 32px;
	transform: scale(1);
	transform-origin: 50% 100%;
	line-height: 20px;
	font-size: 18px;
	font-family: 'League Spartan';
	text-align: center;
	color: #b4b4b4;
	background-color: rgba(0, 0, 0, 0.333);
	transition: transform 0.2s ease-out, color 0.2s linear;
}

@media (min-width: 768px) {
	.art-gallery--title {
		padding: 12px 62px;
		line-height: 24px;
		font-size: 20px;
	}
}

.art-gallery--block:hover .art-gallery--title {
	transform: scale(1.25);
	color: #ffffff;
}

/* Project */

.project {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	justify-items: stretch;
	align-content: stretch;
	align-items: stretch;
}

.project--title {
	text-align: center;
	color: #1b4b7b;
	margin: 12px 0;
}

.project--gallery {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.js .project--gallery {
	flex: 1 0 300px;
	flex-wrap: nowrap;
	justify-content: flex-start;
	min-height: 300px;
	position: relative;
	left: 0;
}

.ie-fix .project--gallery {
	flex: 1 0 59vh;
	min-height: 50vh;
}

@media (min-width: 600px) {
	.js .project--gallery {
		left: calc(50% - 300px);
	}
}

@media (min-width: 1200px) {
	.js .project--gallery {
		left: calc(50% - 25vw);
	}
}

.project--image {
	flex: 0 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100vw;
	padding: 0 50px;
	transition: transform 0.666s ease-out;
}

@media (min-width: 600px) {
	.project--image {
		width: 600px;
	}
}

@media (min-width: 1200px) {
	.project--image {
		width: 50vw;
	}
}

.project--image img,
.project--image video {
	transition: transform 0.5s ease-out;
}

.js .project--image.\-\-active img,
.js .project--image.\-\-active video {
	transform: scale(1) perspective(800px) rotateY(0deg);
	cursor: pointer;
}

.js .project--image.\-\-left img,
.js .project--image.\-\-left video {
	transform: scale(0.8) perspective(800px) rotateY(40deg);
}

.js .project--image.\-\-right img,
.js .project--image.\-\-right video {
	transform: scale(0.8) perspective(800px) rotateY(-40deg);
}

.project--image img,
.project--image video {
	min-width: 1px;
	min-height: 1px;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.project--gallery-arrow {
	width: calc(42vw / 7.68);
	height: calc(76vw / 7.68);
	position: absolute;
	top: calc(50% - (38vw / 7.68));
	cursor: pointer;
}

@media (min-width: 768px) {
	.project--gallery-arrow {
		width: 42px;
		height: 76px;
		top: calc(50% - 38px);
	}
}

.project--gallery-arrow::before,
.project--gallery-arrow::after {
	content: '';
	width: calc(52vw / 7.68);
	height: 6px;
	position: absolute;
	left: 0;
	top: calc(35vw / 7.68);
	transform-origin: 3px 3px;
	background-color: #b0b0b0;
}

@media (min-width: 768px) {
	.project--gallery-arrow::before,
	.project--gallery-arrow::after {
		width: 52px;
		top: 35px;
	}
}

.project--gallery-arrow:hover::before,
.project--gallery-arrow:hover::after {
	background-color: #707070;
}

.project--gallery-arrow::before {
	transform: rotate(45deg);
}

.project--gallery-arrow::after {
	transform: rotate(-45deg);
}

.project--gallery-arrow.\-\-left {
	right: calc(100vw - 42px);
}

.project--gallery-arrow.\-\-right {
	left: calc(100vw - 42px);
}

@media (min-width: 600px) {
	.project--gallery-arrow.\-\-right {
		left: calc(600px - 42px);
	}
}

@media (min-width: 1200px) {
	.project--gallery-arrow.\-\-right {
		left: calc(50vw - 42px);
	}
}

.project--gallery-arrow.\-\-right::before,
.project--gallery-arrow.\-\-right::after {
	left: auto;
	right: 0;
	transform-origin: calc((52vw / 7.68) - 3px) 3px;
}

@media (min-width: 768px) {
	.project--gallery-arrow.\-\-right::before,
	.project--gallery-arrow.\-\-right::after {
		transform-origin: 49px 3px;
	}
}

.project--gallery-dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding: 10px 0;
}

.project--gallery-dot {
	width: 14px;
	height: 14px;
	margin: 0 8px;
	border-radius: 50%;
	background-color: #b0b0b0;
	cursor: pointer;
}

.project--gallery-dot:hover,
.project--gallery-dot.\-\-active {
	background-color: #707070;
}

.project--caption {
	padding: 0 10px 10px;
}

.project--caption.\-\-hide {
	display: none;
}

.project--caption-wrapper {
	max-width: 752px;
	margin: auto;
	border-radius: 6px;
	padding: 10px 30px;
	font-style: italic;
	text-align: center;
	background-color: #dfe9f5;
}

.project--video {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	padding: 0 24px 24px;
	flex: 1 0 auto;
}

.project--video-wrapper {
	width: 100%;
	max-width: 1024px;
	position: relative;
}

.project--video-wrapper::before {
	content: '';
	display: block;
	width: 100%;
	padding-top: 56.25%;
}

.project--video-wrapper img {
	display: none;
	/* For later spacing stuff, if needed. */
	/* height: 100%;display: inline-block;max-width: 1024px;display: inline-block;object-fit: contain;background-color: #000000;max-height: calc(1024px / (16 / 9)); */
}

.project--video iframe {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
}

.project--description {
	padding: 40px;
	background-color: #dfe9f5;
}

.project--description-wrapper {
	max-width: 1024px;
	margin: auto;
}
