/* Kandili — theme for apotomi.gr
   Dark by default (the icon in the light of the oil lamp), light variant via [data-scheme="light"].
   Sections: fonts · tokens · base · layout · header · components · front page · content · footer · motion · print */

/* ---------- Fonts (self-hosted, Greek + polytonic + Latin subsets) ---------- */
@font-face { font-family: "GFS Didot"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/gfs-didot-greek-400-normal.woff2) format("woff2"); unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family: "GFS Didot"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/gfs-didot-greek-ext-400-normal.woff2) format("woff2"); unicode-range: U+1F00-1FFF; }
@font-face { font-family: "GFS Didot"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/gfs-didot-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family: "Literata"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/literata-greek-400-normal.woff2) format("woff2"); unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family: "Literata"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/literata-greek-ext-400-normal.woff2) format("woff2"); unicode-range: U+1F00-1FFF; }
@font-face { font-family: "Literata"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/literata-latin-ext-400-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Literata"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/literata-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Literata"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/literata-greek-600-normal.woff2) format("woff2"); unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family: "Literata"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/literata-greek-ext-600-normal.woff2) format("woff2"); unicode-range: U+1F00-1FFF; }
@font-face { font-family: "Literata"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/literata-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+FEFF,U+FFFD; }
@font-face { font-family: "Literata"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/literata-latin-ext-600-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Literata"; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/literata-greek-400-italic.woff2) format("woff2"); unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family: "Literata"; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/literata-greek-ext-400-italic.woff2) format("woff2"); unicode-range: U+1F00-1FFF; }
@font-face { font-family: "Literata"; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/literata-latin-400-italic.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+FEFF,U+FFFD; }
@font-face { font-family: "Literata"; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/literata-latin-ext-400-italic.woff2) format("woff2"); unicode-range: U+0100-02BA,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF; }

/* ---------- Tokens ---------- */
:root {
	color-scheme: dark;
	--bg: #120e0a;
	--surface: #1a140e;
	--surface-2: #221a12;
	--line: #3a2e20;
	--text: #efe5cf;
	--muted: #bba98a;
	--gold: #d8b062;
	--gold-line: #6b5530;
	--on-gold: #120e0a;
	--red: #e36d55;
	--flame: #f0b04a;
	--glow: rgba(240, 176, 74, 0.34);
	--halo: rgba(240, 176, 74, 0.55);
	--vignette: rgba(18, 14, 10, 0.92);
	--photo-filter: sepia(0.3) saturate(0.75) brightness(0.84) contrast(1.05);
	--icon-filter: sepia(0.18) brightness(0.95) contrast(1.06);
	--focus: #f6d38a;

	--display: "GFS Didot", "Noto Serif Display", Georgia, serif;
	--body: "Literata", Georgia, "Times New Roman", serif;

	--wrap: 1312px;
	--gutter: clamp(20px, 4.4vw, 64px);
	--section: clamp(72px, 9vw, 120px);
	--radius: 4px;

	--fs-small: 0.875rem;
	--fs-body: clamp(1.0625rem, calc(0.4vw + 0.98rem), 1.125rem);
	--fs-h3: clamp(1.375rem, calc(1vw + 1.1rem), 1.75rem);
	--fs-h2: clamp(2.25rem, calc(2.6vw + 1.3rem), 3.375rem);
	--fs-h1: clamp(2.5rem, calc(4.2vw + 1.2rem), 4.5rem);
	--ease: cubic-bezier(.2, .7, .2, 1);
}

:root[data-scheme="light"] {
	color-scheme: light;
	--bg: #f3ebdb;
	--surface: #ebe1cc;
	--surface-2: #e4d8bf;
	--line: #d3c3a1;
	--text: #1e1710;
	--muted: #56473a;
	--gold: #7a5810;
	--gold-line: #c7ad74;
	--on-gold: #fbf6ea;
	--red: #9a2c1c;
	--flame: #c9861c;
	--glow: rgba(201, 134, 28, 0.22);
	--halo: rgba(201, 134, 28, 0.35);
	--vignette: rgba(243, 235, 219, 0.5);
	--photo-filter: saturate(0.92);
	--icon-filter: none;
	--focus: #1e1710;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--body);
	font-size: var(--fs-body);
	line-height: 1.65;
	font-feature-settings: "kern", "liga";
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: inherit; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { color: var(--gold); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 2px; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--display); font-weight: 400; line-height: 1.1; margin: 0; letter-spacing: -0.005em; }
p { margin: 0; }
::selection { background: var(--gold); color: var(--on-gold); }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus { position: static !important; width: auto; height: auto; clip: auto; margin: 0; }
.k-skip {
	position: absolute; left: 12px; top: -100px; z-index: 1000;
	padding: 12px 18px; background: var(--gold); color: var(--on-gold); text-decoration: none; border-radius: var(--radius);
}
.k-skip:focus { top: 12px; }

/* ---------- Layout ---------- */
.k-wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.k-wrap--text { max-width: calc(760px + 2 * var(--gutter)); }
.k-section { padding-block: var(--section); }
.k-section--surface { background: var(--surface); border-block: 1px solid var(--line); }
.k-split { display: grid; gap: 40px 32px; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.k-split__head { grid-column: 1 / span 4; }
.k-row-head { display: flex; justify-content: space-between; align-items: end; gap: 16px 24px; flex-wrap: wrap; margin-bottom: 48px; }
.k-center { text-align: center; }
.k-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.k-center.k-actions { justify-content: center; }

/* ---------- Type helpers ---------- */
.k-eyebrow { font-size: 0.8125rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; }
.k-eyebrow a { text-decoration: none; }
.k-h2 { font-size: var(--fs-h2); line-height: 1.05; }
.k-h3 { font-family: var(--display); font-size: var(--fs-h3); line-height: 1.2; }
.k-muted { color: var(--muted); }
.k-small { font-size: var(--fs-small); }
.k-meta { font-size: var(--fs-small); color: var(--muted); }
.k-caption { margin-top: 10px; font-size: 0.8125rem; color: var(--muted); font-style: italic; }
.k-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.k-initial { color: var(--red); }
.k-placeholder { display: inline-block; padding: 6px 10px; border: 1px dashed var(--red); color: var(--red); font-size: var(--fs-small); }
.k-split__head > * + * { margin-top: 18px; }
.k-cross { fill: none; stroke: var(--gold); stroke-width: 1.8; stroke-linecap: round; }
.k-icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }

