/* Modern photo gallery, scoped to gallery.html. */
.gallery-page .page {
	width:min(960px, 100%);
}

.gallery-page .body .about-where {
	padding:0 0 1px;
}

.gallery-page .body .about-where .gallery-shell {
	background:none;
	box-sizing:border-box;
	float:none;
	padding:34px 48px 52px;
	width:100%;
}

.gallery-page .body .about-where .gallery-shell div {
	background:none;
	box-sizing:border-box;
	float:none;
	padding:0;
	position:static;
	width:auto;
}

.gallery-page .gallery-heading {
	margin:0 auto 30px;
	max-width:700px;
	text-align:center;
}

.gallery-page .body .about-where .gallery-shell .gallery-heading .gallery-heading__eyebrow {
	color:#a98b52;
	font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
	font-size:11px;
	font-weight:bold;
	letter-spacing:0.18em;
	margin:0 0 8px;
	text-transform:uppercase;
}

.gallery-page .gallery-heading h1 {
	color:#164372;
	font-family:'pt_serif_captionitalic', Georgia, serif;
	font-size:36px;
	font-weight:400;
	line-height:1.2;
	margin:0 0 12px;
	text-shadow:0 1px 0 #fff;
}

.gallery-page .body .about-where .gallery-shell .gallery-heading p {
	color:#6f7f8b;
	font-size:12px;
	line-height:1.7;
	margin:3px auto;
}

.gallery-page .body .about-where .gallery-shell .photo-gallery-grid {
	display:grid;
	gap:18px;
	grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
}

.gallery-page .photo-gallery-card {
	background:#fff;
	border:1px solid rgba(22, 67, 114, 0.12);
	box-shadow:0 5px 14px rgba(37, 57, 73, 0.13);
	box-sizing:border-box;
	color:#416277;
	display:block;
	overflow:hidden;
	padding:8px;
	text-decoration:none;
	transition:box-shadow 180ms ease, transform 180ms ease;
}

.gallery-page .photo-gallery-card:hover {
	box-shadow:0 10px 24px rgba(37, 57, 73, 0.22);
	transform:translateY(-3px);
}

.gallery-page .photo-gallery-card:focus-visible {
	box-shadow:0 0 0 4px rgba(36, 110, 165, 0.28);
	outline:2px solid #246ea5;
	outline-offset:2px;
}

.gallery-page .body .about-where .gallery-shell .photo-gallery-card img {
	aspect-ratio:3 / 2;
	border:0;
	display:block;
	height:auto;
	object-fit:cover;
	width:100%;
}

.gallery-page .body .about-where .gallery-shell .gallery-message {
	background:#fff;
	border:1px solid #d1d6db;
	color:#416277;
	margin:20px 0;
	padding:18px;
	text-align:center;
}

.gallery-page.gallery-modal-open {
	overflow:hidden;
}

.gallery-page .gallery-lightbox {
	background:#102c42;
	border:0;
	border-radius:3px;
	box-shadow:0 24px 80px rgba(0, 0, 0, 0.45);
	box-sizing:border-box;
	color:#fff;
	margin:auto;
	max-height:calc(100vh - 32px);
	max-width:920px;
	overflow:hidden;
	padding:0;
	width:calc(100vw - 32px);
}

.gallery-page .gallery-lightbox::backdrop {
	background:rgba(7, 20, 30, 0.88);
}

.gallery-page .gallery-lightbox:not([open]) {
	display:none;
}

.gallery-page .body .about-where .gallery-shell .gallery-lightbox__layout {
	align-items:center;
	display:grid;
	grid-template-columns:64px minmax(0, 1fr) 64px;
	min-height:300px;
	padding:30px 12px 16px;
	position:relative;
}

.gallery-page .gallery-lightbox button {
	-webkit-tap-highlight-color:transparent;
	background:rgba(255, 255, 255, 0.09);
	border:1px solid rgba(255, 255, 255, 0.24);
	border-radius:50%;
	color:#fff;
	cursor:pointer;
	font-family:Arial, Helvetica, sans-serif;
	padding:0;
	transition:background-color 150ms ease, border-color 150ms ease;
}

.gallery-page .gallery-lightbox button:hover {
	background:rgba(255, 255, 255, 0.2);
	border-color:rgba(255, 255, 255, 0.55);
}

.gallery-page .gallery-lightbox button:focus-visible {
	outline:3px solid #ebcc90;
	outline-offset:3px;
}

.gallery-page .gallery-lightbox__close {
	font-size:26px;
	height:38px;
	line-height:34px;
	position:absolute;
	right:12px;
	top:10px;
	width:38px;
	z-index:2;
}

