:root {
	--ek-text: #111;
	--ek-muted: #444;
	--ek-bg: #fff;
	--ek-gap: 1.75rem;
	--ek-max: 1180px;
	--ek-font-display: "Cinzel", "Times New Roman", serif;
	--accent: var(--ek-text);
}

body,
body.generate-is-dark {
	background: var(--ek-bg);
	color: var(--ek-text);
}

body,
button,
input,
select,
textarea {
	font-family: Georgia, "Times New Roman", serif;
}

.main-title,
.site-branding .main-title a,
.site-logo,
.main-navigation .main-nav ul li a,
.menu-toggle {
	font-family: var(--ek-font-display);
}

.site-header {
	background: var(--ek-bg);
	padding-top: 1.75rem;
	padding-bottom: 0;
}

.inside-header {
	padding-bottom: 0;
}

.site-branding {
	margin-bottom: 0;
}

@media (min-width: 769px) {
	.inside-header {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.site-branding {
		margin-bottom: 0.35rem;
	}

	.nav-float-right #site-navigation {
		margin-left: 0;
		width: 100%;
	}
}

.main-title {
	font-size: 2.15rem;
	letter-spacing: 0.18em;
	font-weight: 500;
	text-transform: uppercase;
}

.main-title a,
.main-title a:hover,
.main-title a:focus {
	color: var(--ek-text);
	text-decoration: none;
}

.site-description {
	display: none;
}

.main-navigation,
.main-navigation .inside-navigation {
	background: transparent;
	justify-content: center;
}

.main-navigation .main-nav > ul {
	justify-content: center;
}

.main-navigation .main-nav ul li a {
	font-size: 0.78rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 0.55rem 0.7rem;
	color: var(--ek-text);
	font-weight: 400;
}

.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
.main-navigation .main-nav ul li[class*="current"] > a {
	color: var(--ek-text);
	opacity: 1;
	text-decoration: underline;
	text-underline-offset: 0.42em;
	text-decoration-thickness: 1px;
}

.main-navigation .main-nav ul li a:focus-visible {
	outline: 2px solid var(--ek-text);
	outline-offset: 3px;
}

.separate-containers .inside-article,
.one-container .inside-article {
	padding: 0;
	background: transparent;
}

.ek-portfolio .entry-header,
.ek-portfolio .page-header,
.home .entry-header,
.home .entry-meta {
	display: none;
}

.page:not(.home) .entry-header {
	display: block;
	text-align: center;
	padding-top: 1rem;
}

.page:not(.home) .entry-title,
.ek-archive-title {
	font-family: var(--ek-font-display);
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 1.4rem;
}

.ek-archive-title {
	text-align: center;
	margin: 0 0 1.75rem;
}

.site-content {
	padding-top: 1.5rem;
}

.ek-wrap {
	width: min(100%, var(--ek-max));
	margin: 0 auto 4rem;
	overflow-x: clip;
}

.ek-page-content {
	max-width: 42rem;
	margin: 0 auto;
	text-align: center;
	font-size: 1.02rem;
	line-height: 1.65;
}

.ek-page-content:has(.ek-video-grid) {
	max-width: none;
}

.ek-page-content:has(.ek-contact) {
	max-width: 56rem;
	text-align: left;
}

.ek-page-content h1,
.ek-page-content h2 {
	font-family: var(--ek-font-display);
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 1.35rem;
}

.ek-page-content:has(.ek-contact) h2 {
	font-size: 1.12rem;
	margin: 0 0 0.8rem;
}

.ek-page-content:has(.ek-contact) h3 {
	font-family: var(--ek-font-display);
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 0.8rem;
	margin: 0 0 0.7rem;
}

.ek-contact a {
	color: inherit;
	text-underline-offset: 0.18em;
}

.ek-contact a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.ek-contact ul {
	margin: 0;
	padding-left: 1.15rem;
}

.ek-contact li + li {
	margin-top: 0.32em;
}

@media (max-width: 768px) {
	.ek-page-content:has(.ek-contact) {
		max-width: 100%;
	}
}

.site-footer {
	background: var(--ek-bg);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
}

.site-info {
	text-align: center;
}

/* Masonry: variable image heights, source order left-to-right. */
body.ek-portfolio .ek-grid {
	--ek-cols: 4;
	--ek-gutter: 1.35rem;
	display: block;
}

body.ek-portfolio .ek-grid.ek-grid--masonry:not(.is-masonry-ready) {
	opacity: 0;
}

body.ek-portfolio .ek-grid.is-masonry-ready {
	opacity: 1;
}

body.ek-portfolio .ek-grid__sizer,
body.ek-portfolio .ek-grid__item {
	width: calc((100% - (var(--ek-cols) - 1) * var(--ek-gutter)) / var(--ek-cols));
}

body.ek-portfolio .ek-grid__item {
	margin-bottom: 2.25rem;
}

body.ek-portfolio .ek-grid__gutter {
	width: var(--ek-gutter);
}

