/* Orthodox Zone - Developed by dgm (dgm@tuta.com) */
/* orthodox.zone-web/assets/css/style.css */

:root {
	/* Brand colours */
	--oz-navy: #102947;
	--oz-navy-soft: #1c3a5f;
	--oz-parchment: #f5efe4;
	--oz-bg-deep: #0f1724;
	--oz-off-white: #fffaf1;
	--oz-surface-muted: #ebe1cf;
	--oz-muted-gold: #b77d22;
	--oz-gold-soft: #e5bd68;
	--oz-stone-grey: #c9c0b2;
	--oz-celtic-green: #426552;
	--oz-celtic-green-soft: #5f8b72;
	--oz-deep-red: #7e2734;
	--oz-sky: #d7e9ee;
	--oz-link: var(--oz-navy);
	--oz-text: #121a23;
	--oz-text-muted: #41505f;
	--oz-card-bg: #fffaf1;
	--oz-border: #d8cbb6;

	/* Liturgical accent colours */
	--accent-gold: var(--oz-muted-gold);
	--accent-gold-soft: var(--oz-gold-soft);
	--accent-green: var(--oz-celtic-green);
	--accent-red: var(--oz-deep-red);
	--accent-blue: var(--oz-sky);

	/* Typography */
	--font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--font-display: Georgia, "Times New Roman", serif;
	--font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--line-body: 1.62;
	--line-heading: 1.12;

	/* Layout */
	--width-page: 1160px;
	--width-readable: 760px;
	--width-narrow: 620px;

	/* Spacing */
	--space-1: 0.35rem;
	--space-2: 0.65rem;
	--space-3: 1rem;
	--space-4: 1.5rem;
	--space-5: 2rem;
	--space-6: 3rem;
	--space-7: 4.5rem;

	/* Borders */
	--radius-xs: 3px;
	--radius-sm: 4px;
	--radius-md: 8px;
	--border-thin: 1px solid var(--oz-border);
	--border-gold: 1px solid rgba(183, 125, 34, 0.45);

	/* Shadows */
	--shadow-soft: 0 18px 44px rgba(17, 25, 38, 0.13);
	--shadow-card: 0 1px 0 rgba(255, 255, 255, 0.7) inset, 0 12px 26px rgba(17, 25, 38, 0.08);

	/* Components */
	--header-height: 74px;
	--button-height: 2.8rem;
	--card-padding: var(--space-4);
	--section-padding: clamp(2.5rem, 6vw, 4.5rem);
	--section-padding-large: clamp(3.5rem, 9vw, 7rem);
}

* {
	box-sizing: border-box;
}

html {
	background: var(--oz-parchment);
	color: var(--oz-text);
	font-size: 100%;
}

body {
	margin: 0;
	background:
		linear-gradient(180deg, rgba(255, 250, 241, 0.95), rgba(245, 239, 228, 0.98)),
		repeating-linear-gradient(90deg, rgba(183, 125, 34, 0.055) 0 1px, transparent 1px 20px);
	color: var(--oz-text);
	font-family: var(--font-body);
	line-height: var(--line-body);
}

body.nav-open {
	overflow: hidden;
}

a {
	color: var(--oz-link);
	text-decoration-color: rgba(183, 125, 34, 0.72);
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--accent-red);
}

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

:focus-visible {
	outline: 3px solid var(--accent-gold);
	outline-offset: 3px;
}

.site-header {
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	background: rgba(255, 250, 241, 0.9);
	border-bottom: var(--border-thin);
	position: sticky;
	top: 0;
	z-index: 20;
}

.nav-wrap,
.section,
.footer-inner {
	margin: 0 auto;
	max-width: var(--width-page);
	padding-inline: clamp(1rem, 4vw, 2rem);
}

.nav-wrap {
	align-items: center;
	display: flex;
	gap: var(--space-4);
	justify-content: space-between;
	min-height: var(--header-height);
}