.gallery-page .gallery-lightbox__previous,
.gallery-page .gallery-lightbox__next {
	font-size:48px;
	height:58px;
	line-height:48px;
	margin:auto;
	width:48px;
}

.gallery-page .gallery-lightbox__figure {
	margin:0;
	min-width:0;
	text-align:center;
}

.gallery-page .body .about-where .gallery-shell .gallery-lightbox__image-wrap {
	align-items:center;
	display:flex;
	justify-content:center;
	min-height:240px;
	position:relative;
}

.gallery-page .gallery-lightbox__image-wrap::after {
	border:3px solid rgba(255, 255, 255, 0.25);
	border-radius:50%;
	border-top-color:#fff;
	content:"";
	display:none;
	height:28px;
	position:absolute;
	width:28px;
}

.gallery-page .gallery-lightbox.is-loading .gallery-lightbox__image-wrap::after {
	animation:gallery-spinner 700ms linear infinite;
	display:block;
}

.gallery-page .gallery-lightbox.is-loading img {
	opacity:0.28;
}

.gallery-page .body .about-where .gallery-shell .gallery-lightbox__figure img {
	background:#e8edf0;
	border:8px solid #fff;
	box-shadow:0 8px 28px rgba(0, 0, 0, 0.35);
	box-sizing:border-box;
	display:block;
	height:auto;
	margin:auto;
	max-height:calc(100vh - 150px);
	max-width:100%;
	opacity:1;
	transition:opacity 150ms ease;
	width:auto;
}

.gallery-page .gallery-lightbox__figure figcaption {
	color:#c7d1d8;
	display:flex;
	font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
	font-size:11px;
	justify-content:space-between;
	letter-spacing:0.04em;
	padding:12px 2px 0;
	text-transform:uppercase;
}

.gallery-page .body .about-where .gallery-shell .gallery-lightbox__figure figcaption span {
	background:none;
	display:inline;
	height:auto;
	position:static;
	width:auto;
}

@keyframes gallery-spinner {
	to {
		transform:rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.gallery-page .photo-gallery-card,
	.gallery-page .gallery-lightbox button,
	.gallery-page .gallery-lightbox__figure img {
		transition:none;
	}
}

@media (max-width:700px) {
	.gallery-page .page {
		margin-bottom:0;
	}

	.gallery-page .header {
		height:112px;
	}

	.gallery-page .header a#logo {
		left:50%;
		transform:translateX(-50%);
	}

	.gallery-page .header a#logo img {
		height:112px;
		width:112px;
	}

	.gallery-page .header > div {
		display:none;
	}

	.gallery-page .body .about-where .gallery-shell {
		padding:28px 20px 38px;
	}

	.gallery-page .gallery-heading {
		margin-bottom:23px;
	}

	.gallery-page .gallery-heading h1 {
		font-size:31px;
	}

	.gallery-page .body .about-where .gallery-shell .photo-gallery-grid {
		gap:12px;
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.gallery-page .photo-gallery-card {
		padding:6px;
	}

	.gallery-page .gallery-lightbox {
		max-height:calc(100vh - 16px);
		width:calc(100vw - 16px);
	}

	.gallery-page .body .about-where .gallery-shell .gallery-lightbox__layout {
		grid-template-columns:44px minmax(0, 1fr) 44px;
		padding:48px 4px 12px;
	}

	.gallery-page .gallery-lightbox__previous,
	.gallery-page .gallery-lightbox__next {
		font-size:39px;
		height:48px;
		width:38px;
	}

	.gallery-page .body .about-where .gallery-shell .gallery-lightbox__figure img {
		border-width:5px;
		max-height:calc(100vh - 170px);
	}

	.gallery-page .gallery-lightbox__figure figcaption {
		display:block;
		line-height:1.7;
	}

	.gallery-page .body .about-where .gallery-shell .gallery-lightbox__figure figcaption span {
		display:block;
	}

	.gallery-page .footer div div {
		height:auto;
		min-height:110px;
		overflow:hidden;
		text-align:center;
	}

	.gallery-page .footer div div ul {
		display:flex;
		float:none;
		justify-content:center;
		margin:0;
		padding:12px 0 4px;
	}

	.gallery-page .footer div div p {
		float:none;
		margin:7px 12px 0;
	}

	.gallery-page .footer div div div.connect {
		float:none;
		margin:9px auto 0;
		width:19px;
	}

	.gallery-page .footer div div div.connect a#fb {
		margin:0;
	}
}

@media (max-width:360px) {
	.gallery-page .body .about-where .gallery-shell {
		padding-left:14px;
		padding-right:14px;
	}

	.gallery-page .body .about-where .gallery-shell .photo-gallery-grid {
		gap:9px;
	}
}
