/* ==========================================================================
   Fonts
   ========================================================================== */

@font-face {
	font-family: 'Fedra Sans Arm';
	src: url('../fonts/FedraSansArm-Book.woff2') format('woff2'),
	     url('../fonts/FedraSansArm-Book.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Fedra Sans Arm';
	src: url('../fonts/FedraSansArm-Bold.woff2') format('woff2'),
	     url('../fonts/FedraSansArm-Bold.woff') format('woff');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}


/* ==========================================================================
   Variables
   ========================================================================== */

:root {
	/* Colors */
	--color-black:      #231F20;
	--color-dark:       #474034;
	--color-dark-text:  #2d3648;
	--color-dark-border:#1a202c;
	--color-cream:      #EDE8DE;
	--color-orange:     #F25E0D;
	--color-orange-hover: #d94e00;
	--color-white:      #ffffff;
	--color-bg:         #f7f9fc;
	--color-text-muted: #717d96;
	--color-border:     #cbd2e0;

	/* Typography */
	--font-primary: 'Fedra Sans Arm', sans-serif;
	--font-ui:      'Inter', sans-serif;

	/* Layout */
	--container-max:     1440px;
	--container-pad:     clamp(20px, 6.88vw, 104px); /* 104/1512 */

	/* Transitions */
	--ease: 0.2s ease;
}


/* ==========================================================================
   Reset & Base
   ========================================================================== */

*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: var(--font-primary);
	font-weight: 400;
	color: var(--color-dark);
	line-height: 1.6;
}
body.is-front-page {
	background: #1e1e1e;
}

body.single-monument {
	background: #fff;
}

img, video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

ul, ol {
	list-style: none;
}

button {
	cursor: pointer;
	border: none;
	background: none;
	font-family: inherit;
}

input, select, textarea {
	font-family: inherit;
}


/* ==========================================================================
   Layout
   ========================================================================== */

.container {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--container-pad);
}

.main-content {
	min-height: 60vh;
}


/* ==========================================================================
   Typography
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-primary);
	font-weight: 700;
	line-height: 1.2;
	color: var(--color-black);
}

h1 { font-size: clamp(2rem,   4vw,  3.25rem); }
h2 { font-size: clamp(1.75rem, 3vw,  2.5rem);  }
h3 { font-size: clamp(1.25rem, 2vw,  1.5rem);  }

p {
	font-size: 1.125rem;
	line-height: 1.7;
	margin-bottom: 1.7em;
}


/* ==========================================================================
   Buttons
   ========================================================================== */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 24px;
	font-family: var(--font-primary);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
	border-radius: 0;
	border: 2px solid transparent;
	transition: background var(--ease), color var(--ease), border-color var(--ease);
	cursor: pointer;
	white-space: nowrap;
}

.btn--lg {
	padding: 16px 24px;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0;
}

.btn__icon {
	flex-shrink: 0;
	display: block;
}

.btn--outline-orange {
	background: transparent;
	color: var(--color-orange);
	border: 1px solid var(--color-orange);
}

.btn--outline-orange:hover,
.btn--outline-orange:focus-visible {
	background: var(--color-orange);
	color: var(--color-white);
}

.btn--primary {
	background: var(--color-orange);
	color: var(--color-white);
	border-color: var(--color-orange);
}

.btn--primary:hover,
.btn--primary:focus-visible {
	background: var(--color-orange-hover);
	border-color: var(--color-orange-hover);
}

.btn--outline {
	background: transparent;
	color: var(--color-black);
	border-color: var(--color-black);
}

.btn--outline:hover,
.btn--outline:focus-visible {
	background: var(--color-black);
	color: var(--color-white);
}

.btn--outline-light {
	background: transparent;
	color: var(--color-cream);
	border-color: var(--color-cream);
}

.btn--outline-light:hover,
.btn--outline-light:focus-visible {
	background: var(--color-cream);
	color: var(--color-black);
}

.btn--sm {
	padding: 7px 16px;
	font-size: 0.8rem;
}


/* ==========================================================================
   Site Header
   ========================================================================== */

.site-header {
	background: var(--color-cream);
	position: sticky;
	top: 0;
	z-index: 200;
	border-bottom: 1px solid rgba(71, 64, 52, 0.12);
}

.site-header .container {
	max-width: none;
	padding: 0 104px;
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 32px;
}

/* Logo */
.site-logo {
	flex-shrink: 0;
	display: flex;
	align-items: center;
}

.site-logo img {
	width: 220px;
	height: 60px;
}

/* Nav */
.site-nav {
	margin-left: auto;
}

.site-nav__list {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 36px;
}

.site-nav__list li a {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.058vw, 16px);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-black);
	transition: color var(--ease);
	padding-bottom: 16px;
	border-bottom: 2px solid transparent;
}

.site-nav__list li a:hover,
.site-nav__list li.current-menu-item a {
	color: var(--color-cream);
	border-bottom-color: var(--color-cream);
}

.site-nav__list li.current-menu-item a {
	color: var(--color-cream);
	border-bottom-color: var(--color-cream);
}

/* Language dropdown (Polylang) */
.site-nav__list .menu-item-has-children {
	position: relative;
}
.site-nav__list .menu-item-has-children > a::before {
	content: '';
	display: inline-block;
	width: 0;
	height: 0;
	margin-right: 5px;
	vertical-align: middle;
	border-top: 4px solid currentColor;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	transition: transform var(--ease);
}
.site-nav__list .menu-item-has-children:hover > a::before {
	transform: rotate(180deg);
}
.site-nav__list .menu-item-has-children > a {
	border-bottom-color: transparent !important;
}
.site-nav__list .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 120px;
	background: rgba(35, 31, 32, 0.92);
	padding: 8px 0;
	list-style: none;
	z-index: 300;
}
.site-nav__list .menu-item-has-children:hover .sub-menu {
	display: block;
}
.site-nav__list .sub-menu li a {
	display: block;
	padding: 8px 16px;
	border-bottom: none;
	white-space: nowrap;
	color: rgba(237, 232, 222, 0.85);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.site-nav__list .sub-menu li a:hover {
	color: var(--color-cream);
	background: rgba(255, 255, 255, 0.08);
	border-bottom: none;
}

/* Header actions */
.site-header__actions {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 16px;
}

/* Mobile nav toggle (hamburger) */
.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	padding: 4px;
	margin-left: auto;
	z-index: 600;
	position: relative;
}

.nav-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--color-cream);
	transition: transform var(--ease), opacity var(--ease);
}



