
/*
 * Everything in this file must be present on the frontend
 * (and probably not the admin) for the layout to work.
 */

/** Reset and base */
* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
customhtml > * {
	position: relative;
	z-index: 10;
}
html,
body {
	min-height: 100vh;
	margin: 0;
	padding: 0;
}
html {
	position: relative;
	background-color: rgb(255, 255, 255);
}

/** Flex layout */
/* Flex parent - center flex children */
.main_container {
	min-height: 100vh;
	width: 100%;
}

.container {
	display: -webkit-box;
	display: -webkit-flex;
	display: -moz-box;
	display: -ms-flexbox;
	display: flex;

	-webkit-flex-wrap: wrap;
	-moz-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;

	max-width: 100%;
	width: 100%;

	overflow: hidden;
}

.container {
	align-items: flex-start;
	-webkit-align-items: flex-start;
}

.page {
	z-index: 2;
}

/**
 * Ensures the bullet points in lists display in the correct position. 
 * If the text-limit element is not block, the bullet point moves to the bottom
 * of the li, instead of the top.
 */

.page ul li > text-limit {
	display: block;
}

/* Flex child - grow to fill parent */
.content,
.content_container,
.pinned {
	-webkit-flex: 1 0 auto;
	-moz-flex: 1 0 auto;
	-ms-flex: 1 0 auto;
	flex: 1 0 auto;

	max-width: 100%; /* No wider than the parent */
}

.content_container {
	width: 100%;
}

.page_background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/** Stacking */
/* Contains both the page and backdrop */
.page_container {
	position: relative;
	overflow: hidden;
	width: 100%;
}

/* Backdrop */
.backdrop {
	position: absolute;
	top: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	max-height: 100vh;
}

.backdrop > div {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	backface-visibility: hidden;
	transform: translate3d(0,0,0);	
}

[data-backdrop].backdrop > div[data-overflowing] {
	max-height: 100vh;
	position:absolute;
	top:0;
	left:0;
}

/** split responsive behavior **/
body.mobile [split-responsive] {
	display: flex;
	flex-direction:column;
}

body.mobile [split-responsive] .container {
	width: 100%;
	order: 2;
}

body.mobile [split-responsive] .backdrop {
	position: relative;
	height: 50vh;
	width: 100%;
	order: 1;
}

body.mobile [split-responsive] [data-auxiliary].backdrop {
	position: absolute;
	height: 50vh;
	width: 100%;
	order: 1;
}

.page {
	position: relative;
	z-index: 2;
}

img[data-align="left"] {
	float: left;
}

img[data-align="right"] {
	float: right;
}


/** classes to determine the transition that happens when scrolling **/
.content .scroll-transition-fade {
	transition: transform 1s ease-in-out, opacity .8s ease-in-out;
}

.content .scroll-transition-fade.below-viewport {
    opacity: 0;
	transform: translateY(40px);
}


/** Mobile Page Width 100% except for split layout (not responsive) pages */
.mobile.full_width .page_container:not([split-layout]) .container_width {
	width: 100%;
}

/** Pinned pages and their accommodations */
.pinned {
	position: relative;
	width: 100%;
}

body.mobile .pinned .page_container.exclude_mobile {
	display: none;
}

.pinned .page_container.overlay {
	position: absolute;
	z-index: 4;
}

.pinned .page_container.overlay.fixed {
	position: fixed;
}

.pinned .page_container.overlay.fixed .page {
    overflow-y: auto;
    overflow-x: hidden;
    max-height: 100vh;
}

.pinned.pinned_top .page_container.overlay {
	top: 0;
}

.pinned.pinned_bottom .page_container.overlay {
	bottom: 0;
}

/**
 * Thumbnails
 */
.thumbnails {
	position: relative;
    z-index: 1;
}

[thumbnails="grid"] {
	align-items: baseline;
}
 
[thumbnails="justify"] .thumbnail {
	box-sizing: content-box;
}

[thumbnails][data-padding-zero] .thumbnail {
	margin-bottom: -1px;
}

[thumbnails="montessori"] .thumbnail {
	pointer-events:auto;
	position: absolute;
}

