/*
 * Elina theme v2 — brand colours from the ELINA logo.
 * Every text/background pair meets WCAG 2.1 AA (checked with tools/contrast.py).
 */

:root {
	--c-white: #ffffff;
	--c-mist: #f4f7f3;        /* light section background */
	--c-mint: #e8f3ec;        /* light green background */
	--c-green: #116c43;       /* logo green — white on it 6.46:1, on white 6.46:1 */
	--c-green-dark: #0e5435;  /* hover — on white 8.98:1 */
	--c-forest: #0b3d27;      /* deep — white on it 12.27:1 */
	--c-leaf: #189555;        /* decorative only (never text) */
	--c-slate: #2f3a34;       /* white on it 11.83:1 */
	--c-ink: #1d2420;         /* on white 15.84:1 */
	--c-muted: #57605a;       /* on white 6.51:1, on mist 6.03:1 */
	--c-line: #dfe6e1;
	--c-border: #767676;      /* form borders, non-text 4.54:1 */
	--c-on-dark: #c8e6d4;     /* light green text on forest 9.19:1 */
	--c-focus: #ffd24a;       /* focus ring on dark 8.52:1 */
	--c-error: #b3261e;
	--font: Commissioner, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--wrap: 1200px;
	--gutter: clamp(16px, 4vw, 32px);
	--radius: 10px;
	--shadow: 0 1px 2px rgba(11, 61, 39, 0.06), 0 8px 24px rgba(11, 61, 39, 0.08);
}

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

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--c-white);
	color: var(--c-ink);
	font-family: var(--font);
	font-size: 1.0625rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img,
iframe { max-width: 100%; }
img { height: auto; }

h1, h2, h3, h4 {
	margin: 1.6em 0 0.55em;
	color: inherit;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.015em;
	text-wrap: balance;
}
h1 { font-size: clamp(2rem, 1.45rem + 2.4vw, 3.25rem); font-weight: 800; }
h2 { font-size: clamp(1.55rem, 1.25rem + 1.3vw, 2.25rem); }
h3 { font-size: 1.25rem; letter-spacing: -0.01em; }

p { margin: 0 0 1em; }

a { color: var(--c-green); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--c-green-dark); text-decoration-thickness: 2px; }