/* Hamburger → X */
.nav-toggle[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}
.nav-toggle[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Nav drawer — desktop: inline */
.site-nav-drawer {
	display: contents;
}

.nav-drawer__close {
	display: none;
}

/* Nav overlay */
.nav-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	z-index: 490;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.nav-overlay.is-open {
	opacity: 1;
}

@media (max-width: 768px) {
	.nav-toggle {
		display: flex;
	}

	.site-header .container {
		padding: 0 20px;
	}

	.hero__description {
		display: none;
	}

	/* Drawer panel */
	.site-nav-drawer {
		display: flex;
		flex-direction: column;
		gap: 32px;
		position: fixed;
		top: 0;
		right: 0;
		width: 75%;
		max-width: 320px;
		height: 100vh;
		background: rgba(35, 31, 32, 0.92);
		backdrop-filter: blur(8px);
		padding: 72px 24px 40px;
		box-sizing: border-box;
		z-index: 500;
		transform: translateX(100%);
		transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
		overflow-y: auto;
	}

	.site-nav-drawer.is-open {
		transform: translateX(0);
	}

	/* Nav list inside drawer */
	.site-nav-drawer .site-nav__list {
		flex-direction: column;
		align-items: flex-start;
		gap: 24px;
	}

	.site-nav-drawer .site-nav__list li a {
		font-size: 1.125rem;
		padding-bottom: 0;
		border-bottom: none;
	}

	/* Actions inside drawer */
	.site-nav-drawer .site-header__actions {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		margin-top: 0;
	}

	/* Reset site-nav margin from desktop */
	.site-nav-drawer .site-nav {
		margin-left: 0;
	}

	/* Language switcher — hide parent link, always show sub-items */
	.site-nav-drawer .menu-item-has-children > a {
		display: none;
	}

	.site-nav-drawer .sub-menu {
		display: block;
		position: static;
		background: transparent;
		padding: 0;
	}

	.site-nav-drawer .sub-menu li a {
		padding: 4px 0;
		background: transparent;
	}

	.site-nav-drawer .sub-menu .current-lang a {
		color: var(--color-orange);
	}

	/* Admin bar offset for drawer */
	.admin-bar .site-nav-drawer {
		top: 46px;
		height: calc(100vh - 46px);
	}

}

/* Admin bar offset */
.admin-bar .site-header {
	top: 32px;
}
.admin-bar .site-nav-drawer {
	top: 32px;
	height: calc(100vh - 32px);
}
@media screen and (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
	.admin-bar .site-nav-drawer {
		top: 46px;
		height: calc(100vh - 46px);
	}
}

/* Transparent gradient header — applies to all pages */
.site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 182px;
	background: linear-gradient(to bottom, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 100%);
	border-bottom: none;
}

.site-header__inner {
	height: 182px;
	padding: 12px 0 73px;
	align-items: center;
	box-sizing: border-box;
}

.site-logo img {
	filter: brightness(0) invert(1);
}

.site-nav__list li a {
	color: rgba(237, 232, 222, 0.85);
	border-bottom-color: transparent;
}

.site-nav__list li a:hover,
.site-nav__list li.current-menu-item a {
	color: var(--color-cream);
}

.site-header__actions .btn--outline {
	color: var(--color-orange);
	border-color: var(--color-orange);
}

.site-header__actions .btn--outline:hover,
.site-header__actions .btn--outline:focus-visible {
	background: var(--color-orange);
	color: var(--color-white);
}

.nav-toggle span {
	background: var(--color-cream);
}


/* ==========================================================================
   Hero
   ========================================================================== */

.hero {
	position: relative;
	width: 100%;
	background: #000;
	margin-bottom: 10px;
	min-height: clamp(400px, 54.9vw, 830px); /* 830/1512 */
	display: flex;
	flex-direction: column;
	justify-content: flex-end; /* content anchored to bottom (Figma: MAX) */
	padding: clamp(32px, 4.1vw, 62px) var(--container-pad); /* 62/1512 */
	overflow: hidden;
	background: #000;
}

.hero__bg {
	position: absolute;
	inset: 0;
}

.hero__bg-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 1.2s ease;
}

.hero__bg-img--active {
	opacity: 1;
}

.hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 0.4s ease;
}

.hero__video--active {
	opacity: 1;
}

.hero__content {
	position: relative;
	z-index: 2;
	max-width: 640px; /* Figma: heading bbox w=640 */
}

.hero__title {
	font-family: var(--font-primary);
	font-size: clamp(24px, 3.17vw, 48px); /* 48/1512 */
	line-height: 1.2;
	letter-spacing: 0.01em;
	font-weight: 700;
	color: #f7f9fc;
	margin: 0;
}

.hero__description {
	font-family: var(--font-primary);
	font-size: clamp(14px, 1.19vw, 18px); /* 18/1512 */
	line-height: 1.5;
	letter-spacing: -0.01em;
	font-weight: 400;
	color: #f7f9fc;
	max-width: 600px;
	margin: clamp(20px, 2.65vw, 40px) 0 0; /* 40/1512 */
}

.hero__actions {
	margin-top: 40px; /* Figma: 40px gap between body and buttons */
}


/* ==========================================================================
   Search & Map
   ========================================================================== */

.search-map {
	position: relative;
	width: 100%;
	display: flex;
	align-items: stretch;
	min-height: clamp(400px, 48.9vw, 740px); /* 740/1512 */
	background: #fff;
	overflow: hidden;
	margin-bottom: 10px;
}
.single-monument .search-map {
	border-top: 4px solid #1a202c;
	border-bottom: 4px solid #1a202c;
}

/* Map fills the remaining width and stretches to sidebar height */
.search-map__map {
	flex: 1;
	position: relative;
	z-index: 1;
}

/* Leaflet fills the map div */
.search-map__map .leaflet-container {
	position: absolute;
	inset: 0;
}

/* Left sidebar: 328px, cream bg — determines section height */
.search-map__sidebar {
	order: -1;
	flex-shrink: 0;
	width: clamp(200px, 21.7vw, 328px); /* 328/1512 */
	background: #ede8de;
	border-right: 4px solid #1a202c;
	z-index: 10;
	padding: clamp(24px, 2.78vw, 42px) clamp(16px, 2.65vw, 40px); /* 42/1512, 40/1512 */
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}

.search-map__heading {
	font-family: var(--font-primary);
	font-size: clamp(20px, 2.12vw, 32px); /* 32/1512 */
	line-height: 1.3;
	font-weight: 700;
	color: #2d3648;
	margin: 0 0 46px; /* Figma: 46px gap to first input */
}