[thumbnails="montessori"] [data-can-move].thumbnail,
[thumbnails="montessori"] [data-can-move].thumbnail a {
	cursor: move;  
}

[thumbnails] .thumbnail > a {
	display: block;
	text-decoration: none;
}

[thumbnails="montessori"] {
	height: 0;
}

[thumbnails][data-resizing], [thumbnails][data-resizing] * {
	cursor: nwse-resize;
}

[thumbnails] .thumbnail .resize-handle {
	cursor: nwse-resize;
	width: 26px;
	height: 26px;
	padding: 5px;
	position: absolute;

	opacity: .75;
	right: -1px;
	bottom: -1px;
	z-index: 9;
}

[thumbnails][data-resizing] .resize-handle {
	display:none;
}

[thumbnails] .thumbnail .resize-handle svg {
	position: absolute;
	top: 0;
	left: 0;
}

[thumbnails] .thumbnail .resize-handle:hover {
	opacity: 1;
}

[data-can-move].thumbnail .resize-handle svg .resize_path_outline {
	fill: rgba(255,255,255,1);
}

[data-can-move].thumbnail .resize-handle svg .resize_path {
	fill: rgba(0,0,0,1);
}



[thumbnails="montessori"] .thumbnail_sizer{
	height: 0;
	width: 100%;
	position: relative;
	padding-bottom: 100%;
	pointer-events:none;
}

[thumbnails] .thumbnail img {
	display: block;
	margin-bottom: 0;
}

[aspect-ratio="1x1"].thumb_image {
	height: 0;
	padding-bottom: 100%;
	overflow: hidden;
}

[aspect-ratio="4x3"].thumb_image {
	height: 0;
	padding-bottom: 75%;
	overflow:hidden;
}

[aspect-ratio="16x9"].thumb_image {
	height: 0;
	padding-bottom: 56.25%;
	overflow:hidden;
}

[thumbnails] .thumb_image {
	position: relative;
}

[thumbnails][thumbnail-vertical-align="top"] {
	align-items: flex-start;
}

[thumbnails][thumbnail-vertical-align="middle"] {
	align-items: center;
}

[thumbnails][thumbnail-vertical-align="bottom"] {
	align-items: baseline;
}

[thumbnails][thumbnail-horizontal-align="left"] {
	justify-content: flex-start;
}

[thumbnails][thumbnail-horizontal-align="middle"] {
	justify-content: center;
}

[thumbnails][thumbnail-horizontal-align="right"] {
	justify-content: flex-end;
}

.thumb_image.default_image > svg {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	width: 100%;
	height: 100%;
}

.thumb_image.default_image {
	outline: 1px solid #ccc;
	outline-offset: -1px;
	position: relative;
}

/** Mobile Thumbnails Width 100% */
.mobile.full_width [data-view="Thumbnail"] .thumbnails_width {
	width: 100%;
}

/**
 * Image grids
 */

[image-gallery] .gallery_card img {
	display: block;
	width: 100%;
	height: auto;
 }

[image-gallery] .gallery_card.dragging {
	opacity: 0.1;
	transform: initial!important;
}

 [image-gallery="slideshow"]:not('.initialized') img {
 	max-width: 100%;
 }

 [image-gallery="slideshow"] img.image-zoom:active {
    opacity: initial;
}

[image-gallery] .gallery_card iframe:only-child,
[image-gallery] .gallery_card video:only-child {
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	position: absolute;
}

[image-gallery] [image-gallery-pad="0"] video:only-child {
	object-fit: cover;
	height: calc(100% + 1px);
}

div.image-gallery > img, div.image-gallery > a { 
	display:none;
}