:focus-visible {
	outline: 3px solid var(--c-green);
	outline-offset: 3px;
	border-radius: 2px;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link {
	position: absolute;
	left: 8px;
	top: -100px;
	z-index: 1000;
	padding: 12px 18px;
	border-radius: 6px;
	background: var(--c-forest);
	color: var(--c-white);
	font-weight: 700;
}
.skip-link:focus { top: 8px; color: var(--c-white); outline-color: var(--c-focus); }

.container {
	width: 100%;
	max-width: calc(var(--wrap) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}

main:focus { outline: none; }

/* ---------- Header ---------- */

.site-header { position: relative; z-index: 50; background: var(--c-white); }

.topbar { background: var(--c-mist); border-bottom: 1px solid var(--c-line); }
.topbar-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	padding-block: 8px;
}
.espa-banners { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.espa-banner { display: block; line-height: 0; border-radius: 4px; }
.espa-banner img { width: auto; height: 60px; border: 1px solid var(--c-line); border-radius: 4px; background: var(--c-white); }

.lang-switcher ul { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.lang-switcher a {
	display: inline-block;
	min-width: 44px;
	padding: 8px 10px;
	border-radius: 6px;
	color: var(--c-green);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
	text-decoration: none;
}
.lang-switcher a:hover { background: var(--c-mint); color: var(--c-green-dark); }
.lang-switcher a[aria-current="true"] { background: var(--c-green); color: var(--c-white); }

.mainbar { border-bottom: 1px solid var(--c-line); box-shadow: 0 2px 12px rgba(11, 61, 39, 0.05); }
.mainbar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	padding-block: 14px;
}
.site-logo { display: inline-block; flex: none; line-height: 0; }
.site-logo--color img { width: 230px; height: auto; }

.main-nav .menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.main-nav .menu a {
	position: relative;
	display: block;
	padding: 10px 14px;
	border-radius: 6px;
	color: var(--c-ink);
	font-weight: 600;
	text-decoration: none;
}
.main-nav .menu a:hover { background: var(--c-mint); color: var(--c-green-dark); }
.main-nav .menu .current-menu-item > a,
.main-nav .menu .current_page_parent > a,
.main-nav .menu a[aria-current="page"] { color: var(--c-green); }
.main-nav .menu .current-menu-item > a::after,
.main-nav .menu .current_page_parent > a::after,
.main-nav .menu a[aria-current="page"]::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 2px;
	height: 3px;
	border-radius: 3px;
	background: var(--c-green);
}

.menu-toggle {
	display: none;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border: 2px solid var(--c-green);
	border-radius: 8px;
	background: var(--c-white);
	color: var(--c-green);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.menu-toggle:hover { background: var(--c-mint); }
.menu-toggle__icon,
.menu-toggle__icon::before,
.menu-toggle__icon::after {
	display: block;
	position: relative;
	width: 20px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
}
.menu-toggle__icon::before,
.menu-toggle__icon::after { content: ""; position: absolute; left: 0; }
.menu-toggle__icon::before { top: -6px; }
.menu-toggle__icon::after { top: 6px; }
.main-nav.is-open .menu-toggle__icon { background: transparent; }
.main-nav.is-open .menu-toggle__icon::before { top: 0; transform: rotate(45deg); }
.main-nav.is-open .menu-toggle__icon::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 959px) {
	.espa-banner img { height: 44px; }
	.site-logo--color img { width: 170px; }
	.has-js .menu-toggle { display: inline-flex; }
	.main-nav { position: static; }
	.has-js .main-nav .menu {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		flex-direction: column;
		gap: 0;
		padding: 8px var(--gutter) 16px;
		border-bottom: 1px solid var(--c-line);
		background: var(--c-white);
		box-shadow: var(--shadow);
	}
	.has-js .main-nav.is-open .menu { display: flex; }
	.main-nav .menu a { padding: 14px 8px; border-bottom: 1px solid var(--c-line); border-radius: 0; }
	.main-nav .menu .current-menu-item > a::after,
	.main-nav .menu a[aria-current="page"]::after { left: 0; right: auto; top: 12px; bottom: 12px; width: 3px; height: auto; }
	.mainbar { position: relative; }
}

/* ---------- Page header (inner pages) ---------- */

.page-header {
	margin-bottom: clamp(32px, 5vw, 56px);
	padding: clamp(32px, 6vw, 64px) 0 clamp(28px, 5vw, 48px);
	background:
		radial-gradient(circle at 85% 20%, rgba(24, 149, 85, 0.35), transparent 45%),
		var(--c-forest);
	color: var(--c-white);
}
.page-header :focus-visible { outline-color: var(--c-focus); }
.page-title { max-width: 900px; margin: 0; }
.page-header .entry-date { margin: 14px 0 0; color: var(--c-on-dark); }

.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0 0 14px; padding: 0; list-style: none; font-size: 0.95rem; }
.breadcrumb li { color: var(--c-on-dark); }
.breadcrumb li + li::before { content: "/"; margin: 0 10px; color: var(--c-on-dark); }
.breadcrumb a { color: var(--c-white); }
.breadcrumb [aria-current="page"] {
	display: inline-block;
	max-width: 40ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}

/* ---------- Content ---------- */

.entry-content { padding-bottom: clamp(48px, 7vw, 88px); }
.entry-content > *:first-child { margin-top: 0; }
.entry-content:not(.entry-content--front) { max-width: calc(800px + 2 * var(--gutter)); }
.entry-content:not(.entry-content--front) h2 { font-size: clamp(1.35rem, 1.2rem + 0.6vw, 1.7rem); color: var(--c-forest); }

.entry-content ul,
.entry-content ol { padding-left: 1.3em; }
.entry-content li { margin-bottom: 0.4em; }
.entry-content li::marker { color: var(--c-green); }

.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th,
.entry-content td { padding: 10px 12px; border: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.entry-content th { background: var(--c-mist); }

.entry-content blockquote,
.wp-block-quote {
	margin: 1.5em 0;
	padding: 0.5em 1.25em;
	border-left: 4px solid var(--c-green);
	font-size: 1.15rem;
	font-style: italic;
}

.entry-content .wp-block-image img { border-radius: var(--radius); }

.entry-thumbnail { margin: 0 0 32px; }
.entry-thumbnail img { display: block; width: 100%; border-radius: var(--radius); box-shadow: var(--shadow); }

.entry-tags { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--c-line); }
.entry-tags__title { margin: 0 0 10px; font-size: 1rem !important; color: var(--c-muted) !important; }
.entry-tags ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.entry-tags li { margin: 0; }
.entry-tags a {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--c-mint);
	color: var(--c-green-dark);
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
}
.entry-tags a:hover { background: var(--c-green); color: var(--c-white); }

.back-link { margin-top: 32px; font-weight: 700; }
.back-link a { text-decoration: none; }
.back-link a:hover { text-decoration: underline; }

