/* Basics */

html {
	box-sizing: border-box;
}

*, *:before, *:after {
	box-sizing: inherit;
}

	body.is-preload *, body.is-preload *:before, body.is-preload *:after {
		-moz-animation: none !important;
		-webkit-animation: none !important;
		-ms-animation: none !important;
		animation: none !important;
		-moz-transition: none !important;
		-webkit-transition: none !important;
		-ms-transition: none !important;
		transition: none !important;
	}

body, input, select, textarea, button, .button {
	color: var(--primary-hex);
	font-family: var(--house-font);
	font-size: var(--house-size);
	font-optical-sizing: auto;
	font-variant-ligatures: normal;
	font-style: oblique 0deg 20deg;
	font-stretch: 115%;
    letter-spacing: 0.01dvw;
}

a {
	-moz-transition: color 0.25s ease-in-out, border-color 0.25s ease-in-out;
	-webkit-transition: color 0.25s ease-in-out, border-color 0.25s ease-in-out;
	-ms-transition: color 0.25s ease-in-out, border-color 0.25s ease-in-out;
	transition: color 0.25s ease-in-out, border-color 0.25s ease-in-out;
	color: inherit;
	text-decoration: none;
}

	a:hover {
		border-bottom-color: transparent;
		text-shadow: 0 0.12rem var(--light-20-rgba), 0 0.14rem var(--dark-20-rgba);
	}
	
.disabled {
  pointer-events: none;
  cursor: default;
}

.faded {
  opacity: 0.4;
}

strong, b {
	font-weight: 700;
}

em, i {
	font-style: italic;
}

p {
	margin: 0.8rem;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: 900;
	white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

	h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
		border: 0;
		color: inherit;
		text-decoration: none;
		min-width: 100%
	}
	
h1 {
    font-size: 200%;
}

h2 {
	font-size: 180%;
}

h3 {
	font-size: 160%;
}

h4 {
	font-size: 140%;
}

h5 {
	font-size: 120%;
}

h6 {
	font-size: 110%;
}

sub {
	font-size: 90%;
	position: relative;
	top: -0.25rem;
}

sup {
	font-size: 0.8rem;
	position: relative;
	top: 0.25rem;
}

hr {
    width: 92%;
	border: 0;
	border-bottom: solid 2px var(--primary-80-rgba);
	opacity: 0.25;
	margin: 1dvw auto 1dvw auto;
}

.no-radius {
	border-radius: 0 !important;
}

.no-hover:hover {
    background: inherit;
    color: inherit;
    transition: none !important;
}

blockquote {
	border-left: solid 8px var(--secondary-hex);
	font-style: italic;
	margin: 0 0 2.25rem 0;
	padding: 0.5rem 0 0.5rem 0;
}

.blockquote-wrapper {
   display: block;
   height: auto;
}

.blockquote {
    position: relative;
    width: 100%;
    z-index: 1;
    margin: 0 auto;
    align-self: flex-start;
    margin: 0 2rem;
    padding: 0 2rem;
}

.blockquote h1 {
    position: relative;
    font-weight: 900;
    font-size: 150%;
    margin: 0;
}

.blockquote p::before {
   content: "“";
   font-family: Georgia;
   font-size: 6rem;
   margin: 1dvw;
   left: -2.75rem;
   position: absolute;
   opacity: 0.12;
}

code {
	background: var(--secondary-80-rgba);
	border-radius: 5px;
	color: var(--light-hex);
	font-family: var(--house-font);
	font-size: 0.9rem;
	margin: 0 0.25rem;
	padding: 0.25rem 0.65rem;
}

pre {
	font-family: var(--house-font);
	font-size: 0.9rem;
	margin: 0 0 2.25rem 0;
}

pre code {
	-webkit-overflow-scrolling: touch;
	display: block;
	overflow-x: auto;
	padding: 1dvw 1.5rem;
}

.shrink {
    zoom: 60%;
}

.no_bg {
    background: transparent !important;
  }

.no_padding {
    padding: 0 !important;
}

.no_margin {
    margin: 0 !important;
}

.mask {
  height: 3rem;
  position: relative;
  overflow: hidden;
  margin-top: 0rem;
}