/* ---------- Buttons & links ---------- */
.k-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; padding: 0 24px; border-radius: 999px; border: 1px solid var(--gold);
	background: var(--gold); color: var(--on-gold); font-weight: 600; font-size: 1rem; text-decoration: none; cursor: pointer;
	transition: background-color .2s, color .2s, transform .2s var(--ease);
}
.k-btn:hover { color: var(--on-gold); transform: translateY(-1px); }
.k-btn--ghost { background: transparent; color: var(--gold); }
.k-btn--ghost:hover { background: var(--gold); color: var(--on-gold); }
.k-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--gold); text-decoration: underline; text-underline-offset: 6px; }
.k-iconbtn {
	width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--gold);
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0;
}
.k-iconbtn:hover { border-color: var(--gold); }

/* ---------- Header ---------- */
.k-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--bg) 92%, transparent); border-bottom: 1px solid var(--line); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.admin-bar .k-header { top: var(--wp-admin--admin-bar--height, 32px); }
.k-header__inner { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.k-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--text); min-height: 44px; margin-right: auto; }
.k-brand:hover { color: var(--text); }
.k-brand__cross { width: 20px; height: 34px; flex: 0 0 auto; }
.k-brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.k-brand__name { font-family: var(--display); font-size: 1.375rem; }
.k-brand__sub { font-size: 0.75rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.k-header__tools { display: flex; gap: 8px; }

.k-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; }
.k-menu > li { position: relative; display: flex; align-items: center; }
.k-menu a, .k-menu__label { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; text-decoration: none; font-size: 0.9875rem; }
.k-menu .current-menu-item > a, .k-menu .current-menu-ancestor > a { color: var(--gold); box-shadow: inset 0 -1px 0 var(--gold); }
.k-menu__toggle { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 44px; margin-left: -8px; border: 0; background: none; cursor: pointer; color: var(--muted); }
.k-menu__toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .2s; }
.k-menu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.k-submenu, .k-menu .sub-menu { list-style: none; margin: 0; padding: 8px; min-width: 260px; }
.k-navbtn { display: none; }
.k-navbtn__close { display: none; }
.k-navbtn[aria-expanded="true"] .k-navbtn__open { display: none; }
.k-navbtn[aria-expanded="true"] .k-navbtn__close { display: inline-flex; }
.k-scheme > span { display: inline-flex; }
.k-scheme > .k-scheme__to-dark { display: none; }
:root[data-scheme="light"] .k-scheme > .k-scheme__to-light { display: none; }
:root[data-scheme="light"] .k-scheme > .k-scheme__to-dark { display: inline-flex; }

@media (min-width: 1081px) {
	.k-menu .sub-menu {
		position: absolute; top: 100%; left: 0; display: none;
		background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 20px 40px rgba(0,0,0,.35);
	}
	.k-menu .sub-menu.is-open { display: block; }
	.k-menu .sub-menu a { display: flex; width: 100%; padding: 8px 12px; min-height: 40px; }
}
@media (max-width: 1080px) {
	.k-navbtn { display: inline-flex; }
	.k-nav {
		position: fixed; inset: 77px 0 0 0; z-index: 49; display: none; overflow-y: auto;
		background: var(--bg); border-top: 1px solid var(--line); padding: 12px var(--gutter) 40px;
	}
	.admin-bar .k-nav { inset-block-start: calc(77px + var(--wp-admin--admin-bar--height, 46px)); }
	.k-nav.is-open { display: block; }
	.k-menu { flex-direction: column; align-items: stretch; }
	.k-menu > li { flex-wrap: wrap; border-bottom: 1px solid var(--line); }
	.k-menu > li > a, .k-menu > li > .k-menu__label { flex: 1 1 auto; min-height: 56px; font-family: var(--display); font-size: 1.5rem; padding: 0; }
	.k-menu__toggle { width: 56px; height: 56px; margin: 0; }
	.k-menu .sub-menu { display: none; width: 100%; padding: 0 0 12px 12px; }
	.k-menu .sub-menu.is-open { display: block; }
	.k-menu .sub-menu a { min-height: 44px; padding: 0; color: var(--muted); }
	body.k-nav-open { overflow: hidden; }
}

/* ---------- Hero ---------- */
.k-hero { padding-block: clamp(48px, 7vw, 96px) clamp(72px, 9vw, 120px); overflow: hidden; }
.k-hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 48px 32px; align-items: center; }
.k-hero__icon { grid-column: 1 / span 5; margin: 0; display: flex; flex-direction: column; align-items: center; }
.k-niche { position: relative; width: min(100%, 380px); aspect-ratio: 3 / 4; border-radius: 999px 999px 4px 4px; }
.k-niche::before { content: ""; position: absolute; inset: -22% -40% -30%; z-index: -1; background: radial-gradient(ellipse 50% 50% at 50% 62%, var(--glow), transparent 72%); pointer-events: none; }
.k-hero__icon { position: relative; isolation: isolate; }
.k-niche img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 26%; border-radius: inherit; filter: var(--icon-filter); }
.k-niche__shade { position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(ellipse 70% 62% at 50% 66%, transparent 40%, var(--vignette) 100%); box-shadow: inset 0 0 0 1px var(--gold-line); }
.k-lamp { position: relative; margin-top: -18px; display: flex; justify-content: center; width: 150px; height: 120px; }
.k-lamp__halo { position: absolute; left: 50%; top: -10px; width: 150px; height: 150px; translate: -50% 0; border-radius: 50%; background: radial-gradient(circle, var(--halo) 0%, transparent 68%); }
.k-lamp__svg { position: relative; width: 56px; height: 64px; margin-top: 18px; }
.k-lamp__body { fill: none; stroke: var(--gold); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.k-lamp__flame { fill: var(--flame); transform-origin: 28px 17px; }
.k-hero__text { grid-column: 7 / span 6; }
.k-hero__title { position: relative; font-size: var(--fs-h1); line-height: 1.04; display: flex; flex-direction: column; }
.k-hero__line { display: block; }
.k-hero__cross { width: clamp(26px, 2.4vw, 36px); height: auto; aspect-ratio: 24 / 40; margin-bottom: 22px; stroke-width: 1.5; }
.k-hero__lead { margin-top: 26px; max-width: 34ch; font-size: clamp(1.125rem, calc(0.6vw + 1rem), 1.3rem); color: var(--muted); }
.k-today { margin-top: 40px; display: flex; flex-wrap: wrap; border: 1px solid var(--line); max-width: 560px; }
.k-today__info { flex: 1 1 260px; padding: 20px 24px; }
.k-today__label { font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--red); }
.k-today__name { font-family: var(--display); font-size: 1.875rem; line-height: 1.15; margin-top: 4px; }
.k-today__time { color: var(--muted); }
.k-today__link { flex: 0 1 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 24px; min-height: 52px; background: var(--gold); color: var(--on-gold); text-decoration: none; font-weight: 600; font-size: 1rem; }
.k-today__link:hover { color: var(--on-gold); }