/* Text colour set on a block → its links follow it (keeps contrast on dark backgrounds). */
.has-text-color a:not(.wp-block-button__link):not(.wp-element-button) { color: inherit; }

/* Dark backgrounds get a yellow focus ring. */
.has-green-background-color :focus-visible,
.has-green-dark-background-color :focus-visible,
.has-green-deep-background-color :focus-visible,
.has-charcoal-background-color :focus-visible,
.site-footer :focus-visible { outline-color: var(--c-focus); }

/* ---------- Buttons ---------- */

.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.wp-block-button__link,
.wp-element-button,
.button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 13px 26px;
	border: 2px solid var(--c-green);
	border-radius: 8px;
	background: var(--c-green);
	color: var(--c-white);
	font: inherit;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.wp-block-button__link:hover,
.wp-element-button:hover,
.button:hover { border-color: var(--c-green-dark); background: var(--c-green-dark); color: var(--c-white); }

.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--c-green); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--c-green); color: var(--c-white); }

/* Buttons on dark bands: solid = white, outline = white border. */
.has-green-deep-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.has-green-dark-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.has-green-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	border-color: var(--c-white);
	background: var(--c-white);
	color: var(--c-forest);
}
.has-green-deep-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.has-green-dark-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.has-green-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--c-mint); border-color: var(--c-mint); }
.has-green-deep-background-color .wp-block-button.is-style-outline .wp-block-button__link,
.has-green-dark-background-color .wp-block-button.is-style-outline .wp-block-button__link,
.has-green-background-color .wp-block-button.is-style-outline .wp-block-button__link { border-color: var(--c-white); color: var(--c-white); }
.has-green-deep-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
.has-green-dark-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
.has-green-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--c-white); color: var(--c-forest); }

/* ---------- Front page ---------- */