.brand {
	align-items: center;
	color: var(--oz-navy);
	display: inline-flex;
	font-family: var(--font-ui);
	font-size: 1.05rem;
	font-weight: 800;
	gap: var(--space-2);
	letter-spacing: 0;
	text-decoration: none;
}

.brand-mark {
	align-items: center;
	background:
		linear-gradient(135deg, var(--oz-navy), var(--oz-celtic-green)),
		var(--oz-navy);
	border: 1px solid rgba(183, 125, 34, 0.85);
	border-radius: 50%;
	box-shadow: 0 8px 18px rgba(16, 41, 71, 0.18);
	color: var(--accent-gold-soft);
	display: inline-flex;
	font-family: var(--font-display);
	font-size: 1.2rem;
	height: 2.35rem;
	justify-content: center;
	line-height: 1;
	width: 2.35rem;
}

.nav-toggle {
	background: var(--oz-navy);
	border: 1px solid var(--oz-navy);
	border-radius: var(--radius-sm);
	color: var(--oz-off-white);
	display: none;
	font: 700 0.92rem/1 var(--font-ui);
	padding: 0.75rem 0.9rem;
}

.site-nav ul {
	align-items: center;
	display: flex;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav a {
	border-radius: var(--radius-sm);
	color: var(--oz-text);
	display: inline-block;
	font-family: var(--font-ui);
	font-size: 0.94rem;
	font-weight: 650;
	padding: 0.55rem 0.75rem;
	text-decoration: none;
}

.site-nav a:hover,
.site-nav a[aria-current="page"] {
	background: rgba(215, 233, 238, 0.72);
	color: var(--oz-navy);
}

.hero,
.page-header {
	color: var(--oz-off-white);
	overflow: hidden;
	position: relative;
}

.hero {
	background:
		linear-gradient(135deg, rgba(15, 23, 36, 0.98), rgba(16, 41, 71, 0.96) 48%, rgba(66, 101, 82, 0.9)),
		repeating-linear-gradient(45deg, rgba(229, 189, 104, 0.18) 0 1px, transparent 1px 18px);
	padding-block: var(--section-padding-large);
}

.page-header {
	background:
		linear-gradient(135deg, rgba(15, 23, 36, 0.98), rgba(28, 58, 95, 0.93), rgba(66, 101, 82, 0.88)),
		repeating-linear-gradient(135deg, rgba(229, 189, 104, 0.14) 0 1px, transparent 1px 18px);
	padding-block: clamp(3rem, 7vw, 5.5rem);
}

.hero::before,
.page-header::before,
.celtic-border::before {
	border-block: 4px double rgba(229, 189, 104, 0.72);
	content: "";
	height: 10px;
	inset: 1rem clamp(1rem, 4vw, 2rem) auto;
	position: absolute;
}

.hero::after,
.page-header::after {
	background:
		linear-gradient(90deg, transparent, rgba(229, 189, 104, 0.38), transparent),
		linear-gradient(180deg, transparent, rgba(255, 250, 241, 0.08));
	content: "";
	height: 9rem;
	inset: auto 0 0;
	pointer-events: none;
	position: absolute;
}

.hero .section,
.page-header .section {
	position: relative;
	z-index: 1;
}

.hero h1,
.page-header h1 {
	color: var(--oz-off-white);
	font-family: var(--font-display);
	font-size: clamp(2.3rem, 7vw, 5.2rem);
	line-height: 1.02;
	margin: 0;
	max-width: 880px;
}

.hero p,
.page-header p {
	color: var(--oz-off-white);
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	margin: var(--space-4) 0 0;
	max-width: var(--width-readable);
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-top: var(--space-5);
}

.section {
	padding-block: var(--section-padding);
}

.section-muted {
	background:
		linear-gradient(180deg, rgba(235, 225, 207, 0.64), rgba(255, 250, 241, 0.7)),
		var(--oz-parchment);
	border-block: var(--border-thin);
}

.section-tight {
	padding-block: clamp(1.5rem, 4vw, 2.5rem);
}

.section-heading,
.readable {
	max-width: var(--width-readable);
}

.section-heading {
	margin-bottom: var(--space-5);
}

.readable > * + * {
	margin-top: var(--space-3);
}

.section-heading h2,
.readable h2,
.copy h2,
.card h2,
.card h3,
.feature-card h2,
.feature-card h3 {
	color: var(--oz-navy);
	font-family: var(--font-display);
	line-height: var(--line-heading);
	margin: 0 0 var(--space-2);
}

.section-heading h2,
.readable h2,
.copy h2 {
	font-size: clamp(1.65rem, 3vw, 2.35rem);
}

.section-heading p,
.readable p,
.copy p,
.card p,
.feature-card p,
.list-panel p,
.resource-list p {
	color: var(--oz-text-muted);
	margin: 0;
}

.card-grid,
.grid {
	display: grid;
	gap: var(--space-4);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.two-column,
.split {
	display: grid;
	gap: var(--space-5);
	grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
}

.card,
.feature-card,
.list-panel,
.resource-list,
.notice {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.48), rgba(255, 250, 241, 0.9)),
		var(--oz-card-bg);
	border: var(--border-thin);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	padding: var(--card-padding);
}