.search-map__form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.search-map__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.search-map__label {
	font-family: var(--font-primary);
	font-size: clamp(12px, 0.93vw, 14px); /* 14/1512 */
	font-weight: 700;
	line-height: 1.5;
	color: #2d3648;
}

.search-map__input-wrap {
	position: relative;
}

.search-map__input-icon {
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	pointer-events: none;
}

/* inputs: w=248 = sidebar(328) - padding-left(40) - padding-right(40) */
.search-map__input,
.search-map__select {
	width: 100%;
	height: 48px;
	padding: 0 16px;
	border: 2px solid #cbd2e0;
	background: #fff;
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	color: #2d3648;
	border-radius: 6px; /* Figma: cornerRadius=6 */
	outline: none;
	appearance: none;
	transition: border-color var(--ease);
}

.search-map__input:focus,
.search-map__input:focus-visible,
.search-map__select:focus,
.search-map__select:focus-visible {
	outline: none;
	border-color: var(--color-orange);
}

.search-map__select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232d3648' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 40px;
	cursor: pointer;
}

/* Type picker custom dropdown */
.type-picker {
	position: relative;
	width: 100%;
}

.type-picker__btn {
	width: 100%;
	height: 48px;
	padding: 0 16px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	cursor: pointer;
	font-family: var(--font-secondary);
	font-size: clamp(12px, 0.93vw, 14px);
	color: #2d3648;
	text-align: left;
	transition: border-color var(--ease);
}

.type-picker__btn:focus-visible {
	outline: none;
	border-color: var(--color-orange);
}

.type-picker__btn[aria-expanded="true"] {
	border-color: var(--color-orange);
}

.type-picker__current {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	flex: 1;
}

.type-picker__current-icon {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	display: none;
}

.type-picker__current-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.type-picker__current-icon--visible {
	display: block;
}

.type-picker__current-label {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.type-picker__arrow {
	flex-shrink: 0;
	transition: transform 0.2s ease;
	color: #6b7280;
}

.type-picker__btn[aria-expanded="true"] .type-picker__arrow {
	transform: rotate(180deg);
}

.type-picker__list {
	display: none;
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 4px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
	list-style: none;
	margin: 0;
	padding: 4px 0;
	z-index: 100;
	max-height: 240px;
	overflow-y: auto;
}

.type-picker__list--open {
	display: block;
}

.type-picker__item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	cursor: pointer;
	font-family: var(--font-secondary);
	font-size: clamp(12px, 0.93vw, 14px);
	color: #2d3648;
	transition: background var(--ease);
}

.type-picker__item:hover,
.type-picker__item--selected {
	background: #f3f4f6;
}

.type-picker__item--selected {
	color: var(--color-orange);
}

.type-picker__item-icon {
	width: 20px;
	height: 20px;
	object-fit: contain;
	flex-shrink: 0;
}

.search-map__submit {
	align-self: flex-start;
	padding: 8px 12px;
	font-size: clamp(12px, 0.93vw, 14px); /* 14/1512 */
	letter-spacing: 0;
	border-width: 1px;
	border-radius: 0;
}