.entry-content--front { padding-bottom: 0; }
.entry-content--front > :not(.alignfull) { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.entry-content--front > .alignfull { margin-top: 0; margin-bottom: 0; }

.eyebrow {
	margin: 0 0 12px;
	color: var(--c-green);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.has-green-deep-background-color .eyebrow,
.has-green-dark-background-color .eyebrow { color: var(--c-on-dark); }

.entry-content--front .section { padding: clamp(56px, 8vw, 104px) var(--gutter); }
.entry-content--front .section > * { max-width: var(--wrap); margin-inline: auto; }
.entry-content--front .section h2 { margin-top: 0; }
.section--center { text-align: center; }
.section--center > h2,
.section--center > p { max-width: 760px !important; }
.section--center .wp-block-buttons { justify-content: center; }

/* Hero */
.wp-block-media-text { gap: 0; }
.wp-block-media-text > .wp-block-media-text__media { align-self: stretch; }
.wp-block-media-text__media img { display: block; width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
.wp-block-media-text .wp-block-media-text__content { padding: clamp(40px, 6vw, 88px) clamp(20px, 5vw, 72px); }
.wp-block-media-text .wp-block-media-text__content > :first-child { margin-top: 0; }

.hero { position: relative; overflow: hidden; }
.hero h1 { margin: 0 0 20px; }
.hero p:not(.eyebrow) { max-width: 560px; color: var(--c-on-dark); font-size: clamp(1.05rem, 1rem + 0.3vw, 1.2rem); }
@media (min-width: 782px) {
	/* Text left, photo right (photos are decorative, so DOM order does not matter). */
	.hero.wp-block-media-text { grid-template-columns: 50% 1fr !important; min-height: min(78vh, 640px); }
	.hero.wp-block-media-text > .wp-block-media-text__media,
	.band--reverse.wp-block-media-text > .wp-block-media-text__media { grid-column: 2; grid-row: 1; }
	.hero.wp-block-media-text > .wp-block-media-text__content,
	.band--reverse.wp-block-media-text > .wp-block-media-text__content { grid-column: 1; grid-row: 1; }
	.hero .wp-block-media-text__content { align-self: center; }
}

/* Key figures */
.stats-band { padding: 0 var(--gutter); border-bottom: 1px solid var(--c-line); }
.stats-band .stats { max-width: var(--wrap); margin: 0 auto; padding-block: clamp(28px, 4vw, 44px); gap: 0 !important; }
.stats .wp-block-column { padding: 8px 20px; border-left: 1px solid var(--c-line); }
.stats .wp-block-column:first-child { border-left: 0; }
.stat-number { margin: 0; color: var(--c-green); font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; }
.stat-label { margin: 6px 0 0; color: var(--c-muted); font-size: 0.95rem; font-weight: 600; }
@media (max-width: 781px) {
	.stats.wp-block-columns { display: grid !important; grid-template-columns: 1fr 1fr; gap: 24px 0 !important; }
	.stats .wp-block-column:nth-child(odd) { border-left: 0; }
}

/* Intro */
.intro.wp-block-columns { gap: clamp(32px, 5vw, 72px) !important; align-items: center !important; padding-block: clamp(56px, 8vw, 104px) !important; }
.intro-text h2 { margin-top: 0; }
.quote-panel {
	position: relative;
	padding: clamp(32px, 4vw, 48px) !important;
	border-radius: 16px;
	box-shadow: var(--shadow);
	font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.5rem);
	font-weight: 500;
	line-height: 1.5;
}
.quote-panel::before {
	content: "“";
	display: block;
	margin-bottom: -8px;
	color: var(--c-on-dark);
	font-size: 4.5rem;
	font-weight: 800;
	line-height: 1;
}
.quote-panel p { margin: 0; }

/* Values with icons (decorative pseudo-elements) */
.features { gap: clamp(20px, 3vw, 32px) !important; margin-top: 40px; text-align: left; }
.feature {
	padding: 32px 28px !important;
	border: 1px solid var(--c-line);
	border-radius: 16px;
	background: var(--c-white);
	box-shadow: var(--shadow);
}
.feature::before {
	content: "";
	display: block;
	width: 56px;
	height: 56px;
	margin-bottom: 20px;
	border-radius: 14px;
	background: var(--c-green) center / 28px no-repeat;
}
.feature--service::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z'/%3E%3Cpath d='M21 16v2a4 4 0 0 1-4 4h-5'/%3E%3C/svg%3E"); }
.feature--flexibility::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3Cpath d='M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16'/%3E%3Cpath d='M8 16H3v5'/%3E%3C/svg%3E"); }
.feature--immediacy::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z'/%3E%3C/svg%3E"); }
.feature h3 { margin: 0 0 10px; color: var(--c-forest); }
.feature p { margin: 0; color: var(--c-muted); }

/* Pillars */
.pillars { gap: clamp(20px, 3vw, 32px) !important; margin-top: 40px; }
.pillar {
	padding: 32px 28px !important;
	border-top: 4px solid var(--c-green);
	border-radius: 4px 4px 16px 16px;
	background: var(--c-white);
	box-shadow: var(--shadow);
}
.pillar-number { margin: 0 0 8px; color: var(--c-green); font-size: 2rem; font-weight: 800; line-height: 1; }
.pillar h3 { margin: 0 0 10px; color: var(--c-forest); }
.pillar p:last-child { margin: 0; }

/* Products / Quality bands */
.band h2 { margin-top: 0; color: var(--c-forest); }
.certs-line { padding-left: 14px; border-left: 3px solid var(--c-green); color: var(--c-ink); font-weight: 600; }

/* Latest news */
.news-section h2 { text-align: left; }
.wp-block-latest-posts.wp-block-latest-posts__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
	gap: 24px;
	margin: 32px 0 0;
	padding-left: 0;
}
.wp-block-latest-posts__list li {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 28px;
	border: 1px solid var(--c-line);
	border-radius: 16px;
	background: var(--c-white);
	box-shadow: var(--shadow);
}
.wp-block-latest-posts__post-title {
	order: 2;
	color: var(--c-forest);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.35;
	text-decoration: none;
}
.wp-block-latest-posts__post-title:hover { color: var(--c-green); text-decoration: underline; }
.wp-block-latest-posts__post-date { order: 1; margin: 0 0 10px; color: var(--c-muted); font-size: 0.9rem; font-weight: 600; }
.wp-block-latest-posts__post-excerpt { order: 3; margin: 12px 0 0; color: var(--c-muted); }

/* Closing call to action */
.cta-band {
	background:
		radial-gradient(circle at 12% 0%, rgba(24, 149, 85, 0.4), transparent 40%),
		radial-gradient(circle at 92% 100%, rgba(24, 149, 85, 0.3), transparent 40%),
		var(--c-forest) !important;
}
.cta-band p:not(.eyebrow) { color: var(--c-on-dark); font-size: 1.1rem; }

/* ---------- News list ---------- */

.news-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 28px;
	margin: 0 0 48px;
	padding: 0;
	list-style: none;
}
.news-card article {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--c-line);
	border-radius: 16px;
	background: var(--c-white);
	box-shadow: var(--shadow);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.news-card article:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(11, 61, 39, 0.08), 0 14px 32px rgba(11, 61, 39, 0.12); }