[image-gallery-row] {
	align-items: flex-start;
	box-sizing: border-box;

	display: -webkit-box; display:
	-webkit-flex; display:
	-ms-flexbox; display: flex;

	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

[image-gallery] .gallery_card {

	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

}

[image-gallery] .gallery_card_image {
	width: 100%;
	position: relative;
}

[image-gallery] a.gallery_card,
[image-gallery] a.slick-slide {
	display: block;
	border: none;
}


[image-gallery-col] {
	box-sizing: border-box;
}

[image-gallery-col="x12"] { width: 100%; }
[image-gallery-col="x11"] { width: 50%; }
[image-gallery-col="x10"] { width: 33.33%; }
[image-gallery-col="x9"] { width: 25%; }
[image-gallery-col="x8"] { width: 20%; }
[image-gallery-col="x7"] { width: 16.666666667%; }
[image-gallery-col="x6"] { width: 14.285714286%; }
[image-gallery-col="x5"] { width: 12.5%; }
[image-gallery-col="x4"] { width: 11.111111111%; }
[image-gallery-col="x3"] { width: 10%; }
[image-gallery-col="x2"] { width: 9.090909091%; }
[image-gallery-col="x1"] { width: 8.333333333%; }

.content .project_content [image-gallery-pad].image-gallery {
	pointer-events: none;
}

.content .project_content [image-gallery-pad].image-gallery .gallery_card_image > * {
	pointer-events: auto;
}

.content .project_content [image-gallery-pad="0"] {
	padding: 0; 
}

.content .project_content [image-gallery-pad="0.25"] {
	padding: .125rem; 
}

.content .project_content [image-gallery-pad="0.5"] {
	padding: .25rem; 
}

.content .project_content [image-gallery-pad="0.75"] {
	padding: .375rem; 
}

.content .project_content [image-gallery-pad="1"] {
	padding: .5rem; 
}

.content .project_content [image-gallery-pad="1.25"] {
	padding: .625rem; 
}

.content .project_content [image-gallery-pad="1.5"] {
	padding: .75rem; 
}

.content .project_content [image-gallery-pad="1.75"] {
	padding: .875rem; 
}

.content .project_content [image-gallery-pad="2"] {
	padding: 1rem; 
}

.content .project_content [image-gallery-pad="2.5"] {
	padding: 1.25rem; 
}

.content .project_content [image-gallery-pad="3"] {
	padding: 1.5rem; 
}

.content .project_content [image-gallery-pad="3.5"] {
	padding: 1.75rem; 
}

.content .project_content [image-gallery-pad="4"] {
	padding: 2rem; 
}

.content .project_content [image-gallery-pad="5"] {
	padding: 2.5rem; 
}

.content .project_content [image-gallery-pad="6"] {
	padding: 3rem; 
}

.content .project_content [image-gallery-pad="7"] {
	padding: 3.5rem; 
}

.content .project_content [image-gallery-pad="8"] {
	padding: 4rem; 
}

.content .project_content [image-gallery-pad="9"] {
	padding: 4.5rem; 
}

.content .project_content [image-gallery-pad="10"]{
	padding: 5rem; 
}

/**
image gallery gutters
gutters are only for the left and right edges, to keep image grids clickable
**/

.content .project_content [image-gallery-gutter="0"] {
	margin: 0rem; 
}

.content .project_content [image-gallery-gutter="0.5"] {
	margin: -.25rem; 
}

.content .project_content [image-gallery-gutter="1"] {
	margin: -.5rem; 
}

.content .project_content [image-gallery-gutter="1.5"] {
	margin: -.75rem; 
}

.content .project_content [image-gallery-gutter="2"] {
	margin: -1rem; 
}

.content .project_content [image-gallery-gutter="2.5"] {
	margin: -1.25rem; 
}

.content .project_content [image-gallery-gutter="3"] {
	margin: -1.5rem; 
}

.content .project_content [image-gallery-gutter="3.5"] {
	margin: -1.75rem; 
}

.content .project_content [image-gallery-gutter="4"] {
	margin: -2rem; 
}

.content .project_content [image-gallery-gutter="5"] {
	margin: -2.5rem; 
}

.content .project_content [image-gallery-gutter="6"] {
	margin: -3rem; 
}

.content .project_content [image-gallery-gutter="7"] {
	margin: -3.5rem; 
}

.content .project_content [image-gallery-gutter="8"] {
	margin: -4rem; 
}

.content .project_content [image-gallery-gutter="10"]{
	margin: -5rem; 
}

.content .project_content [image-gallery-gutter="12"]{
	margin: -6rem; 
}

.content .project_content [image-gallery-gutter="14"]{
	margin: -7rem; 
}

.content .project_content [image-gallery-gutter="16"]{
	margin: -8rem; 
}

.content .project_content [image-gallery-gutter="18"]{
	margin: -9rem; 
}

.content .project_content [image-gallery-gutter="20"]{
	margin: -10rem; 
}

/* Slideshow gallery layout */

[image-gallery="slideshow"] .gallery_card img {
    display: inline-block;
}

[image-gallery="slideshow"] .gallery_image_caption {
	opacity: 1;
	transition: opacity .3s;
	-webkit-transition: opacity .3s;
}

[image-gallery="slideshow"][data-in-transition] .gallery_image_caption {
	opacity: 0;
	transition: opacity .3s;
	-webkit-transition: opacity .3s;
}

[image-gallery="slideshow"]:not([data-in-transition]) .slick-slide:not(.slick-current) {
	opacity: 0;
}

[image-gallery="slideshow"][data-exploded] {
	align-items: top;
}

/* Grid image gallery layout */

[image-gallery="grid"] {
	align-items: baseline;
}

[image-gallery="grid"] .gallery_card.has_caption .gallery_card_image {
	display: inline-block;
}

[image-gallery="grid"] [image-gallery-pad="0"].gallery_card {
	margin-bottom: -1px;
}

[image-gallery="grid"] .gallery_card img {
	margin: 0;	
}

/* Columns image gallery layout */

[image-gallery="columns"] .gallery_card img {
	margin: 0;	
}



/* Justify image grid layout */

[image-gallery="justify"] {
	align-items: flex-start;
}

[image-gallery="justify"] [image-gallery-col].gallery_card {
	box-sizing: content-box;
}

[image-gallery="justify"] [image-gallery-pad="0"].gallery_card {
	margin-bottom: -1px;
}

[image-gallery="justify"] .gallery_card img {
	margin: 0;	
}



/* Montessori image grid layout */

[image-gallery="montessori"][image-gallery-row] {
	display: block;
}

[image-gallery="montessori"] .gallery_card {
	position: absolute;
	pointer-events:auto;
}

[image-gallery="montessori"][data-can-move] .gallery_card,
[image-gallery="montessori"][data-can-move] .gallery_card .gallery_card_image,
[image-gallery="montessori"][data-can-move] .gallery_card .gallery_card_image > * {
	cursor: move;  
}


[image-gallery="montessori"] {
	height: 0;
}

/* Freeform image grid layout */
[image-gallery="freeform"] .gallery_card {
	position: relative;
}

[image-gallery="freeform"] [image-gallery-pad="0"].gallery_card {
	margin-bottom: -1px;
}

[image-gallery][image-gallery-vertical-align="top"] {
	align-items: flex-start;
}

[image-gallery][image-gallery-vertical-align="middle"] {
	align-items: center;
}

[image-gallery][image-gallery-vertical-align="bottom"] {
	align-items: flex-end;
}

[image-gallery][image-gallery-horizontal-align="left"] {
	justify-content: flex-start;
}

[image-gallery][image-gallery-horizontal-align="middle"] {
	justify-content: center;
}

[image-gallery][image-gallery-horizontal-align="right"] {
	justify-content: flex-end;
}

/* layout for both montessori and freeeform image galleriess */ 

[image-gallery][data-resizing], [image-gallery][data-resizing] * {
	cursor: nwse-resize!important;
}

[image-gallery] .gallery_card .resize-handle, [image-gallery] .gallery_card .resize-handle * {
	cursor: nwse-resize!important;  
}

[image-gallery] .gallery_card .resize-handle {
	width: 26px;
	height: 26px;
	padding: 5px;
	position: absolute;

	opacity: .75;
	right: -1px;
	bottom: -1px;
	z-index: 9;
}

[image-gallery][data-resizing] .resize-handle {
	display:none;
}

[image-gallery] .gallery_card .resize-handle svg {
	cursor: nwse-resize!important;	
	position: absolute;
	top: 0;
	left: 0;
}

[image-gallery] .gallery_card .resize-handle:hover {
	opacity: 1;
}

[data-can-move].gallery_card .resize-handle svg .resize_path_outline {
	fill: rgba(255,255,255,1);
}

[data-can-move].gallery_card .resize-handle svg .resize_path {
	fill: rgba(0,0,0,1);
}

[image-gallery="montessori"] .thumbnail_sizer{
	height: 0;
	width: 100%;
	position: relative;
	padding-bottom: 100%;
	pointer-events:none;
}


/* Images */



/* Site Menu Button */

#site_menu_button {
	display: block;
	text-decoration: none;
	pointer-events: auto;
	z-index: 9;
	vertical-align: top;
	cursor: pointer;
	box-sizing: content-box;
	font-family:  -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif, 'Icons';
}