.search-map__form-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.search-map__reset {
	background: none;
	border: none;
	padding: 0;
	font-family: var(--font-secondary);
	font-size: clamp(12px, 0.93vw, 14px);
	color: var(--color-orange);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.search-map__reset:hover {
	color: var(--color-dark);
}

.search-map__results-count {
	margin: 12px 0 0;
	font-family: var(--font-secondary);
	font-size: clamp(12px, 0.93vw, 14px);
	color: var(--color-orange);
	font-weight: 600;
}

/* Right card: 408px, white bg, overlaid on map */
.search-map__card {
	position: absolute;
	top: 0;
	right: 0;
	width: clamp(260px, 27vw, 408px); /* 408/1512 */
	height: 100%;
	background: #fff;
	border-left: 2px solid #1a202c;
	z-index: 10;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	transform: translateX( 100% );
	transition: transform 320ms cubic-bezier( 0.25, 0.46, 0.45, 0.94 );
}

.search-map__card--visible {
	transform: translateX( 0 );
}

.search-map__card[hidden] {
	display: none;
}

.search-map__card[hidden] {
	display: none;
}

.search-map__card-image-wrap {
	width: 100%;
	height: 220px; /* Figma: image h=220 */
	flex-shrink: 0;
	overflow: hidden;
}

.search-map__card-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.search-map__card-image--placeholder {
	background: var(--color-border);
}

.search-map__card-body {
	padding: 35.33px;
}

.search-map__card-icon-wrap {
	margin-bottom: 27.33px;
}

.search-map__card-icon {
	display: block;
	width: 32px;
	height: 32px;
	object-fit: contain;
}

.search-map__card-title {
	font-family: var(--font-primary);
	font-size: 24px;
	line-height: 1.4;
	font-weight: 700;
	color: #2d3648;
	margin: 0 0 16px;
}

.search-map__card-title a {
	color: inherit;
}

.search-map__card-title a:hover {
	color: var(--color-orange);
}

.search-map__card-text {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	font-weight: 500;
	line-height: 1.5;
	color: #717d96;
	margin: 0 0 24px;
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.search-map__card-read-more {
	padding: 8px 12px;
	font-size: clamp(12px, 0.93vw, 14px); /* 14/1512 */
	letter-spacing: 0;
	border-width: 1px;
}

/* Search + map — mobile: form on top, map below */
@media (max-width: 768px) {
	.search-map {
		flex-direction: column;
		min-height: unset;
	}

	.search-map__sidebar {
		width: 100%;
		max-width: none;
		flex-shrink: 0;
		border-right: none;
		border-bottom: 4px solid #1a202c;
		padding: 16px 20px 20px;
		box-sizing: border-box;
	}

	.search-map__heading {
		display: none;
	}

	.search-map__form {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px 16px;
	}

	.search-map__field {
		gap: 4px;
	}

	.search-map__label {
		min-height: 3em;
		display: flex;
		align-items: flex-end;
	}

	.search-map__field:last-of-type {
		grid-column: 1 / -1;
	}

	.search-map__form-actions {
		grid-column: 1 / -1;
	}

	.search-map__map {
		height: 320px;
		flex: none;
		width: 100%;
	}

	.search-map__card {
		display: none !important;
	}
}

/* ==========================================================================
   Latest Monuments
   ========================================================================== */

.latest {
	width: 100%;
	background: var(--color-white);
	margin-bottom: 10px;
}
.single-monument .latest {
	border-bottom: 10px solid #1e1e1e;
	margin-bottom: 0;
}

.latest__title {
	font-family: var(--font-primary);
	font-size: clamp(24px, 3.17vw, 48px); /* 48/1512 */
	line-height: 1.2;
	letter-spacing: 0.01em;
	font-weight: 700;
	color: #2d3648;
	padding: clamp(16px, 1.72vw, 26px) 0 clamp(8px, 1.06vw, 16px) var(--container-pad);
	margin: 0;
}

/* Two-column layout: left image | right list */
.latest__body {
	display: grid;
	grid-template-columns: 1fr clamp(260px, 29.63vw, 448px); /* 448/1512 */
	gap: 0;
	align-items: start;
}

.latest__image-col {
	position: relative;
	line-height: 0;
	overflow: hidden;
	height: 33.47vw; /* 506/1512 */
	min-height: 240px;
}

.latest__image-link {
	display: block;
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}

.latest__image-link--active {
	opacity: 1;
	pointer-events: auto;
}

.latest__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.latest__image--placeholder {
	width: 100%;
	height: 100%;
	background: var(--color-border);
}

.latest__list-col {
	display: flex;
	flex-direction: column;
	height: 33.47vw; /* 506/1512 */
	min-height: 240px;
}

.latest__list {
	flex: 1;
	border-bottom: 4px solid #1a202c;
	display: flex;
	flex-direction: column;
	justify-content: stretch;
}

/* Each monument row */
.latest__row {
	flex: 1;
	display: flex;
	align-items: stretch;
	border-top: 1px solid #1a202c;
	border-right: 1px solid #1a202c;
	border-bottom: 1px solid #1a202c;
	border-left: 10px solid transparent;
	margin-top: -1px;
	transition: background var(--ease);
}

.latest__row:first-child {
	margin-top: 0;
	border-top: none;
}

.latest__row:last-child {
	border-bottom: none;
}

.latest__row--active {
	background: #1a202c;
	border-top-color: #1a202c;
	border-right-color: #1a202c;
	border-bottom-color: #1a202c;
	border-left-color: var(--color-orange);
	position: relative;
	z-index: 1;
}

.latest__row:not(.latest__row--active):hover {
	background: #f7f9fc;
}

.latest__row-inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	padding: clamp(10px, 1.06vw, 16px) 0 clamp(10px, 1.06vw, 16px) 40px;
}

.latest__row-title {
	font-family: var(--font-primary);
	font-size: clamp(16px, 1.59vw, 24px); /* 24/1512 */
	line-height: 1.4;
	font-weight: 700;
	color: #2d3648;
	margin: 0 0 4px;
}

.latest__row--active .latest__row-title {
	color: #edf0f7;
}

.latest__row-title a {
	color: inherit;
}

.latest__row-excerpt {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	font-weight: 400;
	line-height: 1.5;
	color: #717d96;
	margin: 0;
	width: clamp(200px, 22.3vw, 337px); /* 337/1512 */
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.latest__row--active .latest__row-excerpt {
	color: rgba(237, 240, 247, 0.7);
}

.latest__row-bottom {
	display: flex;
	align-items: flex-start;
	margin-top: 4px;
}

.latest__row-arrow {
	flex-shrink: 0;
	display: flex;
	align-items: flex-start;
	padding: 0 clamp(16px, 1.83vw, 27.67px) 0 clamp(4px, 0.53vw, 8px); /* 27.67/1512, 8/1512 */
}

.latest__row-arrow img {
	width: clamp(20px, 2.29vw, 34.67px); /* 34.67/1512 */
	height: clamp(20px, 2.29vw, 34.67px);
}

/* "View all" CTA button: full width, 56px tall */
.latest__cta {
	width: 100%;
	height: clamp(40px, 3.7vw, 56px); /* 56/1512 */
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(8px, 0.79vw, 12px); /* 12/1512 */
	border-radius: 0;
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	line-height: 24px;
	letter-spacing: -0.16px;
}

.latest__cta-icon {
	width: clamp(12px, 1.06vw, 16px); /* 16/1512 */
	height: clamp(12px, 1.06vw, 16px);
	flex-shrink: 0;
	position: relative;
	top: 3px; /* optical compensation for SVG internal whitespace */
}

/* Row thumbnail — hidden on desktop, shown on mobile */
.latest__row-thumb {
	display: none;
}

/* ==========================================================================
   Latest — mobile layout
   ========================================================================== */
@media (max-width: 768px) {
	.latest__image-col {
		display: none;
	}

	.latest__body {
		display: block;
	}

	.latest__list-col {
		height: auto;
	}

	.latest__list {
		border-bottom: none;
	}

	.latest__row {
		display: flex;
		flex-direction: row;
		align-items: stretch;
		border-left-width: 1px;
		border-right: none;
	}

	.latest__row-thumb {
		display: block;
		flex-shrink: 0;
		width: 100px;
		overflow: hidden;
	}

	.latest__row-thumb-img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	.latest__row-inner {
		padding: 12px 0 12px 16px;
		flex: 1;
	}

	.latest__row-excerpt {
		width: auto;
		-webkit-line-clamp: 2;
		line-clamp: 2;
	}

	.latest__row--active {
		background: transparent;
		border-left-color: transparent;
	}

	.latest__row--active .latest__row-title {
		color: #2d3648;
	}

	.latest__row--active .latest__row-excerpt {
		color: #717d96;
	}
}

/* Card component (kept for other templates) */
.cards-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin-bottom: 40px;
}

.card {
	border: 1px solid rgb(203, 210, 224);
	background: var(--color-white);
	display: flex;
	flex-direction: column;
	transition: box-shadow var(--ease);
}

.card:hover {
	box-shadow: 0 4px 24px rgba(35, 31, 32, 0.12);
}

.card__image-wrapper {
	position: relative;
	aspect-ratio: 408 / 254;
	overflow: hidden;
	background: var(--color-border);
}

.card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.card:hover .card__image {
	transform: scale(1.04);
}

.card__image--placeholder {
	background: var(--color-border);
}

.card__body {
	padding: clamp(20px, 2.116vw, 32px); /* 32/1512 */
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: clamp(16px, 1.587vw, 24px); /* 24/1512 */
}

.card__type-icon {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

.card__title {
	font-family: var(--font-primary);
	font-size: clamp(18px, 1.587vw, 24px); /* 24/1512 */
	font-weight: 700;
	color: #2D3648;
	line-height: 1.3;
	margin: 0;
}

.card__title a:hover {
	color: var(--color-orange);
}

.card__excerpt {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.058vw, 16px); /* 16/1512 */
	color: #717D96;
	line-height: 1.6;
	flex: 1;
	margin: 0;
}

.card__buttons {
	display: flex;
	gap: 16px;
	margin-top: auto;
}

.latest__footer {
	display: flex;
	justify-content: flex-end;
}


/* ==========================================================================
   Prefooter / About
   ========================================================================== */

.prefooter {
	background: var(--color-white);
	padding: clamp(18px, 1.98vw, 30px) var(--container-pad); /* 30/1512 */
}

/* Orange overline label */
.prefooter__overline {
	display: block;
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	line-height: 24px;
	letter-spacing: -0.16px;
	font-weight: 700;
	color: var(--color-orange);
	padding-top: 0; /* sits at top of section, section has no top margin */
	margin-bottom: 15px; /* gap to horizontal rule: Vector 8 at y=2298, overline bottom at 2283 */
}

/* Full-width horizontal rule separating overline from two columns */
.prefooter__rule {
	border: none;
	border-top: 2px solid #000; /* Figma: Vector 8, strokeWeight=2 */
	margin: 0 0 0; /* tightly below overline */
}

/* Three columns: logo | text | list */
.prefooter__inner {
	display: grid;
	grid-template-columns: 1fr 1fr 2fr; /* 3/12 + 3/12 + 6/12 */
	gap: clamp(20px, 2.65vw, 40px); /* 40/1512 */
	align-items: start;
	padding: clamp(16px, 1.32vw, 20px) 0 0; /* top gap after rule only */
}

.prefooter__logo-col {
	flex-shrink: 0;
}

.prefooter__logo-img {
	width: 100%;
	height: auto;
	display: block;
}

.prefooter__text-col {
	/* inherits from body/prefooter */
}

.prefooter__body {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	line-height: 24px;
	letter-spacing: -0.16px;
	color: #2d3648;
	margin: 0 0 16px;
}

.prefooter__body--bold {
	font-weight: 700;
	font-size: clamp(15px, 1.32vw, 20px); /* 20/1512 */
	line-height: 1.5;
}

/* Right column (list) */
.prefooter__right-heading {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	line-height: 24px;
	font-weight: 700; /* bold */
	color: #2d3648;
	margin: 0 0 16px;
}

.prefooter__list {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}

/* Each item: 44px tall with bottom rule (Figma: Vectors 1-7, step=44px) */
.prefooter__list-item {
	height: 44px;
	display: flex;
	align-items: center;
	border-bottom: 1px solid #2d3648;
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	line-height: 24px;
	font-weight: 400; /* regular — not bold */
	color: #2d3648;
}

.prefooter__link {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	line-height: 24px;
	font-weight: 700;
	color: var(--color-orange);
	text-decoration: none;
}

.prefooter__link:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 768px) {
	.prefooter__inner {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
   About block (frame-3 / Education)
   ========================================================================== */

.about-block {
	position: relative;
	width: 100%;
	background: #1a202c;
	overflow: hidden;
	margin-bottom: 0;
	padding: clamp(40px, 4.23vw, 64px) var(--container-pad); /* 64/1512 */
}

.about-block__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.about-block__bg-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 1;
}

.about-block__inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2.12vw, 32px); /* 32/1512 */
}