.k-fresco { display: flex; justify-content: center; background: var(--surface); border-block: 1px solid var(--gold-line); overflow: hidden; }
.k-fresco img { width: 100%; max-width: 940px; height: clamp(110px, 14vw, 198px); object-fit: cover; object-position: 50% 40%; filter: sepia(.22) brightness(.82) saturate(.8);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 16%, #000 84%, transparent); mask-image: linear-gradient(90deg, transparent, #000 16%, #000 84%, transparent); }
:root[data-scheme="light"] .k-fresco img { filter: saturate(.88); }

/* ---------- Typikon ---------- */
.k-typikon__days { grid-column: 6 / span 7; }
.k-day { display: grid; grid-template-columns: minmax(150px, 200px) minmax(0, 1fr); gap: 12px 32px; padding-block: 28px; border-top: 1px solid var(--line); }
.k-day:last-child { border-bottom: 1px solid var(--line); }
.k-day__name { font-size: 1.875rem; }
.k-day__list { margin: 0; display: grid; gap: 10px; }
.k-day__row { display: flex; justify-content: space-between; gap: 16px; }
.k-day__row dt { margin: 0; }
.k-day__row dd { margin: 0; color: var(--gold); text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---------- Video library ---------- */
.k-videos__top { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 32px; align-items: start; }
.k-videos__lead { grid-column: 1 / span 8; }
.k-videos__lead .k-h2 { margin-bottom: 32px; }
.k-videos__lead .k-meta { margin-top: 18px; }
.k-videos__title { font-size: clamp(1.75rem, calc(1.6vw + 1.2rem), 2.5rem); margin-top: 6px; }
.k-videos__title a { text-decoration: none; }
.k-videos__lead .k-muted { margin-top: 12px; max-width: 62ch; }
.k-videos__side { grid-column: 9 / span 4; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; margin-top: clamp(0px, 9vw, 120px); }
.k-videos__sidehead { font-size: 1.5rem; margin-bottom: 12px; }
.k-vlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.k-vlist__item { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: center; padding: 8px; border-radius: var(--radius); text-decoration: none; }
.k-vlist__item:hover { background: var(--surface-2); color: var(--text); }
.k-vlist__item img { width: 96px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 2px; filter: var(--photo-filter); }
.k-vlist__title { display: block; font-size: 0.9375rem; line-height: 1.35; }
.k-vlist__date { display: block; font-size: 0.8125rem; color: var(--muted); margin-top: 2px; }

.k-yt { position: relative; aspect-ratio: 16 / 9; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
	background: radial-gradient(ellipse at 50% 55%, color-mix(in srgb, var(--gold) 14%, transparent), transparent 70%), var(--surface-2); }
.k-vlist__item img, .k-entry__video img { background: var(--surface-2); }
.k-yt__thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: var(--photo-filter); transition: transform .6s var(--ease), filter .3s; }
.k-yt:hover .k-yt__thumb { transform: scale(1.03); }
.k-yt__play {
	position: absolute; left: 50%; top: 50%; translate: -50% -50%; width: 72px; height: 72px; border-radius: 50%;
	border: 0; background: var(--gold); color: var(--on-gold); display: flex; align-items: center; justify-content: center; cursor: pointer;
	box-shadow: 0 10px 40px rgba(0,0,0,.45); transition: transform .2s var(--ease);
}
.k-yt__play:hover { transform: scale(1.06); }
.k-yt__play svg { width: 30px; height: 30px; fill: currentColor; margin-left: 4px; }
.k-yt--card .k-yt__play { width: 52px; height: 52px; }
.k-yt--card .k-yt__play svg { width: 22px; height: 22px; }
.k-yt__fallback { position: absolute; left: 12px; bottom: 10px; font-size: 0.8125rem; color: #fff; background: rgba(0,0,0,.6); padding: 4px 8px; border-radius: 2px; }
.js .k-yt__fallback { display: none; }
.k-yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.k-yt--content { margin-block: 28px; }

.k-chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 72px 0 28px; }
.k-chip { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--line); background: transparent; cursor: pointer; font-size: 0.9375rem; }
.k-chip:hover { border-color: var(--gold); }
.k-chip[aria-pressed="true"] { background: var(--gold); border-color: var(--gold); color: var(--on-gold); }
.k-vgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.k-chips + .k-vgrid { margin-top: 0; }
.k-videos__top + .k-vgrid { margin-top: 72px; }
.k-vcard__cat { margin-top: 14px; font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); }
.k-vcard__title { margin-top: 6px; font-size: 1.25rem; line-height: 1.25; }
.k-vcard__title a { text-decoration: none; }
.k-vcard__date { margin-top: 4px; font-size: 0.8125rem; color: var(--muted); }
.k-vcard[hidden] { display: none; }

/* ---------- Audio ---------- */
.k-audio { background: var(--surface); border-block: 1px solid var(--line); }
.k-audio .k-h2 + .k-muted { margin-top: 12px; }
.k-tracks { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.k-track { display: flex; gap: 16px; align-items: flex-start; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); }
.k-track__play { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--gold); color: var(--on-gold); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.k-track__play svg { width: 22px; height: 22px; fill: currentColor; }
.k-track__i-pause { display: none; }
.k-track.is-playing .k-track__i-play { display: none; }
.k-track.is-playing .k-track__i-pause { display: block; }
.k-track__body { flex: 1 1 auto; min-width: 0; }
.k-track__title { font-family: var(--display); font-size: 1.3rem; line-height: 1.25; }
.k-track__meta { margin-top: 4px; font-size: 0.8125rem; color: var(--muted); }
.k-track__meta a { color: var(--gold); }
.k-track__bar { position: relative; height: 4px; margin-top: 14px; background: var(--line); border-radius: 2px; cursor: pointer; }
.k-track__fill { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--gold); border-radius: 2px; }
.k-track__audio { width: 100%; margin-top: 12px; height: 40px; }
.k-track.is-enhanced .k-track__audio { display: none; }