.mask span {
  display: block;
  box-sizing: border-box;
  position: absolute;
  top: 3rem;
  padding-bottom: 1dvw;
  width: 100%;
  text-align: center;
  background-size: 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  background-repeat: no-repeat;
}

.mask span[data-show] {
  transform: translateY(-100%);
  transition: .4s transform ease-in-out;
}

.mask span[data-up] {
  transform: translateY(-200%);
  transition: .4s transform ease-in-out;
}

.inner .box.item {
    zoom: 0.8;
}

.inner .box > .header {
    font-size: calc(100% + 2vw);
}

.inner .box > .subheader {
    font-size: calc(100% + 0.25vw);
}

/* Dropdown */

.dropdown {
    cursor: pointer;
    position: relative;
}

.dropdown-content {
    display: none;
    position: relative;
    margin: left;
    width: 100%;
    margin: auto;
    z-index: 1;
}

/* Tabs */

.tab-content > .tab-pane {
    display: none;
}

.tab-content > .active {
    display: block;
}

.fade {
    opacity: 0;
    -webkit-transition: opacity 0.25s ease;
    -o-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease;
}

.fade.in {
    opacity: 1;
    -webkit-transition: opacity 0.25s ease;
    -o-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease;
}

.tabs > li {
    list-style-type: none;
    display: inline-block;
}

/* Flip Cards */
.cards {
    position: relative;
    perspective: 100vh;
    justify-content: center;
    align-content: center;
    align-items: center;
}

.cards__single {
    min-height: 200px;
    border-radius: 4px;
    cursor: pointer;
    text-align: center;
    transform-style: preserve-3d;
    position: relative;
    display: flex;
    flex-direction: column;
    transition: 0.25s;
    -webkit-transition: 0.25s;
    transition: transform 0.3s;
    -webkit-transition: transform 0.3s;
}

.cards__single.flip {
    transform: rotateY(-180deg);
    -webkit-transform: rotateY(-180deg);
}