.about-block__label {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	font-weight: 700;
	color: #fff;
}

.about-block__cols {
	display: grid;
	grid-template-columns: clamp(300px, 42.99vw, 650px) clamp(280px, 28.77vw, 435px); /* 650/1512, 435/1512 */
	gap: clamp(60px, 6.35vw, 96px);
	align-items: start;
	min-height: clamp(180px, 17.46vw, 264px); /* 264/1512 */
}

.about-block__heading {
	font-family: var(--font-primary);
	font-size: clamp(20px, 2.12vw, 32px); /* 32/1512 */
	font-weight: 700;
	line-height: 1.3;
	color: #fff;
	margin: 0;
}

.about-block__body {
	font-family: var(--font-primary);
	font-size: clamp(14px, 1.19vw, 18px); /* 18/1512 */
	font-weight: 400;
	line-height: 1.5;
	color: #fff;
	margin: 0 0 clamp(16px, 1.59vw, 24px);
}

.about-block__link {
	display: inline-flex;
	align-items: center;
	gap: clamp(6px, 0.53vw, 8px); /* 8/1512 */
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	font-weight: 700;
	color: #fff;
	text-decoration: none;
}

.about-block__link:hover {
	color: var(--color-orange);
}

.about-block__link-icon {
	width: clamp(12px, 1.06vw, 16px); /* 16/1512 */
	height: clamp(12px, 1.06vw, 16px);
	flex-shrink: 0;
}

/* ==========================================================================
   Site Footer
   ========================================================================== */

/* Footer wrapper */
.site-footer {
	background: #fff;
}

/* Shared row styles */
.site-footer__about,
.site-footer__partners,
.site-footer__nav-bar {
	display: grid;
	align-items: start;
	gap: clamp(16px, 2.12vw, 32px); /* 32/1512 */
	padding: clamp(28px, 2.65vw, 40px) var(--container-pad); /* 40/1512 */
	border-top: 1px solid #1a202c;
}

/* frame-2: 3/12 label + 6/12 body + 3/12 empty */
.site-footer__about {
	grid-template-columns: 3fr 6fr 3fr;
}

/* frame-4: 3/12 label + 4/12 partner + 1/12 gap + 4/12 partner */
.site-footer__partners {
	grid-template-columns: 3fr 4fr 1fr 4fr;
}

/* frame-5: 3/12 logo + 2/12 nav + 2/12 account + 2/12 lang + 3/12 contact */
.site-footer__nav-bar {
	grid-template-columns: 3fr 2fr 2fr 2fr 3fr;
}

.site-footer__section-label {
	flex-shrink: 0;
	width: clamp(180px, 21.43vw, 324px); /* 324/1512 */
	font-family: var(--font-primary);
	font-size: clamp(16px, 1.46vw, 22px); /* 22/1512 */
	font-weight: 700;
	color: #2d3648;
}

/* frame-2: About */
.site-footer__about-body {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	font-weight: 400;
	line-height: 1.5;
	color: #2d3648;
}

/* frame-4: Partners — direct grid children, no list wrapper */

.site-footer__partner {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	color: #2d3648;
}

.site-footer__partner-name--lg {
	font-size: clamp(28px, 3.17vw, 48px); /* 48/1512 */
	line-height: 1.2;
	font-weight: 700;
}

.site-footer__partner-name--md {
	font-size: clamp(16px, 1.59vw, 24px); /* 24/1512 */
	line-height: 1.4;
	font-weight: 700;
}