/* ---------- Homilies ---------- */
.k-homilies__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 32px; }
.k-lead { grid-column: 1 / span 6; display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 24px; align-items: start; }
.k-lead__initial { font-family: var(--display); font-size: 8.25rem; line-height: 0.8; color: var(--red); }
.k-lead__title { font-size: clamp(2rem, calc(1.6vw + 1.5rem), 2.75rem); margin-top: 8px; }
.k-lead__title a { text-decoration: none; }
.k-lead .k-muted { margin-top: 14px; }
.k-lead .k-link { margin-top: 8px; }
.k-list { grid-column: 8 / span 5; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.k-list__item { padding-block: 20px; border-bottom: 1px solid var(--line); }
.k-list__title { font-family: var(--body); font-weight: 600; font-size: 1.125rem; line-height: 1.35; margin-top: 4px; }
.k-list__title a { text-decoration: none; }

/* ---------- Monastery ---------- */
.k-monastery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 32px; align-items: center; }
.k-monastery__photo { grid-column: 1 / span 7; margin: 0; }
.k-monastery__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: var(--photo-filter); }
.k-monastery__text { grid-column: 9 / span 4; }
.k-monastery__text .k-h2 + p { margin-top: 22px; color: var(--muted); }
.k-facts { margin: 24px 0 0; display: grid; gap: 14px; }
.k-facts dt { font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); }
.k-facts dd { margin: 2px 0 0; }
.k-arrowlist { list-style: none; margin: 28px 0 0; padding: 0; border-top: 1px solid var(--line); }
.k-arrowlist li { border-bottom: 1px solid var(--line); }
.k-arrowlist a { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 52px; text-decoration: none; }
.k-arrowlist .k-icon { color: var(--gold); transition: transform .2s var(--ease); }
.k-arrowlist a:hover .k-icon { transform: translateX(4px); }

/* ---------- Events & newsletter ---------- */
.k-extras__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px; }
.k-panel { padding: clamp(24px, 3vw, 40px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); }
.k-panel .k-h3 { margin-bottom: 18px; }
.k-widget + .k-widget { margin-top: 24px; }
.k-widget__title { font-size: 1.5rem; margin-bottom: 12px; }
.k-newsletter form, .k-newsletter .tnp-subscription form { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.k-newsletter .tnp-field { flex: 1 1 240px; margin: 0; }
.k-newsletter .tnp-field-button, .k-newsletter .tnp-field-privacy { flex: 0 0 auto; }
.k-newsletter label { display: block; font-size: var(--fs-small); color: var(--muted); margin-bottom: 6px; }
.k-newsletter input[type="email"], .k-newsletter input[type="text"], .k-search__input, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; min-height: 48px; padding: 0 16px; background: transparent; color: var(--text); border: 1px solid var(--line); border-radius: var(--radius); font: inherit; font-size: 1rem;
}
.comment-form textarea { padding: 12px 16px; min-height: 140px; }
.comment-form-cookies-consent { display: flex; gap: 12px; align-items: center; min-height: 44px; }
.comment-form-cookies-consent input { width: 24px; height: 24px; margin: 0; accent-color: var(--gold); flex: 0 0 auto; }
.comment-form-cookies-consent label { padding-block: 10px; }
.k-newsletter input[type="submit"], .k-newsletter .tnp-submit, .comment-form .k-btn {
	min-height: 48px; padding: 0 24px; border-radius: 999px; border: 0; background: var(--gold); color: var(--on-gold); font: inherit; font-weight: 600; cursor: pointer;
}

/* ---------- Route ---------- */
.k-route { background: var(--surface); border-top: 1px solid var(--line); }
.k-route__steps { --node: 22px; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--steps, 4), minmax(0, 1fr)); gap: 32px; position: relative; }
.k-route__steps::before {
	content: ""; position: absolute; left: 11px; right: calc((100% - (var(--steps, 4) - 1) * 32px) / var(--steps, 4) - 20px); top: calc(var(--node) / 2 - 1px); height: 2px;
	background: linear-gradient(90deg, var(--text) 0 70%, var(--gold) 100%);
	transform-origin: left center;
}
.k-route__step { position: relative; }
.k-route__node { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: var(--node); height: var(--node); border-radius: 50%; background: var(--surface); border: 2px solid var(--text); margin-bottom: 22px; }
.k-route__step.is-end .k-route__node { width: 40px; height: 40px; margin-top: -9px; margin-bottom: 13px; border-color: var(--gold); background: var(--gold); }
.k-route__cross { width: 12px; height: 20px; stroke: var(--on-gold); stroke-width: 2.4; }
.k-route__tag { font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); }
.k-route__title { font-size: 1.75rem; margin-top: 4px; }
.k-route__text { margin-top: 8px; color: var(--muted); max-width: 30ch; }
.k-route__foot { margin-top: 72px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 32px; align-items: center; }
.k-route__photo { grid-column: 1 / span 7; margin: 0; }
.k-route__photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; filter: var(--photo-filter); }
.k-route__cta { grid-column: 9 / span 4; }
.k-route__cta .k-h3 { font-size: var(--fs-h2); line-height: 1.05; }
.k-route__cta .k-muted { margin-top: 14px; }

/* ---------- Page heads, listings, prose ---------- */
.k-pagehead { padding-block: clamp(56px, 7vw, 96px) clamp(32px, 4vw, 56px); border-bottom: 1px solid var(--line); }
.k-pagehead__title { font-size: var(--fs-h1); line-height: 1.06; overflow-wrap: anywhere; hyphens: auto; }
.k-pagehead--article .k-pagehead__title { font-size: clamp(2.125rem, calc(3vw + 1.2rem), 3.75rem); }
.k-pagehead .k-meta { margin-top: 18px; }
.k-pagehead__search { margin-top: 28px; max-width: 520px; }
.k-search { display: flex; gap: 8px; }
.k-search__btn { flex: 0 0 auto; width: 48px; height: 48px; border-radius: var(--radius); border: 1px solid var(--gold); background: var(--gold); color: var(--on-gold); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }

