/* Kykkos Museum production base */
:root{--km-dark:#11100e;--km-paper:#eee9df;--km-gold:#b6a078;--km-muted:#756f65}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
body{margin:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%;height:auto}
a:focus-visible,button:focus-visible{outline:2px solid var(--km-gold);outline-offset:4px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:#fff;clip:auto!important;clip-path:none;color:#111;display:block;font-size:14px;height:auto;left:8px;line-height:normal;padding:12px 16px;top:8px;width:auto;z-index:100000}


/* WordPress legacy/editor alignment helpers.
   Keep existing page content aligned exactly as it was authored. */
.aligncenter,
.wp-caption.aligncenter,
figure.aligncenter {
	display: block;
	margin-left: auto !important;
	margin-right: auto !important;
}

img.aligncenter {
	display: block;
}

.alignleft {
	float: left;
	margin-right: 1.5em !important;
	margin-left: 0 !important;
}

.alignright {
	float: right;
	margin-left: 1.5em !important;
	margin-right: 0 !important;
}

@media (max-width: 700px) {
	.alignleft,
	.alignright {
		float: none;
		display: block;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}



/* =========================================================
   LEGACY CLASSIC-EDITOR IMAGE ROWS
   Older Kykkos pages were authored with several small images
   placed side-by-side in the Classic Editor. Preserve that
   intent on the front end instead of stacking each image.
========================================================= */
.km-page-content-shell .wp-caption.alignnone,
.km-news-content-shell .wp-caption.alignnone,
.km-page-content-shell figure.alignnone,
.km-news-content-shell figure.alignnone {
	display: inline-block;
	vertical-align: top;
	max-width: 100%;
	margin: 28px 24px 28px 0 !important;
}

/* A Classic Editor paragraph containing multiple images should
   behave like the horizontal row visible in the editor. */
.km-page-content-shell p:has(> img ~ img),
.km-news-content-shell p:has(> img ~ img),
.km-page-content-shell p:has(> a > img):has(> a ~ a > img),
.km-news-content-shell p:has(> a > img):has(> a ~ a > img),
.km-page-content-shell p:has(> img):has(> a > img),
.km-news-content-shell p:has(> img):has(> a > img) {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 24px;
	width: 100%;
	margin-top: 38px;
	margin-bottom: 38px;
}

.km-page-content-shell p:has(> img ~ img) > img,
.km-news-content-shell p:has(> img ~ img) > img,
.km-page-content-shell p:has(> a > img):has(> a ~ a > img) > a,
.km-news-content-shell p:has(> a > img):has(> a ~ a > img) > a,
.km-page-content-shell p:has(> img):has(> a > img) > img,
.km-page-content-shell p:has(> img):has(> a > img) > a,
.km-news-content-shell p:has(> img):has(> a > img) > img,
.km-news-content-shell p:has(> img):has(> a > img) > a {
	flex: 1 1 0;
	min-width: 0;
	margin: 0 !important;
}

.km-page-content-shell p:has(> img ~ img) > img,
.km-news-content-shell p:has(> img ~ img) > img,
.km-page-content-shell p:has(> a > img):has(> a ~ a > img) > a img,
.km-news-content-shell p:has(> a > img):has(> a ~ a > img) > a img,
.km-page-content-shell p:has(> img):has(> a > img) > img,
.km-page-content-shell p:has(> img):has(> a > img) > a img,
.km-news-content-shell p:has(> img):has(> a > img) > img,
.km-news-content-shell p:has(> img):has(> a > img) > a img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 760px) {
	.km-page-content-shell .wp-caption.alignnone,
	.km-news-content-shell .wp-caption.alignnone,
	.km-page-content-shell figure.alignnone,
	.km-news-content-shell figure.alignnone {
		display: block;
		margin: 30px auto !important;
	}

	.km-page-content-shell p:has(> img ~ img),
	.km-news-content-shell p:has(> img ~ img),
	.km-page-content-shell p:has(> a > img):has(> a ~ a > img),
	.km-news-content-shell p:has(> a > img):has(> a ~ a > img),
	.km-page-content-shell p:has(> img):has(> a > img),
	.km-news-content-shell p:has(> img):has(> a > img) {
		flex-wrap: wrap;
		gap: 14px;
	}

	.km-page-content-shell p:has(> img ~ img) > img,
	.km-news-content-shell p:has(> img ~ img) > img,
	.km-page-content-shell p:has(> a > img):has(> a ~ a > img) > a,
	.km-news-content-shell p:has(> a > img):has(> a ~ a > img) > a,
	.km-page-content-shell p:has(> img):has(> a > img) > img,
	.km-page-content-shell p:has(> img):has(> a > img) > a,
	.km-news-content-shell p:has(> img):has(> a > img) > img,
	.km-news-content-shell p:has(> img):has(> a > img) > a {
		flex: 1 1 calc(50% - 7px);
	}
}

/* =========================================================
   GLOBAL CONTENT IMAGE LIGHTBOX
   Used by normal pages and single news posts. It preserves
   non-image links and opens direct image files in-page.
========================================================= */
.km-lightbox-open {
	overflow: hidden !important;
}

.km-lightbox-trigger,
.km-page-content-shell a.km-lightbox-trigger,
.km-news-content-shell a.km-lightbox-trigger {
	cursor: zoom-in;
}

.km-lightbox {
	position: fixed;
	inset: 0;
	z-index: 200000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 54px 70px 38px;
	background: rgba(8, 8, 7, .94);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .24s ease, visibility .24s ease;
}

.km-lightbox.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.km-lightbox-dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 0;
}

.km-lightbox-image {
	display: block;
	max-width: 100%;
	max-height: calc(100vh - 125px);
	width: auto;
	height: auto;
	object-fit: contain;
	box-shadow: 0 20px 70px rgba(0,0,0,.34);
}

.km-lightbox-caption {
	max-width: 980px;
	margin: 18px auto 0;
	font-family: "STIX Two Text", Georgia, serif;
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
	color: rgba(238,233,223,.78);
}

.km-lightbox-caption:empty {
	display: none;
}

.km-lightbox-close {
	position: absolute;
	top: 18px;
	right: 22px;
	z-index: 2;
	width: 48px;
	height: 48px;
	border: 0;
	padding: 0;
	background: transparent;
	color: #eee9df;
	font-family: Arial, sans-serif;
	font-size: 34px;
	font-weight: 200;
	line-height: 48px;
	text-align: center;
	cursor: pointer;
	transition: opacity .2s ease, transform .2s ease;
}

.km-lightbox-close:hover {
	opacity: .7;
	transform: rotate(4deg);
}

@media (max-width: 700px) {
	.km-lightbox {
		padding: 62px 18px 28px;
	}

	.km-lightbox-image {
		max-height: calc(100vh - 135px);
	}

	.km-lightbox-caption {
		margin-top: 14px;
		font-size: 13px;
	}

	.km-lightbox-close {
		top: 8px;
		right: 9px;
		width: 44px;
		height: 44px;
		line-height: 44px;
		font-size: 31px;
	}
}


/* =========================================================
   V1.0.5 — ROBUST LEGACY CLASSIC-EDITOR IMAGE ROWS
   JS adds .km-legacy-image-row only to image-only legacy blocks,
   avoiding accidental layout changes to paragraphs containing text.
========================================================= */
.km-page-content-shell .km-legacy-image-row,
.km-news-content-shell .km-legacy-image-row {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	gap: 22px !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 36px 0 !important;
	padding: 0 !important;
	clear: both;
}

.km-page-content-shell .km-legacy-image-row > *,
.km-news-content-shell .km-legacy-image-row > * {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	float: none !important;
}

.km-page-content-shell .km-legacy-image-row > img,
.km-news-content-shell .km-legacy-image-row > img,
.km-page-content-shell .km-legacy-image-row > a > img,
.km-news-content-shell .km-legacy-image-row > a > img,
.km-page-content-shell .km-legacy-image-row > * img,
.km-news-content-shell .km-legacy-image-row > * img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	float: none !important;
}