#site_menu_button.custom_icon {
	 padding: 0;
	 line-height: 0;
}

#site_menu_button.custom_icon img {
	width: 100%;
	height: auto;
}

#site_menu.disabled #site_menu_button {
	display: none;
}

#site_menu.mobile_only #site_menu_button {
	display: none;
}

body.mobile #site_menu.mobile_only:not(.disabled) #site_menu_button:not(.active) {
	display: block;
}

/* Site Menu */

#site_menu_panel_container[data-type="cargo_menu"] #cargo_menu {
	display: block;
	position: fixed;
	top: 0; right: 0; bottom: 0; left: 0;
	z-index: 10;
	cursor: default;
	font-family:  -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif, 'Icons';
	line-height: 1.4;
}

#site_menu_panel {

	pointer-events: auto;
	position: absolute;
	z-index: 11;
	top: 0;
	bottom: 0;
	max-width: 400px;
	min-width: 300px;
	line-height: 1.4;
	font-size: 20px;

	background: rgba(20, 20, 20, 0.95);
	padding: 20px 30px 30px 30px;
	padding-bottom: 90px;
}

body.mobile #site_menu_panel {
	overflow-x: scroll;
	-webkit-overflow-scrolling: touch;
}
	
#site_menu[data-sitemenu-position="top-left"] #site_menu_panel,
#site_menu[data-sitemenu-position="bottom-left"] #site_menu_panel{
	left: 0;
}