.k-listing { padding-block: clamp(40px, 5vw, 72px) var(--section); }
.k-entries { display: grid; gap: 0; border-top: 1px solid var(--line); }
.k-entry { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 28px; padding-block: 28px; border-bottom: 1px solid var(--line); }
.k-entry__media img { width: 200px; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 2px; filter: var(--photo-filter); }
.k-entry__video { position: relative; display: block; }
.k-entry__play { position: absolute; left: 50%; top: 50%; translate: -50% -50%; width: 44px; height: 44px; border-radius: 50%; background: var(--gold); display: flex; align-items: center; justify-content: center; }
.k-entry__play svg { width: 18px; height: 18px; fill: var(--on-gold); margin-left: 3px; }
.k-entry__initial { display: flex; align-items: center; justify-content: center; width: 200px; aspect-ratio: 16 / 10; background: var(--surface); border: 1px solid var(--line); font-family: var(--display); font-size: 4rem; color: var(--red); }
.k-entry__title { font-size: clamp(1.5rem, calc(1vw + 1.2rem), 2rem); margin-top: 6px; }
.k-entry__title a { text-decoration: none; }
.k-entry .k-muted { margin-top: 10px; }
.k-empty { padding-block: 48px; }
.k-empty .k-muted { margin-top: 10px; }

.k-pagination { margin-top: 48px; }
.k-pagination ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.k-pagination a, .k-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.k-pagination .current { background: var(--gold); border-color: var(--gold); color: var(--on-gold); }

.k-article__thumb { margin-top: 40px; }
.k-article__thumb img { width: 100%; border-radius: 2px; }
.k-prose { padding-block: clamp(40px, 5vw, 64px); font-size: 1.1875rem; line-height: 1.75; overflow-wrap: break-word; }
.k-prose > * + * { margin-top: 1.1em; }
.k-prose h2 { font-size: 2rem; margin-top: 1.8em; }
.k-prose h3 { font-size: 1.5rem; margin-top: 1.6em; }
.k-prose a { color: var(--gold); }
.k-prose blockquote { margin: 1.6em 0; padding: 0 0 0 24px; border-left: 2px solid var(--gold); font-style: italic; color: var(--muted); }
.k-prose img { border-radius: 2px; }
.k-prose figure { margin: 2em 0; }
.k-prose figcaption, .k-prose .wp-caption-text { font-size: var(--fs-small); color: var(--muted); margin-top: 8px; }
.k-prose .alignleft { float: left; margin: 0.3em 1.5em 1em 0; }
.k-prose .alignright { float: right; margin: 0.3em 0 1em 1.5em; }
.k-prose .aligncenter { margin-inline: auto; }
.k-prose::after { content: ""; display: table; clear: both; }
.k-prose table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.k-prose th, .k-prose td { padding: 10px; border-bottom: 1px solid var(--line); text-align: left; }
.k-prose ul, .k-prose ol { padding-left: 1.4em; }
.k-prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.4em 0; }
.k-dropcap::first-letter { float: left; font-family: var(--display); font-size: 4.6em; line-height: 0.8; padding: 0.06em 0.12em 0 0; color: var(--red); }
/* Text colours typed into the editor (often dark red/black) are unreadable on the dark ground. */
:root:not([data-scheme="light"]) .k-prose [style*="color"]:not([style*="background"]) { color: inherit !important; }
:root:not([data-scheme="light"]) .k-prose [style*="background"] { background: transparent !important; color: inherit !important; }
.k-prose iframe:not(.k-yt iframe) { width: 100%; }
.k-prose .wp-block-embed__wrapper .k-yt { margin: 0; }
.k-prose object, .k-prose embed { display: none; }

.k-article__foot { padding-bottom: var(--section); }
.k-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.k-tags a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; font-size: var(--fs-small); }
.k-neighbours { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; border-top: 1px solid var(--line); padding-top: 28px; }
.k-neighbours span { display: block; font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); }
.k-neighbours a { font-family: var(--display); font-size: 1.25rem; text-decoration: none; }
.k-neighbours__next { text-align: right; grid-column: 2; }
.k-children { padding-bottom: var(--section); }
.k-comments { padding-bottom: var(--section); }
.k-comments__list { padding-left: 0; list-style: none; }
.k-comments__list .comment { padding-block: 18px; border-bottom: 1px solid var(--line); }
.k-elementor { min-height: 40vh; }