/* Top-level image-only blocks grouped by JS. */
.km-page-content-shell > .km-legacy-image-row-grouped > .wp-caption,
.km-news-content-shell > .km-legacy-image-row-grouped > .wp-caption,
.km-page-content-shell > .km-legacy-image-row-grouped > figure,
.km-news-content-shell > .km-legacy-image-row-grouped > figure,
.km-page-content-shell > .km-legacy-image-row-grouped > p,
.km-news-content-shell > .km-legacy-image-row-grouped > p {
	display: block !important;
}

@media (max-width: 760px) {
	.km-page-content-shell .km-legacy-image-row,
	.km-news-content-shell .km-legacy-image-row {
		flex-wrap: wrap !important;
		gap: 14px !important;
	}
	.km-page-content-shell .km-legacy-image-row > *,
	.km-news-content-shell .km-legacy-image-row > * {
		flex: 1 1 calc(50% - 7px) !important;
	}
}

@media (max-width: 480px) {
	.km-page-content-shell .km-legacy-image-row > *,
	.km-news-content-shell .km-legacy-image-row > * {
		flex-basis: 100% !important;
	}
}


/* =========================================================
   V1.0.7 — FULL-RESOLUTION LIGHTBOX
   The JS resolves the original/highest-resolution WordPress image.
   The popup then uses all available viewport space without stretching
   beyond the image's natural aspect ratio.
========================================================= */
.km-lightbox-dialog {
	max-width: none;
}
.km-lightbox-image {
	max-width: calc(100vw - 100px);
	max-height: calc(100vh - 125px);
	width: auto;
	height: auto;
	object-fit: contain;
}
@media (max-width: 700px) {
	.km-lightbox-image {
		max-width: calc(100vw - 28px);
		max-height: calc(100vh - 115px);
	}
}