.news-card__image { aspect-ratio: 16 / 10; background: var(--c-mint); }
.news-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.news-card__image--empty {
	background:
		url("../img/apple-touch-icon.png") center / 72px no-repeat,
		var(--c-mint);
	background-blend-mode: multiply;
}
.news-card__body { display: flex; flex-direction: column; padding: 22px 24px 26px; }
.news-card .entry-date { margin: 0 0 8px; color: var(--c-muted); font-size: 0.9rem; font-weight: 600; }
.news-card__title { margin: 0 0 10px; font-size: 1.2rem; line-height: 1.35; }
.news-card__title a { color: var(--c-forest); text-decoration: none; }
.news-card__title a:hover { color: var(--c-green); text-decoration: underline; }
.news-card__excerpt { margin: 0; color: var(--c-muted); }
.no-news { margin-bottom: 64px; }

.pagination ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 72px; padding: 0; list-style: none; }
.pagination a,
.pagination span.current {
	display: inline-block;
	min-width: 44px;
	padding: 10px 14px;
	border: 1px solid var(--c-line);
	border-radius: 8px;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
}
.pagination a:hover { border-color: var(--c-green); background: var(--c-mint); }
.pagination span.current { border-color: var(--c-green); background: var(--c-green); color: var(--c-white); }
.pagination .dots { border: 0; }

/* ---------- Forms ---------- */

.elina-form {
	max-width: 680px;
	margin-top: 24px;
	padding: clamp(24px, 4vw, 40px);
	border: 1px solid var(--c-line);
	border-radius: 16px;
	background: var(--c-mist);
}
.form-field { margin-bottom: 20px; }
.form-field label { display: block; margin-bottom: 6px; font-weight: 700; }
.form-field .req { color: var(--c-error); }
.form-field input,
.form-field textarea {
	width: 100%;
	padding: 12px 14px;
	border: 2px solid var(--c-border);
	border-radius: 8px;
	background: var(--c-white);
	color: var(--c-ink);
	font: inherit;
}
.form-field input:focus-visible,
.form-field textarea:focus-visible { border-color: var(--c-green); }
.form-field.has-error input,
.form-field.has-error textarea { border-color: var(--c-error); }
.field-error { margin: 0 0 6px; color: var(--c-error); font-weight: 700; }
.form-required-note,
.form-privacy { color: var(--c-muted); font-size: 0.95rem; }
.form-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.form-notice,
.form-errors { margin-bottom: 20px; padding: 14px 18px; border-left: 6px solid; border-radius: 8px; }
.form-notice--ok { border-color: var(--c-green); background: var(--c-mint); color: var(--c-forest); font-weight: 700; }
.form-notice--error,
.form-errors { border-color: var(--c-error); background: #fdf1f0; color: #7a1a14; }
.form-errors p { margin: 0 0 6px; font-weight: 700; }
.form-errors ul { margin: 0; }
.form-errors a { color: #7a1a14; }

/* ---------- Footer ---------- */

.site-footer { background: var(--c-forest); color: var(--c-white); }
.site-footer a { color: var(--c-white); }
.footer-grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr 0.8fr 1.4fr;
	gap: 40px 48px;
	padding-block: clamp(48px, 7vw, 80px);
}
@media (max-width: 1023px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .footer-grid { grid-template-columns: 1fr; } }
.site-footer h2 {
	margin: 0 0 18px;
	color: var(--c-on-dark);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.site-logo--white img { width: 200px; height: auto; margin-bottom: 18px; }
.footer-brand p { color: var(--c-on-dark); font-size: 0.975rem; }
.contact-list,
.footer-menu { margin: 0; padding: 0; list-style: none; }
.contact-list li { margin-bottom: 10px; color: var(--c-white); }
.contact-list .label { display: block; color: var(--c-on-dark); font-size: 0.85rem; font-weight: 700; }
.footer-menu li { margin-bottom: 8px; }
.footer-menu a { text-decoration: none; }
.footer-menu a:hover,
.footer-menu a[aria-current="page"] { text-decoration: underline; }
.map-embed { display: block; width: 100%; height: 220px; border: 0; border-radius: 12px; background: var(--c-white); }
.footer-map p { margin-top: 12px; }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.18); padding-block: 18px; font-size: 0.9rem; }
.footer-bottom-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.footer-bottom p { margin: 0; color: var(--c-on-dark); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

@media print {
	.topbar,
	.main-nav,
	.footer-map,
	.skip-link { display: none !important; }
	.page-header { background: none; color: var(--c-ink); }
}