/* 404 */
.k-404__inner { padding-block: var(--section); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.k-404__lamp { position: relative; width: 150px; height: 120px; display: flex; justify-content: center; }
.k-404 .k-search { width: 100%; max-width: 480px; margin-top: 12px; }

/* ---------- Footer ---------- */
.k-footer { border-top: 1px solid var(--line); background: var(--bg); color: var(--muted); font-size: 0.9375rem; }
.k-footer__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; padding-block: 64px 40px; }
.k-footer__about { grid-column: 1 / span 5; }
.k-footer__name { position: relative; padding-left: 28px; font-family: var(--display); font-size: 1.5rem; line-height: 1.25; color: var(--text); }
.k-footer__name span { font-size: 1rem; font-family: var(--body); color: var(--muted); }
.k-footer__cross { position: absolute; left: 0; top: 2px; width: 16px; height: 26px; }
.k-footer__contact { margin-top: 14px; }
.k-footer__contact a, .k-footer__social a { color: var(--gold); }
.k-footer__nav { grid-column: 6 / span 3; }
.k-footer__menu { list-style: none; margin: 0; padding: 0; }
.k-footer__menu a { display: inline-flex; align-items: center; min-height: 40px; text-decoration: none; }
.k-footer__side { grid-column: 9 / span 4; display: flex; flex-direction: column; gap: 18px; }
.k-footer__social { display: flex; gap: 18px; flex-wrap: wrap; }
.k-footer__social a { display: inline-flex; min-height: 44px; align-items: center; }
.k-footer__credits { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid var(--line); font-size: 0.8125rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	.k-hero__grid, .k-split, .k-videos__top, .k-homilies__grid, .k-monastery__grid, .k-route__foot, .k-footer__grid { grid-template-columns: minmax(0, 1fr); }
	.k-hero__icon, .k-hero__text, .k-split__head, .k-typikon__days, .k-videos__lead, .k-videos__side,
	.k-lead, .k-list, .k-monastery__photo, .k-monastery__text, .k-route__photo, .k-route__cta,
	.k-footer__about, .k-footer__nav, .k-footer__side { grid-column: 1 / -1; }
	.k-hero__text { text-align: center; display: flex; flex-direction: column; align-items: center; }
	.k-hero__lead { margin-inline: auto; }
	.k-today { width: 100%; text-align: left; }
	.k-videos__side { margin-top: 0; }
	.k-vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.k-tracks { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
	.k-header__inner { min-height: 68px; gap: 12px; }
	.k-nav { inset-block-start: 69px; }
	.k-brand__name { font-size: 1.1875rem; }
	.k-brand__cross { width: 16px; height: 28px; }
	.k-niche { width: min(62vw, 230px); }
	.k-hero { padding-top: 32px; }
	.k-hero__title { font-size: clamp(2.125rem, 9.5vw, 2.75rem); }
	.k-hero__cross { margin-inline: auto; }
	.k-day { grid-template-columns: 1fr; padding-block: 20px; }
	.k-day__name { font-size: 1.5rem; }
	.k-vgrid { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(-1 * var(--gutter)); padding: 0 var(--gutter) 12px; scroll-padding-inline: var(--gutter); scrollbar-width: thin; }
	.k-vcard { flex: 0 0 78%; scroll-snap-align: start; }
	.k-today__link { flex: 1 1 100%; }
	.k-chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scrollbar-width: none; }
	.k-chip { flex: 0 0 auto; }
	.k-lead { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; }
	.k-lead__initial { font-size: 4.5rem; }
	.k-entry { grid-template-columns: 1fr; gap: 14px; }
	.k-entry__media img, .k-entry__initial { width: 100%; }
	.k-entry__initial { display: none; }
	.k-neighbours { grid-template-columns: 1fr; }
	.k-neighbours__next { grid-column: 1; text-align: left; }
	.k-prose { font-size: 1.125rem; }
	.k-prose .alignleft, .k-prose .alignright { float: none; margin: 1em 0; }
	/* Route becomes a vertical descent */
	.k-route__steps { grid-template-columns: 1fr; gap: 0; padding-left: 44px; }
	.k-route__steps::before { left: 10px; right: auto; top: 10px; bottom: 30px; width: 2px; height: auto; background: linear-gradient(180deg, var(--text) 0 70%, var(--gold) 100%); transform-origin: center top; }
	.k-route__step { padding-bottom: 28px; }
	.k-route__node { position: absolute; left: -44px; top: 2px; margin: 0; }
	.k-route__step.is-end .k-route__node { left: -53px; top: -6px; margin: 0; }
	.k-route__foot { margin-top: 32px; }
}

/* ---------- Motion (respects prefers-reduced-motion) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.k-lamp__flame { animation: k-flicker 3.2s ease-in-out infinite; }
	.k-lamp__halo { animation: k-breathe 4.8s ease-in-out infinite; }
	.js .k-niche { animation: k-light-up 1.8s var(--ease) both; }
	.js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--delay, 0s); }
	.js [data-reveal="image"] { transform: none; clip-path: inset(0 0 12% 0); transition: opacity 1s var(--ease), clip-path 1.2s var(--ease); }
	.js [data-reveal="icon"] { transform: none; opacity: 1; }
	.js [data-reveal].is-in { opacity: 1; transform: none; }
	.js [data-reveal="image"].is-in { clip-path: inset(0 0 0 0); }
	.js .k-route__steps::before { transform: scaleX(0); transition: transform 1.6s var(--ease) .2s; }
	.js .k-route__steps.is-in::before { transform: none; }
	.js .k-hero__line { animation: k-rise 1s var(--ease) both; }
	.js .k-hero__line + .k-hero__line { animation-delay: .15s; }
	/* Failsafe: if the script never runs, show everything after 2.5 s. */
	.js:not(.k-motion) [data-reveal] { animation: k-failsafe 0s linear 2.5s forwards; }
}
@media (prefers-reduced-motion: no-preference) and (max-width: 720px) {
	.js .k-route__steps::before { transform: scaleY(0); }
}
@keyframes k-flicker { 0%, 100% { transform: scale(1, 1); opacity: 1; } 30% { transform: scale(.94, 1.05); opacity: .92; } 55% { transform: scale(1.04, .97); opacity: 1; } 75% { transform: scale(.97, 1.02); opacity: .95; } }
@keyframes k-breathe { 0%, 100% { opacity: .85; scale: 1; } 50% { opacity: 1; scale: 1.08; } }
@keyframes k-light-up { from { filter: brightness(.25); box-shadow: 0 30px 160px 10px transparent; } to { filter: none; } }
@keyframes k-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes k-failsafe { to { opacity: 1; transform: none; clip-path: none; } }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Print ---------- */
@media print {
	.k-header, .k-footer, .k-fresco, .k-lamp, .k-yt__play, .k-skip, .k-chips { display: none !important; }
	body { background: #fff; color: #000; }
}

/* =====================================================================
   Pages (v1.1): page head with portrait, section navigation, legacy content,
   contact, schedule, brotherhood, galleries
   ===================================================================== */
.k-pagehead--page .k-pagehead__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end; }
.k-pagehead__lead { margin-top: 18px; max-width: 46ch; font-size: clamp(1.0625rem, calc(0.5vw + 0.95rem), 1.25rem); color: var(--muted); }
.k-pagehead__media { position: relative; }
.k-pagehead__portrait { width: clamp(120px, 16vw, 200px); aspect-ratio: 3 / 4; object-fit: cover; border-radius: 999px 999px 4px 4px; box-shadow: inset 0 0 0 1px var(--gold-line), 0 20px 80px -10px var(--glow); filter: var(--icon-filter); }