body.ek-portfolio .ek-grid__sizer,
body.ek-portfolio .ek-grid__gutter {
	pointer-events: none;
	height: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

@media (max-width: 900px) {
	body.ek-portfolio .ek-grid {
		--ek-cols: 3;
	}
}

@media (max-width: 768px) {
	body.ek-portfolio .ek-grid {
		--ek-cols: 2;
		--ek-gutter: 0.7rem;
	}

	body.ek-portfolio .ek-grid__item {
		margin-bottom: 1.1rem;
	}
}

@media (max-width: 480px) {
	body.ek-portfolio .ek-grid {
		--ek-cols: 1;
		--ek-gutter: 0;
	}

	body.ek-portfolio .ek-grid__item {
		margin-bottom: 1.35rem;
	}
}

@media (max-width: 768px) {
	.site-header {
		padding-top: 0.85rem;
	}

	.has-inline-mobile-toggle .inside-header {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		text-align: left;
		padding-top: 0.35rem;
		padding-bottom: 0.35rem;
	}

	.has-inline-mobile-toggle .site-branding {
		margin-bottom: 0;
		flex: 1 1 0;
		min-width: 0;
		max-width: calc(100% - 3.25rem);
		padding-right: 0.5rem;
	}

	.has-inline-mobile-toggle .main-title,
	.has-inline-mobile-toggle .main-title a {
		display: block;
		max-width: 100%;
		white-space: normal;
		line-height: 1;
	}

	.has-inline-mobile-toggle .mobile-menu-control-wrapper {
		flex: 0 0 auto;
		align-self: center;
		display: flex;
		align-items: center;
	}

	.has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex-grow: 0;
		line-height: 1;
		padding: 0.25rem 0.1rem 0.25rem 0.75rem;
		min-width: 44px;
		min-height: 44px;
		font-size: 19.5px;
	}

	.has-inline-mobile-toggle .mobile-menu-control-wrapper .menu-toggle .gp-icon svg {
		top: 0;
		width: 1em;
		height: 1em;
	}

	.has-inline-mobile-toggle #site-navigation.toggled {
		margin-top: 0.15rem;
	}

	.main-navigation .main-nav ul li a {
		line-height: 1.2;
		padding-top: 0.42rem;
		padding-bottom: 0.42rem;
	}

	.main-title {
		font-size: clamp(0.92rem, 5vw, 1.2rem);
		letter-spacing: 0.08em;
	}
}

.copyright a[href="#consent-change"],
.rcb-sc-link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.ek-page-content .rcb-sc-link {
	display: inline-block;
	margin: 0.15rem 0.75rem 0.15rem 0;
}