.card,
.feature-card {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	min-height: 100%;
	position: relative;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.card::before,
.feature-card::before {
	background: linear-gradient(90deg, var(--accent-gold), var(--oz-celtic-green-soft), var(--accent-blue));
	border-radius: var(--radius-md) var(--radius-md) 0 0;
	content: "";
	height: 4px;
	inset: 0 0 auto;
	position: absolute;
}

.card-link {
	color: inherit;
	text-decoration: none;
}

.card-link:hover {
	border-color: var(--accent-gold);
	box-shadow: var(--shadow-soft);
	color: inherit;
	transform: translateY(-2px);
}

.card-icon {
	align-items: center;
	background: linear-gradient(135deg, var(--oz-navy), var(--oz-celtic-green));
	border-radius: 50%;
	color: var(--accent-gold-soft);
	display: inline-flex;
	font-family: var(--font-ui);
	font-size: 1.35rem;
	font-weight: 800;
	height: 2.7rem;
	justify-content: center;
	width: 2.7rem;
}

.feature-card {
	border-color: rgba(183, 125, 34, 0.5);
}

.resource-list ul,
.list-panel ul,
.readable ul,
.copy ul {
	margin: var(--space-3) 0 0;
	padding-left: 1.2rem;
}

.resource-list li,
.list-panel li,
.readable li,
.copy li {
	margin-top: var(--space-2);
}

.button {
	align-items: center;
	border: 1px solid currentColor;
	border-radius: var(--radius-sm);
	display: inline-flex;
	font-family: var(--font-ui);
	font-weight: 750;
	justify-content: center;
	min-height: var(--button-height);
	padding: 0.72rem 1rem;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.button-primary {
	background: linear-gradient(135deg, var(--accent-gold-soft), var(--accent-gold));
	border-color: var(--accent-gold);
	color: #121820;
}

.button-secondary {
	background: rgba(255, 250, 241, 0.1);
	color: var(--oz-off-white);
}

.button:hover {
	transform: translateY(-1px);
}

.eyebrow,
.badge {
	color: var(--accent-gold);
	font-family: var(--font-ui);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.badge {
	display: inline-block;
	margin: 0;
}

.meta {
	color: var(--oz-celtic-green);
	font-family: var(--font-ui);
	font-size: 0.88rem;
	font-weight: 700;
	margin-top: auto;
}

.notice {
	border-left: 4px solid var(--accent-gold);
}

.calendar-shell {
	display: grid;
	gap: var(--space-4);
}

.calendar-controls {
	align-items: end;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.48), rgba(255, 250, 241, 0.9)),
		var(--oz-card-bg);
	border: var(--border-thin);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	display: grid;
	gap: var(--space-3);
	grid-template-columns: repeat(3, minmax(0, auto)) minmax(11rem, 1fr) auto;
	padding: var(--card-padding);
}

.calendar-controls label {
	color: var(--oz-text-muted);
	font-family: var(--font-ui);
	font-size: 0.9rem;
	font-weight: 700;
}

.calendar-status,
.calendar-loading,
.calendar-empty,
.calendar-error {
	border-radius: var(--radius-md);
	font-family: var(--font-ui);
	padding: var(--space-3) var(--space-4);
}

.calendar-status {
	background: rgba(215, 233, 238, 0.62);
	border: 1px solid rgba(16, 41, 71, 0.18);
	color: var(--oz-navy);
}

.calendar-loading {
	background: rgba(229, 189, 104, 0.18);
	border: var(--border-gold);
	color: var(--oz-navy);
}

.calendar-empty {
	background: rgba(255, 250, 241, 0.86);
	border: var(--border-thin);
	color: var(--oz-text-muted);
}

.calendar-error {
	background: rgba(126, 39, 52, 0.1);
	border: 1px solid rgba(126, 39, 52, 0.42);
	color: var(--oz-deep-red);
}

.calendar-day,
.calendar-card {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.52), rgba(255, 250, 241, 0.94)),
		var(--oz-card-bg);
	border: var(--border-thin);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	padding: var(--card-padding);
}