.site-footer__partner span {
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	line-height: 1.5;
	font-weight: 400;
}

/* frame-5: Nav bar */
.site-footer__logo-wrap {
	flex-shrink: 0;
}

.site-footer__logo {
	display: block;
	height: clamp(40px, 3.44vw, 52px);
	width: auto;
}

.site-footer__nav {
	/* grid child, no flex: 1 needed */
}

.site-footer__nav-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.site-footer__nav-list li a {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	font-weight: 700;
	color: #2d3648;
	text-decoration: none;
}

.site-footer__nav-list li a:hover {
	color: var(--color-orange);
}

.site-footer__col-heading {
	display: block;
	font-family: var(--font-primary);
	font-size: clamp(14px, 1.32vw, 20px); /* 20/1512 */
	font-weight: 700;
	color: #2d3648;
	margin-bottom: 8px;
}

.site-footer__account,
.site-footer__lang,
.site-footer__contact {
	flex-shrink: 0;
}

.site-footer__account-list,
.site-footer__lang-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	list-style: none;
	padding: 0;
	margin: 0;
}

/* Account + Lang: 16px bold */
.site-footer__account-list a,
.site-footer__lang-list a {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	font-weight: 700;
	color: #2d3648;
	text-decoration: none;
}

/* Contact email: 16px regular */
.site-footer__email {
	font-weight: 400;
}

.site-footer__account-list a:hover,
.site-footer__lang-list a:hover {
	color: var(--color-orange);
}

.site-footer__email {
	font-family: var(--font-primary);
	font-size: clamp(13px, 1.06vw, 16px); /* 16/1512 */
	font-weight: 400;
	color: #2d3648;
	text-decoration: none;
}

.site-footer__email:hover {
	color: var(--color-orange);
}

/* Copyright bar */
.site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: clamp(20px, 2.65vw, 40px) var(--container-pad); /* 40/1512 */
	background: #fff;
	border-top: 1px solid #1a202c;
}

.site-footer__copyright {
	font-family: var(--font-primary);
	font-size: clamp(12px, 0.93vw, 14px); /* 14/1512 */
	font-weight: 400;
	color: #717d96;
}

.site-footer__legal {
	display: flex;
	gap: clamp(16px, 2.12vw, 32px); /* 32/1512 */
	list-style: none;
	padding: 0;
	margin: 0;
}

.site-footer__legal a {
	font-family: var(--font-primary);
	font-size: clamp(12px, 0.93vw, 14px); /* 14/1512 */
	font-weight: 400;
	color: #1a202c;
	text-decoration: none;
}

.site-footer__legal a:hover {
	color: var(--color-orange);
}

@media (max-width: 768px) {
	.about-block__cols {
		grid-template-columns: 1fr;
	}

	.site-footer__section-label {
		width: 100%;
	}

	.site-footer__about,
	.site-footer__partners {
		grid-template-columns: 1fr;
	}

	.site-footer__nav-bar {
		grid-template-columns: 1fr 1fr 1fr;
	}

	.site-footer__logo-wrap {
		grid-column: 1 / -1;
	}

	.site-footer__nav {
		grid-column: 1;
	}

	.site-footer__account {
		grid-column: 2;
	}

	.site-footer__lang {
		grid-column: 3;
	}

	.site-footer__contact {
		grid-column: 1 / -1;
	}

	.site-footer__partner-gap {
		display: none;
	}

	.site-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.site-footer__legal {
		flex-wrap: wrap;
	}
}


/* ==========================================================================
   Page template (content_long)
   ========================================================================== */

.page-hero {
	background: var(--color-cream);
	padding: 200px 0 60px; /* top accounts for absolute header (182px) */
	border-bottom: 1px solid var(--color-border);
}
.page-hero .container {
	max-width: none;
	margin: 0;
}

.page-hero--has-image {
	position: relative;
	min-height: clamp(280px, 33vw, 500px);
	padding: 182px 0 60px;
	display: flex;
	align-items: flex-end;
	border-bottom: none;
}