.k-page { display: grid; grid-template-columns: minmax(0, 1fr); padding-block: clamp(40px, 5vw, 72px) var(--section); }
.k-page--nav { grid-template-columns: 260px minmax(0, 1fr); gap: 32px 64px; align-items: start; }
.k-page__body { min-width: 0; max-width: 760px; }
.k-page:not(.k-page--nav) .k-page__body { margin-inline: auto; width: 100%; }
.k-page .k-prose { padding-block: 0; }
.k-page__aside { position: sticky; top: 100px; }
.admin-bar .k-page__aside { top: 132px; }
.k-sectionnav ul { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--line); }
.k-sectionnav a { display: flex; align-items: center; min-height: 44px; padding: 6px 0 6px 18px; margin-left: -1px; border-left: 2px solid transparent; text-decoration: none; color: var(--muted); line-height: 1.3; }
.k-sectionnav a:hover { color: var(--text); border-left-color: var(--gold-line); }
.k-sectionnav a[aria-current="page"] { color: var(--text); border-left-color: var(--gold); font-weight: 600; }
.k-children { margin-top: 48px; }

/* Legacy editor formatting inside articles and pages (fonts, sizes, colours typed in TinyMCE). */
.k-prose [style*="font-family"], .k-prose font[face] { font-family: inherit !important; }
.k-prose [style*="font-size"] { font-size: inherit !important; }
.k-prose font[color], .k-prose [style*="color"] { color: inherit !important; }
.k-prose [style*="128, 0, 0"], .k-prose [style*="#800000"], .k-prose [style*="#993300"], .k-prose [style*="#ff0000"], .k-prose font[color="#800000"] { color: var(--red) !important; }
.k-prose [style*="background"] { background: transparent !important; }
.k-prose [style*="text-align: center"], .k-prose [style*="text-align:center"] { text-align: center; }
.k-prose hr { clear: both; }
.k-prose em { font-style: italic; }
.k-prose h5, .k-prose h6 { font-size: 1.125rem; font-family: var(--body); font-weight: 600; }
.k-prose img.size-thumbnail, .k-prose img[width="150"] { border-radius: 2px; }
.k-prose .alignleft img, .k-prose img.alignleft { margin-bottom: 0.6em; }
.k-prose a[href$=".jpg"] img, .k-prose a[href$=".jpeg"] img, .k-prose a[href$=".png"] img { transition: opacity .2s; }
.k-prose a[href$=".jpg"]:hover img { opacity: .85; }
.k-prose > :first-child { margin-top: 0; }

/* Contact */
.k-contact__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; padding-block: clamp(40px, 5vw, 72px) var(--section); align-items: start; }
.k-contact__form .k-h3 { margin-bottom: 24px; }
.k-contact__info { display: grid; gap: 16px; }
.k-card { padding: 24px 26px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.k-card__label { font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); margin-bottom: 8px; }
.k-card__label--next { margin-top: 20px; }
.k-card__big { font-family: var(--display); font-size: clamp(1.5rem, calc(1vw + 1.2rem), 2rem); line-height: 1.2; }
.k-card__big a, .k-card__mail a { text-decoration: none; }
.k-card__big a:hover, .k-card__mail a:hover { text-decoration: underline; }
.k-card__mail { font-size: 1.0625rem; overflow-wrap: anywhere; }
.k-card__mail a { display: inline-flex; align-items: center; min-height: 44px; }
.k-card .k-muted { margin-top: 4px; }
.k-bank__text { font-weight: 600; }
.k-bank__text + .k-bank__text { font-weight: 400; color: var(--muted); }
.k-bank { margin: 14px 0 0; display: grid; gap: 10px; }
.k-bank__row { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.k-bank dt { font-size: 0.8125rem; color: var(--muted); }
.k-bank dd { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.k-bank__val { font-variant-numeric: tabular-nums; letter-spacing: 0.02em; overflow-wrap: anywhere; }
.k-copy { min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--gold-line); background: transparent; color: var(--gold); font-size: 0.875rem; cursor: pointer; }
.k-copy:hover { border-color: var(--gold); }
.k-copy.is-done { background: var(--gold); color: var(--on-gold); }

/* Form */
.k-form { display: grid; gap: 22px; }
.k-field { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
.k-field label, .k-field legend { font-weight: 600; font-size: 0.9375rem; padding: 0; }
.k-req { color: var(--red); }
.k-form input[type="text"], .k-form input[type="email"], .k-form textarea {
	width: 100%; min-height: 52px; padding: 12px 16px; border: 1px solid var(--line); border-radius: var(--radius);
	background: var(--bg); color: var(--text); font: inherit; font-size: 1rem; line-height: 1.5;
	transition: border-color .2s, box-shadow .2s;
}
.k-form textarea { min-height: 180px; resize: vertical; }
.k-form input:hover, .k-form textarea:hover { border-color: var(--gold-line); }
.k-form input:focus, .k-form textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold) 28%, transparent); }
.k-form [aria-invalid="true"] { border-color: var(--red) !important; }
.k-field__err { color: var(--red); font-size: 0.875rem; }
.k-topics__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.k-topic { position: relative; display: inline-flex; }
.k-topic input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.k-topic span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--line); border-radius: 999px; font-weight: 400; font-size: 0.9375rem; cursor: pointer; transition: background-color .2s, border-color .2s; }
.k-topic input:hover + span { border-color: var(--gold); }
.k-topic input:checked + span { background: var(--gold); border-color: var(--gold); color: var(--on-gold); }
.k-topic input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 3px; }
.k-check { grid-template-columns: 24px minmax(0, 1fr); align-items: start; gap: 12px; }
.k-check input { width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--gold); }
.k-check label { font-weight: 400; color: var(--muted); }
.k-check .k-field__err { grid-column: 2; }
.k-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.k-form__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding-top: 4px; }
.k-btn--lg { min-height: 56px; padding: 0 28px; font-size: 1.0625rem; }
.k-notice { display: flex; gap: 16px; align-items: flex-start; padding: 20px 22px; margin-bottom: 24px; border-radius: var(--radius); border: 1px solid; }
.k-notice:focus { outline: none; }
.k-notice--ok { border-color: var(--gold); background: color-mix(in srgb, var(--gold) 10%, transparent); }
.k-notice--err { border-color: var(--red); background: color-mix(in srgb, var(--red) 10%, transparent); }
.k-notice__title { font-weight: 600; }
.k-notice ul { margin: 6px 0 0; padding-left: 1.2em; }
.k-notice__cross { width: 18px; height: 30px; flex: 0 0 auto; }