.calendar-day {
	display: grid;
	gap: var(--space-4);
}

.calendar-day-heading {
	border-bottom: var(--border-gold);
	padding-bottom: var(--space-3);
}

.calendar-day-heading h2,
.calendar-card-title {
	color: var(--oz-navy);
	font-family: var(--font-display);
	line-height: var(--line-heading);
	margin: 0;
}

.calendar-day-heading h2 {
	font-size: clamp(1.8rem, 4vw, 3rem);
}

.calendar-meta {
	display: grid;
	gap: var(--space-2) var(--space-4);
	grid-template-columns: minmax(9rem, max-content) minmax(0, 1fr);
	margin: 0;
}

.calendar-meta dt,
.calendar-detail-list dt {
	color: var(--oz-navy);
	font-family: var(--font-ui);
	font-weight: 800;
}

.calendar-meta dd,
.calendar-detail-list dd {
	color: var(--oz-text-muted);
	margin: 0;
}

.calendar-card-grid {
	display: grid;
	gap: var(--space-4);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

.calendar-card {
	border-color: rgba(183, 125, 34, 0.45);
/*	display: grid; */
	gap: var(--space-3);
	position: relative;
}

.calendar-card::before {
	background: linear-gradient(90deg, var(--accent-gold), var(--oz-celtic-green-soft), var(--accent-blue));
	border-radius: var(--radius-md) var(--radius-md) 0 0;
	content: "";
	height: 4px;
	inset: 0 0 auto;
	position: absolute;
}

.calendar-card-title {
	font-size: 1.25rem;
	padding-top: var(--space-1);
}

.calendar-list {
	margin: 0;
	padding-top: 0.5rem;
	padding-left: 1.2rem;
}

.calendar-list li + li {
	margin-top: var(--space-2);
}

.calendar-tags {
	display: inline-flex;
	flex-wrap: wrap;
	gap: var(--space-1);
	margin-left: var(--space-2);
	vertical-align: middle;
}

.calendar-tag {
	border: var(--border-gold);
	border-radius: 999px;
	color: var(--oz-celtic-green);
	display: inline-block;
	font-family: var(--font-ui);
	font-size: 0.76rem;
	font-weight: 800;
	line-height: 1.2;
	padding: 0.12rem 0.45rem;
}

.calendar-detail-list {
	display: grid;
	gap: var(--space-2);
	margin: 0;
	padding-left: 0;
}

.calendar-card pre {
	background: rgba(16, 41, 71, 0.07);
	border: var(--border-thin);
	border-radius: var(--radius-sm);
	color: var(--oz-text);
	font-size: 0.88rem;
	margin: 0;
	max-height: 24rem;
	overflow: auto;
	padding: var(--space-3);
	white-space: pre-wrap;
}

.page-header .calendar-badge {
	background: rgba(229, 189, 104, 0.14);
	border: var(--border-gold);
	border-radius: 999px;
	color: var(--accent-gold-soft);
	display: inline-block;
	font-family: var(--font-ui);
	font-size: 0.82rem;
	font-weight: 800;
	margin-top: var(--space-4);
	padding: 0.35rem 0.75rem;
	text-transform: uppercase;
}

.calendar-date-input {
	background: var(--oz-off-white);
	border: var(--border-thin);
	border-radius: var(--radius-sm);
	color: var(--oz-text);
	font: inherit;
	min-height: var(--button-height);
	padding: 0.62rem 0.75rem;
	width: 100%;
}

.cross-divider {
	align-items: center;
	color: var(--accent-gold);
	display: flex;
	font-family: var(--font-display);
	font-size: 1.2rem;
	gap: var(--space-3);
	justify-content: center;
	margin: var(--space-5) auto;
	max-width: var(--width-readable);
}

.cross-divider::before,
.cross-divider::after {
	background: linear-gradient(90deg, transparent, rgba(183, 125, 34, 0.72), transparent);
	content: "";
	height: 1px;
	width: min(34vw, 16rem);
}

.celtic-border {
	position: relative;
}

.copy {
	max-width: var(--width-readable);
}

.copy p + p,
.copy ul + p,
.copy p + ul {
	margin-top: var(--space-3);
}

.feature-band {
	background:
		linear-gradient(135deg, var(--oz-bg-deep), var(--oz-navy), #173f42),
		var(--oz-navy);
	color: var(--oz-off-white);
}

.feature-band h2,
.feature-band p {
	color: var(--oz-off-white);
}

.feature-band .card,
.feature-band .feature-card {
	background: rgba(255, 250, 241, 0.08);
	border-color: rgba(229, 189, 104, 0.38);
	box-shadow: none;
}

.feature-band .card h3,
.feature-band .card p,
.feature-band .feature-card h3,
.feature-band .feature-card p {
	color: var(--oz-off-white);
}

.site-footer {
	background: linear-gradient(135deg, var(--oz-bg-deep), #101f31);
	color: var(--oz-surface-muted);
}

.footer-inner {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	justify-content: space-between;
	padding-block: var(--space-5);
}

.footer-inner a {
	color: var(--accent-gold-soft);
}

.footer-title {
	color: var(--oz-off-white);
	font-family: var(--font-ui);
	font-weight: 800;
	margin: 0 0 var(--space-2);
}

.footer-inner p {
	margin: 0;
	max-width: 560px;
}

.footer-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

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

	.site-nav {
		background: var(--oz-off-white);
		border-top: var(--border-thin);
		box-shadow: var(--shadow-soft);
		display: none;
		inset: var(--header-height) 0 auto;
		padding: var(--space-3);
		position: absolute;
	}

	.site-nav[data-open="true"] {
		display: block;
	}

	.site-nav ul {
		align-items: stretch;
		flex-direction: column;
	}

	.site-nav a {
		display: block;
		padding: 0.85rem 1rem;
	}

	.two-column,
	.split {
		grid-template-columns: 1fr;
	}

	.calendar-controls {
		grid-template-columns: 1fr 1fr;
	}

	.calendar-controls label,
	.calendar-date-input,
	.calendar-controls .button-primary {
		grid-column: 1 / -1;
	}

	.calendar-meta {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	:root {
		--header-height: 66px;
	}

	.brand {
		font-size: 0.98rem;
	}

	.brand-mark {
		height: 2.1rem;
		width: 2.1rem;
	}

	.hero-actions,
	.button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	* {
		scroll-behavior: auto;
		transition-duration: 0.01ms !important;
	}
}