.page-hero__bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.page-hero__bg-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.page-hero--has-image .page-hero__title {
	color: #fff;
	position: relative;
	z-index: 1;
	text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

.page-hero__title {
	font-size: clamp(2rem, 3.5vw, 3rem);
	color: var(--color-black);
	max-width: 640px;
}

.page-content {
	background: #fff;
	padding-top: 60px;
	padding-bottom: 60px;
	max-width: none;
	margin: 0;
}

.page-layout {
	display: grid;
	grid-template-columns: 1fr 408px;
	gap: 60px;
	padding-top: 60px;
	padding-bottom: 80px;
	align-items: start;
}

.page-layout__main {
	min-width: 0;
}

/* WordPress content styles */
.page-layout__main h2 {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	margin-top: 48px;
	margin-bottom: 20px;
	color: var(--color-black);
}

.page-layout__main h2:first-child {
	margin-top: 0;
}

.page-layout__main p {
	font-size: 1.125rem;
	line-height: 1.75;
	color: var(--color-dark);
	margin-bottom: 24px;
}

.page-layout__main img {
	width: 100%;
	height: auto;
	margin: 40px 0;
}

.page-layout__main ul,
.page-layout__main ol {
	list-style: revert;
	padding-left: 1.5em;
	margin-bottom: 24px;
	font-size: 1.125rem;
	line-height: 1.75;
	color: var(--color-dark);
}

.page-layout__main li {
	margin-bottom: 8px;
}

.page-layout__main a {
	color: var(--color-orange);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.page-layout__main a:hover {
	color: var(--color-orange-hover);
}

/* Sidebar */
.page-layout__sidebar {
	position: sticky;
	top: 100px;
	font-size: 0.9rem;
	color: var(--color-dark);
	line-height: 1.6;
}

.page-layout__sidebar p {
	font-size: 0.9rem;
	margin-bottom: 16px;
}

.page-layout__sidebar a {
	color: var(--color-orange);
}


/* ==========================================================================
   Monument single page
   ========================================================================== */

/* Hero */
.monument-hero {
	position: relative;
	background: var(--color-black);
	min-height: 720px;
	display: flex;
	align-items: center;
}

.monument-hero__bg {
	position: absolute;
	inset: 0;
}

.monument-hero__bg-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 1;
}

.monument-hero .container {
	position: relative;
	z-index: 2;
	padding-bottom: 60px;
	width: 100%;
}

.monument-hero__content {
	max-width: clamp(320px, 42.33vw, 640px);
}

.monument-hero__title {
	font-size: clamp(1.75rem, 3.5vw, 3rem);
	color: var(--color-cream);
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

/* Tab bar */
.monument-tabs {
	border-bottom: 1px solid var(--color-border);
	margin-bottom: 40px;
	display: flex;
	align-items: stretch;
	position: relative;
}

.monument-tabs__scroll {
	flex: 1;
	overflow-x: auto;
	scrollbar-width: none;
}

.monument-tabs__scroll::-webkit-scrollbar {
	display: none;
}

.monument-tabs__list {
	display: flex;
	gap: 0;
}

.monument-tabs__arrow {
	display: none; /* shown by JS when tabs overflow */
	align-items: center;
	background: none;
	border: none;
	padding: 0 10px;
	cursor: pointer;
	color: var(--color-text-muted);
	font-size: 1.75rem;
	line-height: 1;
	flex-shrink: 0;
	transition: color var(--ease);
	user-select: none;
}

.monument-tabs__arrow:hover {
	color: var(--color-black);
}

.monument-tabs__arrow:disabled {
	opacity: 0.25;
	cursor: default;
}

.monument-tabs--overflow .monument-tabs__arrow {
	display: flex;
}

.monument-tabs__tab {
	display: block;
	padding: 14px 20px;
	font-family: var(--font-ui);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	color: var(--color-text-muted);
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: color var(--ease), border-color var(--ease);
}

.monument-tabs__tab:hover {
	color: var(--color-black);
	border-bottom-color: var(--color-black);
}

.monument-tabs__tab--locked {
	opacity: 0.4;
	cursor: default;
	border-bottom-color: transparent;
	position: relative;
}

.monument-tabs__tab--locked::after {
	content: attr(data-tooltip);
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	background: var(--color-black);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 400;
	white-space: nowrap;
	padding: 5px 10px;
	border-radius: 4px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.15s ease;
}

.monument-tabs__tab--locked:hover::after {
	opacity: 1;
}

/* Monument body: 2/3 + 1/3 grid */
.monument-body {
	padding: 60px 0 0;
}

.monument-body__grid {
	display: grid;
	grid-template-columns: 856fr 408fr;
	gap: 60px;
	align-items: start;
}

.monument-body__main {
	min-width: 0;
}

/* Info panel (sticky sidebar) */
.monument-body__aside {
	/*position: sticky;*/
	top: 140px;
}

.info-panel__image {
	margin-bottom: 20px;
	overflow: hidden;
}


.info-panel__img {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
}

/* Info table */
.info-table {
	margin-bottom: 24px;
}

.info-table__section {
	margin-bottom: 24px;
}

.info-table__section-heading,
.info-table__subheading {
	margin: 0;
}

.info-table__subheading {
	text-transform: lowercase;
}

.info-table__row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 10px 0;
}

.info-table__subheading + .info-table__row {
	padding-top: 0;
}

.info-table__label, .info-table__section-heading {
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--color-dark);
}

.info-table__value, .info-table__subheading {
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-dark);
}

/* Leaflet mini-map in sidebar */
.info-panel__map {
	width: clamp(200px, 26.98vw, 408px);
	height: clamp(200px, 26.98vw, 408px);
	margin-bottom: 20px;
	border-top: 4px solid #1a202c;
	border-bottom: 4px solid #1a202c;
}

#monument-location-map {
	width: 100%;
	height: 100%;
}

/* Content blocks */
.monument-block {
	padding: 40px 0;
}

.monument-block + .monument-block {
	padding-top: 0;
}

.monument-block__heading {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--color-black);
	margin: 0 0 20px;
}

.monument-block__title {
	font-size: 1.75rem;
	color: var(--color-black);
	margin-bottom: 32px;
}

/* Gallery grid: 4 columns, small images */
.gallery-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.gallery-grid--large {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-grid--small {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-grid__item {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gallery-grid__link {
	display: block;
	overflow: hidden;
	aspect-ratio: 296 / 157;
	background: var(--color-border);
	flex-shrink: 0;
}

.gallery-grid__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}

.gallery-grid__item:hover .gallery-grid__img {
	transform: scale(1.05);
}

.gallery-grid__caption {
	font-size: 0.8125rem;
	color: var(--color-text-muted);
	line-height: 1.4;
	margin: 0;
}

/* Lightbox */
.lb-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.92);
	z-index: 9999;
	align-items: center;
	justify-content: center;
}

.lb-overlay--open {
	display: flex;
}

.lb-inner {
	display: flex;
	align-items: center;
	gap: 40px;
	max-width: 90vw;
	max-height: 90vh;
}

.lb-img {
	max-width: 90vw;
	max-height: 90vh;
	object-fit: contain;
	display: block;
	flex-shrink: 0;
}

/* Split layout when inscription text is present */
.lb-overlay--with-text .lb-img {
	max-width: 55vw;
	max-height: 85vh;
}

.lb-text {
	color: #e8e3d8;
	max-width: 32vw;
	max-height: 85vh;
	overflow-y: auto;
	font-family: var(--font-body, serif);
	font-size: 0.9375rem;
	line-height: 1.75;
}

.lb-text p { margin: 0 0 1em; }
.lb-text p:last-child { margin-bottom: 0; }

.lb-close {
	position: absolute;
	top: 20px;
	right: 28px;
	background: none;
	border: none;
	color: #fff;
	font-size: 2.5rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0.8;
}

.lb-close:hover { opacity: 1; }

.lb-prev,
.lb-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: #fff;
	font-size: 2rem;
	cursor: pointer;
	padding: 16px;
	opacity: 0.7;
}

.lb-prev:hover,
.lb-next:hover { opacity: 1; }

.lb-prev { left: 16px; }
.lb-next { right: 16px; }

/* Epigraphy grid: mixed sizes */
.epigraphy-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

.epigraphy-grid__item:first-child {
	/* Full width */
	grid-column: 1 / -1;
}

.epigraphy-grid__img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* 3D block */
.block-3d {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

.block-3d__embed {
	width: 100%;
	aspect-ratio: 16/9;
	background: var(--color-border);
	overflow: hidden;
}

.block-3d__embed iframe {
	width: 100%;
	height: 100%;
	border: none;
}

.block-3d__text {
	max-width: 408px;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--color-dark);
}

/* Literature: 1/2 + 1/2 */
.literature-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
}

.literature-layout__text p {
	font-size: 1.125rem;
	line-height: 1.75;
	color: var(--color-dark);
	margin-bottom: 20px;
}

.literature-refs__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-black);
	margin-bottom: 16px;
}

.monument-block--literature .monument-block__heading {
	font-size: clamp(24px, 2.65vw, 40px);
	line-height: 1.2;
}