#site_menu[data-sitemenu-position="top-right"] #site_menu_panel,
#site_menu[data-sitemenu-position="bottom-right"] #site_menu_panel{
	right: 0;
}

#site_menu[data-type="page"] #site_menu_panel {
	right: 0; left: 0;
	width: 100%;
	padding: 0;
	margin: 0;
	background: transparent;
}

#site_menu.open #site_menu_panel {
	display: block;
}

#site_menu_panel div {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

#site_menu_panel a {
	text-decoration: none;
	display: inline-block;
	color: rgba(255, 255, 255, 0.75);
}

#site_menu_panel div a.active {
	color: rgba(255,255,255,.4);
}

#site_menu_panel div.set-link > a {
	font-weight: bold;
}

#site_menu_panel div.set-link a + [data-set-wrapper] {
	margin-left: 20px;
}

#site_menu_panel div.page-link.home-link {
	margin-bottom: 28px;
}

#site_menu_panel > div.page-link:not(.hidden) + div.set-link,
#site_menu_panel > div.set-link.empty-set + div.page-link {
	margin-top: 28px;
}

#site_menu_panel > div.set-link a + [data-set-wrapper] div.page-link:last-child {
	margin-bottom: 28px;
}

#site_menu_panel div.hidden {
	display: none;
}

#site_menu_panel .close {
	display: block;
	position: absolute;
	top: 0; right: 0;
	right: 10px;
	font-size: 60px;
	line-height: 50px;
	font-weight: 200;
	color: rgba(255, 255, 255, 0.4);
	cursor: pointer;
}

body:not(.mobile) #site_menu_panel .close {
	display: none;
}

#site_menu_panel_container .page_container {
	position: fixed;
	top: 0; right: 0; left: 0;
	background: transparent;
	z-index: 9;
}


/*Loading animation*/
.loading[data-loading] {
  display: none;
  position: fixed;
  bottom: 8px; left: 8px;
  z-index: 100;
}