.cards__front,
.cards__back {
    margin: 1dvw;
    color: var(--primary-hex);
    background: var(--light-40-rgba);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.cards__front {
  border: 1px solid var(--primary-20-rgba);
  transform: rotateX(0deg);
  -webkit-transform: rotateX(0deg);
}

.cards__back {
  border: 1px solid var(--primary-hex);
  transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  position: absolute;
  text-align: center;
  right: 0;
  left: 0;
  top: 0;
}

.cards__front,
.cards__back,
.box_item {
    background: var(--light-40-rgba) !important;
    text-align: center;
    -webkit-box-shadow: 0px 0px 9px 0px  var(--origin-20-rgba);
    -moz-box-shadow: 0px 0px 9px 0px var(--origin-20-rgba);
    box-shadow: 0px 0px 9px 0px var(--origin-20-rgba);
}

.cards__front > img {
    padding: 0;
    margin: 0;
}

.cards__back > .cards__body {
    padding: 2rem;
}

.box_item {
    border: 1px solid  var(--lightish-80-rgba);
    z-index: 1;
    width: auto;
    display: block;
}

.box_item img:before, .box_item figcaption:before {
    height: 100%;
    width: 100%;
    background: var(--light-hex);
}

.next_prev {
    opacity: 0.8;
    position: absolute;
    transform: scale(0.8);
    margin: 1dvw -8rem;
    z-index: 0;
}

.box_item > div {
  display: inline;
    -webkit-transition: all .4s linear;
    -moz-transition: all .4s linear;
    transition: all .4s linear;
}

.background {
    background: var(--light-20-rgba) !important;
}

.background, .background a, .background a:hover {
    color: var(--dark-hex) !important;
}

.background.active {
    background: var(--primary-80-rgba) !important;
}

.background.active, .background.active a, .background.active a:hover {
    color: var(--light-hex) !important;
    text-decoration: double;
}

.title {
    font-weight: 600;
    text-transform: capitalize;
}

.box_item > .header {
  font-size: large;
  padding: 0.5rem;
  display: block;
}
		
/* Image View */

.image-media {
    opacity: 0.96;
    max-width: auto;
    height: 12rem;
    margin: auto;
    aspect-ratio: attr(max-width) / attr(height);
    object-fit: cover;
}

.image-media[type=pdf] {
    object-fit: fill;
}

.box_item:hover {
    animation: pulse 1s;
    opacity: 1;
    -webkit-transition: all .4s linear;
    -moz-transition: all .4s linear;
    transition: all .4s linear;
}

.box_item {
    z-index: 1;
    width: auto;
    display: block;
}

.box_item img:before, .box_item figcaption:before {
    height: 100%;
    width: 100%;
    background: #eff1f2;
}

.next_prev {
    opacity: 0.8;
    position: absolute;
    transform: scale(0.8);
    margin: 1dvw;
    z-index: 0;
}

.box_item > div {
  display: inline-grid;
    -webkit-transition: all .4s linear;
    -moz-transition: all .4s linear;
    transition: all .4s linear;
}

.box_item > .header {
  font-size: large;
  padding: 0.5rem;
  display: block;
}

.body:first-child {
  margin-top: 2rem;
}

.body {
  width: 92%;
  margin: -2rem auto 4rem;
  padding: 0 1dvw;
}

.details {
    padding: 1dvw;
    font-size: normal;
}

img:after {
    content: '\f127'' [img]';
    display: block;
    font-family: FontAwesome;
    color: var(--primary-hex);
    position: absolute;
    top: 5px;
    left: 0;
    width: 100%;
    text-align: center;
}

.details img {
    max-width: 150px;
    max-height: 150px;
    aspect-ratio: attr(max-width) / attr(max-height);
    object-fit: cover;
}

figcaption {
    color: var(--primary-hex);
    font-weight: 600;
    text-transform: lowercase;
    font-variant: all-small-caps;
}

figcaption > .header > * {
    margin: 1dvw;
}

.caption {
    display: grid;
    padding: 0.5rem;
    border-top: none;
    text-align: center;
    opacity: 0.8;
}

.txt {
    display: block;
    max-width: 100%;
    padding: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;    
}

header { 
    margin: 0 auto 3rem auto;
}

header:before {
    display: block !important;
    position: absolute;
    font-size: 300% !important;
    top: -0.5rem;
    float: right;
    right: 0;
    color: var(--primary-20-rgba);
}

article > header {
    margin: 3rem auto;
}

article > header {
    border-left: 0.25rem dotted var(--primary-20-rgba);
    padding-left: 1dvw;
}

header .heading {
    font-size: 150%;
    display: inline;
    border: none !important;
    text-align: center;
}

header p { 
	color: var(--dark-hex); 
	margin: 0;
	font-family: var(--house-font);
}

/* Row */

.row {
	display: flex;
	flex-wrap: wrap;
    box-sizing: border-box;
    max-width: 100%;
    left: 0.5rem;
    row-gap: 1.5vw;
    justify-content: center !important;
}

.row.aln-left {
	justify-content: left;
}

.row.aln-center, .aln-center {
	justify-content: center !important;
}

.row.aln-right {
	justify-content: right;
}

.row > .col-2 {
    width: -webkit-fill-available;
    max-width: calc(50% - 0.25vw);
    padding: 0;
    margin-top: 0;
}

.row > .col-1 {
    width: -webkit-fill-available;
    max-width: calc(50% - 0.25vw);
    padding: 0;
    margin-top: 0;
}

.row > .col-1 > .button {
    display: block;
}

.row > .col-3 {
    width: -webkit-fill-available;
    max-width: calc(30% - 0.25vw);
    padding: 0;
    margin-top: 0;
}

.row > .col-3 .valign-top {
    vertical-align: top;
}

.row > .col-3 .valign-center {
    vertical-align: center;
}

@media only screen and (max-width: 1024px) {

    .row > .col-2 {
        min-width: calc(91% / 2);
        max-width: calc(91% / 2);
    }
    
    .row > .col-1 {
        min-width: calc(91% / 2);
        max-width: calc(91% / 2);
    }
    
    .row > .col-3 {
        max-width: calc(88% / 2);
        margin: 0 0.8rem 1.25rem;
    }
    
    .overlay.icon {
        font-size: calc(100% + 6vw);
    }
    
}

@media only screen and (max-width: 574px) {

    .row > .col-2 {
        min-width: 40%;
        max-width: 50%;
    }
    
    .row > .col-1 {
        min-width: 100%;
        max-width: 100%;
    }
    
    .row > .col-1 > .button:not(.full) {
        display: inline-block;
        width: 41%;
    }
    
    .row > .col-3 {
        margin-left: 0rem;
        margin-bottom: 2dvw !important;
    }
    
    .overlay.icon {
        font-size: calc(100% + 2vw);
        top: -2vh;
    }
    
    .card > figcaption.image {
        max-height: 20vh;
        width: 100%;
    }
    
}

.align-center {
    text-align: center;
    margin: auto;
}

.valign-center {
    vertical-align: center;
}

.valign-bottom {
    vertical-align: bottom;
    bottom: 0;
}

.p-absolute {
    position: absolute;
}

/* Image View */

.image-media {
    opacity: 0.96;
    width: 100%;
    height: 150px;
    margin: auto;
    aspect-ratio: attr(width) / attr(height);
    object-fit: cover;
}

.image-media[type=pdf] {
    object-fit: fill;
}

.img-gallery {
    margin: 2rem 0;
}

.box_item:hover {
    animation: pulse 1s;
    opacity: 1;
    -webkit-transition: all .4s linear;
    -moz-transition: all .4s linear;
    transition: all .4s linear;
}

.txt {
    display: inline;
    max-width: 100%;
    padding: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;    
}

/* Form */

form {
	margin: 0 0 2rem 0;
}

form > .fields {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-flex-wrap: wrap;
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
    width: auto;
    margin: 0 0 2rem;
}

label {
	display: block;
	font-weight: 600;
	letter-spacing: 0.075em;
	margin: 0.5rem 0 0.5rem 0;
}

/* tiles */

	.tiles {
		display: -moz-flex;
		display: -webkit-flex;
		display: -ms-flex;
		display: flex;
		-moz-flex-wrap: wrap;
		-webkit-flex-wrap: wrap;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		flex-flow: row wrap;
		position: relative;
		margin: 0 auto 1vw;
		justify-content: space-between !important
	}

		.tiles article {
			-moz-transition: -moz-transform 0.25s ease-in-out, opacity 0.25s ease-in-out;
			-webkit-transition: -webkit-transform 0.25s ease-in-out, opacity 0.25s ease-in-out;
			-ms-transition: -ms-transform 0.25s ease-in-out, opacity 0.25s ease-in-out;
			transition: transform 0.25s ease-in-out, opacity 0.25s ease-in-out;
			position: relative;
			flex: auto;
			width: 100%;
			max-width: calc(100% / 2.25);
			margin: 1%;
			font-size: inherit;
			max-height: 100%;
			height: calc(30% - 1vw);
			outline: 0.12rem solid var(--secondary-20-rgba);
            outline-offset: 0.04rem;
			flex-shrink: 1;
		}

			.tiles article > .image {
				-moz-transition: -moz-transform 0.5s ease-in-out;
				-webkit-transition: -webkit-transform 0.5s ease-in-out;
				-ms-transition: -ms-transform 0.5s ease-in-out;
				transition: transform 0.5s ease-in-out;
				position: relative;
				display: contents;
				width: auto;
				border-radius: 4px;
				overflow: hidden;
			}

				.tiles article > .image img {
					display: block;
					width: 100%;
					opacity: 0.5;
				}

				.tiles article > .image:before {
					pointer-events: none;
					background-color: var(--light-hex);
					-moz-transition: background-color 0.5s ease-in-out, opacity 0.5s ease-in-out;
					-webkit-transition: background-color 0.5s ease-in-out, opacity 0.5s ease-in-out;
					-ms-transition: background-color 0.5s ease-in-out, opacity 0.5s ease-in-out;
					transition: background-color 0.5s ease-in-out, opacity 0.5s ease-in-out;
					content: '';
					display: block;
					position: absolute;
					top: 0;
					left: 0;
					width: 100%;
					height: 100%;
					z-index: 1;
					opacity: 0.8;
				}

				.tiles article > .image:after {
					pointer-events: none;
					-moz-transition: opacity 0.5s ease-in-out;
					-webkit-transition: opacity 0.5s ease-in-out;
					-ms-transition: opacity 0.5s ease-in-out;
					transition: opacity 0.5s ease-in-out;
					content: '';
					display: block;
					position: absolute;
					top: 0;
					left: 0;
					width: 100%;
					height: 100%;
					/*background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cstyle%3Eline %7B stroke-width: 0.25px%3B stroke: %23ffffff%3B %7D%3C/style%3E%3Cline x1='0' y1='0' x2='100' y2='100' /%3E%3Cline x1='100' y1='0' x2='0' y2='100' /%3E%3C/svg%3E");*/
					/*background-position: center;*/
					/*background-repeat: no-repeat;*/
					/*background-size: 100% 100%;*/
					opacity: 0.5;
					z-index: 2;
				}

			.tiles article > a {
				display: -moz-flex;
				display: -webkit-flex;
				display: -ms-flex;
				display: flex;
				-moz-flex-direction: column;
				-webkit-flex-direction: column;
				-ms-flex-direction: column;
				flex-direction: column;
				-moz-align-items: center;
				-webkit-align-items: center;
				-ms-align-items: center;
				align-items: center;
				-moz-justify-content: center;
				-webkit-justify-content: center;
				-ms-justify-content: center;
				justify-content: center;
				-moz-transition: background-color 0.5s ease-in-out, -moz-transform 0.5s ease-in-out;
				-webkit-transition: background-color 0.5s ease-in-out, -webkit-transform 0.5s ease-in-out;
				-ms-transition: background-color 0.5s ease-in-out, -ms-transform 0.5s ease-in-out;
				transition: background-color 0.5s ease-in-out, transform 0.5s ease-in-out;
				position: relative;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				border-radius: 4px;
				border-bottom: 0;
				color: var(--light-hex);
				text-align: center;
				text-decoration: none;
				z-index: 3;
			}

				.tiles article > a > :last-child {
					margin: 0;
				}
				
				.box_item:hover {
				    box-shadow: 5px 5px 26px var(--black-hex); 
                	-webkit-box-shadow: 5px 5px 26px var(--black-hex);
                	-moz-box-shadow: 5px 5px 26px var(--black-hex);
				}

				.tiles article > a.button:hover {
					-moz-transition: all 0.5s ease-in-out, opacity 0.5s ease-in-out;
					-webkit-transition: all 0.5s ease-in-out, opacity 0.5s ease-in-out;
					-ms-transition: all 0.5s ease-in-out, opacity 0.5s ease-in-out;
					transition: all 0.5s ease-in-out, opacity 0.5s ease-in-out;
					font-size: calc(100% + 0.12rem);
					text-shadow: 0 1px 0 var(--dark-20-rgba);
					font-weight: normal;
				}

				.tiles article > a h2 {
					margin: 0;
				}

				.tiles article > a .content, .tiles article > figcaption {
					-moz-transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out;
					-webkit-transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out;
					-ms-transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out;
					transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out;
					width: 100%;
					max-height: 0;
					line-height: 1.5;
					opacity: 0;
					text-transform: capitalize;
				}

					.tiles article > a .content > :last-child {
						margin-bottom: 0;
					}


			body:not(.is-touch) .tiles article > .image:hover, .tiles article > .image {
				-moz-transform: scale(1.1);
				-webkit-transform: scale(1.1);
				-ms-transform: scale(1.1);
				transform: scale(1.1);
				transform-origin: center;
			}

				body:not(.is-touch) .tiles article:hover > .image:before {
					background-color: var(--light-hex);
					opacity: 0.25;
				}

				body:not(.is-touch) .tiles article:hover > .image:after {
					opacity: 0.25;
				}

			body:not(.is-touch) .tiles article:hover .content, .body:not(.is-touch) .tiles article:hover figcaption {
				max-height: 15rem;
				opacity: 1;
			}

		* + .tiles {
			margin: 0;
		}

		body.is-preload .tiles {
			-moz-transform: scale(0.9);
			-webkit-transform: scale(0.9);
			-ms-transform: scale(0.9);
			transform: scale(0.9);
			opacity: 1;
		}

		body.is-touch .tiles article .content, body.is-touch .tiles article figcaption {
			max-height: 15rem;
			opacity: 1;
		}

/* Reset defaults */

#reset {
  all: initial;
}

#reset * {
  all: unset
}

/* Disqus */

#disqus_thread {
    font-family: var(--house-font) !important;
    font-size: large;
    zoom: 0.8;
}