.ek-page-content .ek-video-grid {
	--ek-cols: 2;
	--ek-gutter: 1.35rem;
	display: block;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.ek-video-grid.ek-grid--masonry:not(.is-masonry-ready) {
	opacity: 0;
}

.ek-video-grid.is-masonry-ready {
	opacity: 1;
}

.ek-video-grid .ek-grid__sizer,
.ek-video-grid .ek-grid__item {
	width: calc((100% - (var(--ek-cols) - 1) * var(--ek-gutter)) / var(--ek-cols));
}

.ek-video-grid .ek-grid__item {
	margin-bottom: 2.25rem;
	min-width: 0;
}

.ek-video-grid .ek-grid__gutter {
	width: var(--ek-gutter);
}

.ek-video-grid .ek-grid__sizer,
.ek-video-grid .ek-grid__gutter {
	pointer-events: none;
	height: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

.ek-video-grid__item {
	position: relative;
	overflow: hidden;
	background: #111;
}

.ek-video-grid__item--landscape {
	aspect-ratio: 16 / 9;
}

.ek-video-grid__item--portrait {
	aspect-ratio: 9 / 16;
}

/* GeneratePress blocks sometimes add portrait + landscape; embed host wins. */
.ek-video-grid__item--portrait:has(iframe[src*="youtube"]),
.ek-video-grid__item--portrait:has(iframe[src*="vimeo"]) {
	aspect-ratio: 16 / 9;
}

/* Instagram: height comes from embed MEASURE postMessage (see masonry.js). */
.ek-video-grid__item--portrait:has(iframe[src*="instagram.com"]),
.ek-video-grid__item--portrait:has(blockquote.instagram-media),
.ek-video-grid__item.ek-video-grid__item--instagram {
	aspect-ratio: auto;
	height: auto;
	min-height: 16rem;
}

.ek-video-grid__item .instagram-media {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	margin: 0 !important;
	min-width: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

.ek-video-grid__item.ek-video-grid__item--instagram.is-ek-ig-sized {
	min-height: 0;
}

.ek-video-grid__item--ig-static {
	overflow: hidden;
}

.ek-video-grid__item--ig-static blockquote.ek-ig-static-card {
	background: #fff !important;
	border: 1px solid rgba(0, 0, 0, 0.08) !important;
	box-shadow: 0 0 1px rgba(0, 0, 0, 0.5), 0 1px 10px rgba(0, 0, 0, 0.15) !important;
	margin: 0 !important;
	max-width: none !important;
	min-width: 0 !important;
	width: 100% !important;
}

.ek-video-grid__item--ig-static .ek-video-grid__ig-static {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
	background: #111;
	color: #fff;
	font-family: var(--ek-font-display), Georgia, serif;
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
}

.ek-video-grid__item--ig-static .ek-video-grid__ig-static:hover,
.ek-video-grid__item--ig-static .ek-video-grid__ig-static:focus {
	color: #fff;
	text-decoration: underline;
}

.ek-video-grid__item--ig-fallback {
	aspect-ratio: 569 / 528;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #111;
}

.ek-video-grid__ig-fallback {
	padding: 1.25rem;
	color: #fff;
	font-family: var(--ek-font-display), Georgia, serif;
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
}

.ek-video-grid__ig-fallback:hover,
.ek-video-grid__ig-fallback:focus {
	color: #fff;
	text-decoration: underline;
}

.ek-video-grid__item iframe {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	border: 0;
	display: block;
	background: #111;
}

.ek-video-grid .rcb-content-blocker,
.ek-video-grid [class*="rcb-content-blocker"] {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
}

.ek-video-ph {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 1rem;
	border: 0;
	appearance: none;
	background: rgba(0, 0, 0, 0.28);
	color: #fff;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	font-family: var(--ek-font-display), Georgia, serif;
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ek-video-grid__item.is-ek-blocked .ek-video-ph {
	background: #111;
}

.ek-video-ph__poster {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}

.ek-video-ph__spin,
.ek-video-ph__text {
	position: relative;
	z-index: 1;
}

.ek-video-ph[hidden] {
	display: none;
}

.ek-video-ph:hover,
.ek-video-ph:focus,
.ek-video-ph:active {
	background: rgba(0, 0, 0, 0.42);
	color: #fff;
}

.ek-video-grid__item.is-ek-blocked .ek-video-ph:hover,
.ek-video-grid__item.is-ek-blocked .ek-video-ph:focus,
.ek-video-grid__item.is-ek-blocked .ek-video-ph:active {
	background: #1a1a1a;
}

.ek-video-ph:focus-visible {
	outline: 2px solid #fff;
	outline-offset: -8px;
}

.ek-video-ph__spin {
	display: none;
	width: 1.35rem;
	height: 1.35rem;
	border: 2px solid rgba(255, 255, 255, 0.22);
	border-top-color: #fff;
	border-radius: 50%;
	animation: ek-spin 0.7s linear infinite;
}

.ek-video-grid__item.is-ek-pending .ek-video-ph {
	background: transparent;
	cursor: default;
	pointer-events: none;
}

.ek-video-grid__item.is-ek-loading .ek-video-ph__spin {
	display: block;
}

.ek-video-grid__item.is-ek-loading .ek-video-ph {
	cursor: default;
}

@keyframes ek-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ek-video-ph__spin {
		animation: none;
		border-top-color: rgba(255, 255, 255, 0.22);
		border-right-color: #fff;
	}

	.ek-video-grid__item iframe {
		transition: none;
	}

	.ek-social-float a {
		transition: none;
	}
}

@media (max-width: 768px) {
	.ek-page-content .ek-video-grid {
		--ek-cols: 1;
		--ek-gutter: 0;
		height: auto !important;
	}

	.ek-page-content .ek-video-grid .ek-grid__sizer,
	.ek-page-content .ek-video-grid .ek-grid__item {
		width: 100% !important;
		max-width: 100%;
	}

	.ek-page-content .ek-video-grid .ek-grid__item {
		position: relative !important;
		left: auto !important;
		top: auto !important;
		margin-bottom: 1.35rem;
	}

	.ek-video-grid__item--portrait iframe {
		width: 100% !important;
		min-width: 100%;
	}
}

/* Site-wide social floating buttons (GeneratePress hook element). */
.ek-social-float {
	align-items: center;
	bottom: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	position: fixed;
	right: 1.5rem;
	z-index: 9990;
}

.ek-social-float a {
	align-items: center;
	border-radius: 50%;
	color: #fff;
	display: flex;
	height: 56px;
	justify-content: center;
	text-decoration: none;
	transition: background-color 0.2s ease, filter 0.2s ease, transform 0.2s ease;
	width: 56px;
}

.ek-social-float a:hover,
.ek-social-float a:focus-visible {
	color: #fff;
	transform: translateY(-2px);
}

.ek-social-float a:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.ek-social-float a .gb-shape svg {
	fill: currentColor;
	height: 28px;
	width: 28px;
}

.ek-instagram-float {
	background-image: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
	box-shadow: 0 4px 16px rgba(214, 36, 159, 0.4);
}

.ek-instagram-float:hover {
	filter: brightness(1.08);
}

.ek-facebook-float {
	background-color: #1877f2;
	box-shadow: 0 4px 16px rgba(24, 119, 242, 0.35);
}

.ek-facebook-float:hover {
	background-color: #166fe5;
}

@media (max-width: 767px) {
	.ek-social-float {
		bottom: 1rem;
		right: 1rem;
	}
}