.literature-layout__refs-heading {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--color-black);
	margin: 0 0 20px;
}

.literature-layout__refs {
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--color-dark);
	padding-top: clamp(6px, 0.66vw, 10px);
}

.literature-layout__refs ol,
.literature-layout__refs ul {
	list-style: revert;
	padding-left: 1.25em;
}

.literature-layout__refs li {
	margin-bottom: 10px;
}

/* Image with caption block */
.image-caption-block {
	margin: 0;
}

.image-caption-block__img {
	width: 100%;
	height: auto;
	display: block;
}

.image-caption-block__caption {
	margin-top: 16px;
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--color-text-muted);
	max-width: clamp(400px, 56.217vw, 850px);
}

/* Register CTA after last visible block */
.monument-register-cta {
	padding: 40px 0 20px;
	border-top: 1px solid var(--color-border);
}

/* ==========================================================================
   Single Monument — mobile
   ========================================================================== */
@media (max-width: 768px) {
	/* Hero */
	.monument-hero {
		min-height: 280px;
	}

	.monument-hero .container {
		padding-top: 80px;
	}

	.monument-hero__content {
		max-width: 100%;
	}

	/* Body: single column, aside first */
	.monument-body {
		padding: 32px 0 0;
	}

	.monument-body__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.monument-body__aside {
		order: -1;
	}

	/* Aside: map full width */
	.info-panel__map {
		width: 100%;
		height: 240px;
	}

	.image-caption-block__caption {
		max-width: 100%;
	}

	/* Literature: single column */
	.literature-layout {
		grid-template-columns: 1fr;
	}
}

/* Map section on monument page */
.monument-map-section {
	background: var(--color-cream);
	padding-top: 56px;
}


/* ==========================================================================
   Search bar (shared: search.php + archive.php)
   ========================================================================== */

.search-bar-section {
	background: var(--color-cream);
	padding: 40px 0 32px;
}

.search-bar__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.search-bar__top {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
}

.search-bar__title {
	font-size: clamp(1.75rem, 2.5vw, 2.25rem);
	color: var(--color-black);
}

.search-bar__name-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.search-bar__filters {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.search-bar__filter-group {
	display: flex;
	flex-direction: column;
}


/* ==========================================================================
   Search results (search.php)
   ========================================================================== */

.search-results-section {
	padding: 56px 0 80px;
}

.search-results__layout {
	max-width: 100%;
}

.search-results__heading {
	font-size: 1.75rem;
	color: var(--color-black);
	margin-bottom: 32px;
}

.search-results__heading span {
	color: var(--color-orange);
}

.results-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.results-list__item {
	display: grid;
	grid-template-columns: 184px 1fr;
	gap: 28px;
	align-items: start;
	padding: 24px 0;
	border-bottom: 1px solid var(--color-border);
}

.results-list__item:first-child {
	border-top: 1px solid var(--color-border);
}

.results-list__image-link {
	display: block;
	overflow: hidden;
}

.results-list__image {
	width: 184px;
	height: 119px;
	object-fit: cover;
}

.results-list__image--placeholder {
	width: 184px;
	height: 119px;
	background: var(--color-border);
}

.results-list__title {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 8px;
	line-height: 1.3;
}

.results-list__title a:hover {
	color: var(--color-orange);
}

.results-list__excerpt {
	font-size: 0.9rem;
	color: var(--color-text-muted);
	line-height: 1.6;
}

.search-results__empty {
	color: var(--color-text-muted);
	font-size: 1rem;
	padding: 40px 0;
}


/* ==========================================================================
   Archive / monument list (archive.php)
   ========================================================================== */

.archive-section {
	padding: 56px 0 80px;
}

.cards-grid--4col {
	grid-template-columns: repeat(4, 1fr);
}

.archive-pagination {
	display: flex;
	justify-content: center;
	margin-top: 56px;
}

.archive-pagination .nav-links {
	display: flex;
	align-items: center;
	gap: 4px;
}

.archive-pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	font-family: var(--font-primary);
	font-size: 1rem;
	color: var(--color-dark);
	border: 1px solid transparent;
	transition: border-color var(--ease), color var(--ease);
}

.archive-pagination .page-numbers:hover,
.archive-pagination .page-numbers.current {
	border-color: var(--color-black);
	color: var(--color-black);
}

.archive-pagination .page-numbers.dots {
	border: none;
	width: auto;
	padding: 0 4px;
}

.archive-pagination .prev.page-numbers,
.archive-pagination .next.page-numbers {
	width: 40px;
	height: 40px;
	border: 1px solid var(--color-border);
	color: var(--color-dark);
}

.archive-pagination .prev.page-numbers:hover,
.archive-pagination .next.page-numbers:hover {
	border-color: var(--color-black);
	color: var(--color-black);
}

.archive-empty {
	color: var(--color-text-muted);
	padding: 40px 0;
}

/* ==========================================================================
   Monument archive page
   ========================================================================== */

.archive-map-wrap {
	padding-top: clamp(182px, 24.14vw, 365px); /* 365/1512 — accounts for absolute header */
}

.monuments-archive {
	background: var(--color-cream);
	padding: clamp(40px, 4.23vw, 64px) 0;
}

.monuments-archive__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--container-pad);
}

.card__image-link {
	display: block;
}

.card__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
}

.card__type {
	font-size: clamp(11px, 0.79vw, 12px);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--color-orange);
}

.card__century {
	font-size: clamp(11px, 0.79vw, 12px);
	color: var(--color-text-muted);
}


/* ==========================================================================
   Accessibility
   ========================================================================== */

:focus-visible {
	outline: 2px solid var(--color-orange);
	outline-offset: 3px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

/* ==========================================================================
   Override global styles for Gutenberg blocks (WordPress 5.9+)
   ========================================================================== */
:where(.wp-block-columns.is-layout-flex) {
	gap: 2.5em;
}
.page-sidebar-small-text {
	font-size: clamp(12px, 0.926vw, 14px);
	line-height: 150%;
}
.page-sidebar ul,
.page-sidebar .wp-block-list {
	list-style: disc;
	padding-left: 1.25em;
	margin: 0;
}
.page-sidebar a {
	text-decoration: underline;
}
.page-sidebar a:hover {
	color: var(--color-orange);
}
.page-sidebar-list-heading {
	font-size: clamp(14px, 1.32vw, 20px);
	line-height: 150%;
	font-weight: 700;
	margin-bottom: clamp(6px, 0.529vw, 8px);
	margin-top: clamp(32px, 3.175vw, 48px);
}