/* Schedule page */
.k-today--wide { max-width: none; margin: 0 0 40px; }
.k-week { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.k-week__day { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.k-week__day.is-today { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold), 0 20px 60px -20px var(--glow); }
.k-week__name { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 1.75rem; margin-bottom: 14px; }
.k-badge { font-family: var(--body); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: var(--gold); color: var(--on-gold); }
.k-week__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.k-week__list li { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.k-week__time { font-family: var(--display); font-size: 1.375rem; color: var(--gold); font-variant-numeric: tabular-nums; }
.k-week__note { margin-top: 24px; }
.k-week__hint { margin-top: 20px; }
.k-lead-text { margin-top: 18px; font-size: 1.1875rem; }

/* Brotherhood */
.k-fathers { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 40px 28px; }
.k-father { text-align: center; }
.k-father img, .k-father__ph { width: 100%; max-width: 220px; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 999px 999px 4px 4px; margin-inline: auto; box-shadow: inset 0 0 0 1px var(--gold-line); filter: var(--photo-filter); background: var(--surface); }
.k-father__ph { display: flex; align-items: center; justify-content: center; }
.k-father__ph .k-cross { width: 30px; height: 50px; }
.k-father__name { margin-top: 16px; font-family: var(--display); font-size: 1.375rem; line-height: 1.25; }
.k-father__role { margin-top: 4px; font-size: 0.8125rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); }

/* Galleries & chronicle */
.k-section--tight { padding-block: 56px; }
.k-empty-card { display: flex; gap: 28px; align-items: flex-start; margin-block: clamp(40px, 5vw, 64px) 0; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); max-width: 860px; }
.k-empty-card__icon { position: relative; flex: 0 0 auto; width: 64px; }
.k-empty-card__icon .k-lamp__svg { margin: 0; width: 56px; }
.k-empty-card .k-muted { margin-top: 10px; max-width: 56ch; }
.k-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.k-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.k-prose--wide { max-width: none; padding-block: 48px; }
.k-year { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px 32px; padding-block: 28px; border-top: 1px solid var(--line); }
.k-year:last-child { border-bottom: 1px solid var(--line); }
.k-year__num { font-size: 2.5rem; color: var(--gold); line-height: 1; }
.k-chronicle { list-style: none; margin: 0; padding: 0; }
.k-chronicle a { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 48px; padding-block: 6px; text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent); }
.k-chronicle li:last-child a { border-bottom: 0; }
.k-chronicle .k-icon { color: var(--gold); flex: 0 0 auto; transition: transform .2s var(--ease); }
.k-chronicle a:hover .k-icon { transform: translateX(4px); }
.k-chronicle--compact { margin-top: 20px; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 0 32px; }
.k-chronicle--compact a { justify-content: flex-start; }
.k-chronicle__year { flex: 0 0 auto; font-family: var(--display); color: var(--gold); min-width: 3.2em; }

@media (max-width: 960px) {
	.k-page--nav { grid-template-columns: minmax(0, 1fr); }
	.k-page__aside { position: static; order: 2; padding-top: 32px; border-top: 1px solid var(--line); }
	.k-contact__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
	.k-pagehead--page .k-pagehead__grid { grid-template-columns: minmax(0, 1fr); }
	.k-pagehead__media { order: -1; }
	.k-pagehead__portrait { width: 120px; }
	.k-year { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.k-year__num { font-size: 2rem; }
	.k-empty-card { flex-direction: column; }
	.k-fathers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
	.k-father__name { font-size: 1.125rem; }
	.k-form__foot .k-btn { width: 100%; }
}

.k-week__end { display: block; font-size: 0.875rem; color: var(--muted); }
.k-chronicle--compact a { align-items: baseline; padding-block: 12px; }
.k-chronicle--compact li:last-child a { border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent); }
.k-notice--err { display: block; }
#k-contact, .k-notice { scroll-margin-top: 96px; }
.k-notice__more { margin-top: 10px; }

/* ---------- Photo viewer ---------- */
.k-lb { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(10, 8, 6, 0.96); color: #f3ebdb; overflow: hidden; }
.k-lb::backdrop { background: rgba(10, 8, 6, 0.96); }
.k-lb-open, .k-lb-open body { overflow: hidden; }
.k-lb__fig { position: absolute; inset: 0; margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 64px 72px 20px; }
.k-lb__img { display: block; max-width: 100%; max-height: calc(100% - 40px); width: auto; height: auto; object-fit: contain; border-radius: 2px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6); transition: opacity .2s ease; filter: none; }
.k-lb.is-loading .k-lb__img { opacity: 0.35; }
.k-lb__cap { display: flex; gap: 16px; align-items: baseline; font-size: 0.875rem; color: rgba(243, 235, 219, 0.75); min-height: 1.4em; }
.k-lb__count { font-variant-numeric: tabular-nums; letter-spacing: 0.08em; }
.k-lb__btn { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 999px; border: 1px solid rgba(214, 179, 106, 0.4); background: rgba(18, 14, 10, 0.7); color: #f3ebdb; cursor: pointer; }
.k-lb__btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.k-lb__btn:hover { border-color: #d6b36a; color: #d6b36a; }
.k-lb__btn:focus-visible { outline: 2px solid #d6b36a; outline-offset: 3px; }
.k-lb__close { top: 12px; right: 12px; }
.k-lb__prev, .k-lb__next { top: 50%; transform: translateY(-50%); }
.k-lb__prev { left: 12px; }
.k-lb__next { right: 12px; }
.k-lb.is-single .k-lb__prev, .k-lb.is-single .k-lb__next { display: none; }
@media (max-width: 720px) {
	.k-lb__fig { padding: 60px 8px 76px; }
	.k-lb__prev, .k-lb__next { top: auto; bottom: 14px; transform: none; }
	.k-lb__prev { left: calc(50% - 60px); }
	.k-lb__next { right: calc(50% - 60px); }
	.k-lb__cap { position: absolute; left: 16px; bottom: 28px; }
}
@media (prefers-reduced-motion: reduce) { .k-lb__img { transition: none; } }
.k-gallery a { display: block; }
.k-gallery a, .k-prose a:has(> img) { cursor: zoom-in; }
.k-gallery a { overflow: hidden; border-radius: 2px; }
.k-gallery img { transition: transform .4s var(--ease), filter .4s var(--ease); }
.k-gallery a:hover img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .k-gallery img { transition: none; } .k-gallery a:hover img { transform: none; } }
