/*
 * Raketiline — teema stiilid.
 *
 * Eesmärgid: kiire esimene render, vähene CSS, mobiilne esmalt, tugev
 * visuaalne hierarhia. Fondid on isehostitud (vt 01) ja laaditud
 * font-display: swap abil; väliseid päringuid ega gradiente ei kasutata.
 *
 * 01 Muutujad
 * 02 Taust ja põhistruktuur
 * 03 Päis ja navigatsioon
 * 04 Jalus
 * 05 Typograafia ja sisu
 * 06 Kaardid ja ruudustik
 * 07 Võrdlustabel ja faktid
 * 08 Vormid
 * 09 Avalehe sektsioonid
 * 10 Keskus ja linn
 * 11 Utiliidid
 * 12 Meediapäringu
 */

/* 01 Muutujad ---------------------------------------------------------- */

:root {
	--ink: #14181d;
	--ink-soft: #4a5461;
	--ink-faint: #6d7885;
	--paper: #ffffff;
	--paper-alt: #f4f6f8;
	--line: #dde2e8;
	--line-strong: #c3ccd6;
	--accent: #1c6b3c;
	--accent-dark: #14522e;
	--accent-soft: #e8f2ec;
	--warn: #8a5a00;
	--radius: 10px;
	--gap: 1.5rem;
	--measure: 68ch;
	--wrap: 1140px;
	--font: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--font-display: "Bricolage Grotesque", "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/*
 * Fondid isehostitud WOFF2-failid.
 * Bricolage Grotesque — pealkirjad (staatilised lõiked 700 ja 800);
 * Instrument Sans — body ja UI (variable 400-700).
 * Ladestame üksnes ladina-komplekti, millesse mahuvad ka eesti tähed.
 */
@font-face {
	font-family: "Bricolage Grotesque";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/bricolage-grotesque-700-latin.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: "Bricolage Grotesque";
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("../fonts/bricolage-grotesque-800-latin.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: "Instrument Sans";
	font-style: normal;
	font-weight: 400 700;
	font-stretch: 100%;
	font-display: swap;
	src: url("../fonts/instrument-sans-latin.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;
}

/* 02 Taust ja põhistruktuur -------------------------------------------- */

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

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

body {
	margin: 0;
	font-family: var(--font);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--ink);
	background: var(--paper);
	overflow-wrap: break-word;
}

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

[hidden] { display: none !important; }

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

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

.container {
	width: 100%;
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: 1.25rem;
}

.site { display: flex; flex-direction: column; min-height: 100vh; }
.site-main { flex: 1 0 auto; }

.section { padding-block: 2.75rem; }
.section-alt { background: var(--paper-alt); }
.section-title {
	font-size: 1.5rem;
	line-height: 1.25;
	margin: 0 0 1.25rem;
	letter-spacing: -0.01em;
}
.section-more { margin-top: 1.5rem; }

.visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	background: var(--ink);
	color: #fff;
	padding: 0.75rem 1rem;
}
.skip-link:focus { left: 0; color: #fff; }

/* 03 Päis ja navigatsioon ---------------------------------------------- */

.site-header {
	border-bottom: 1px solid var(--line);
	background: var(--paper);
}

.site-header-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1rem;
}

.brand { display: flex; flex-direction: column; gap: 0.1rem; }
.brand-link { display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; }
.brand-name {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--ink);
}
.brand-logo { width: 36px; height: 36px; object-fit: contain; }
.brand-tagline {
	display: none;
	margin: 0;
	font-size: 0.8125rem;
	color: var(--ink-faint);
}
@media (min-width: 600px) { .brand-tagline { display: block; } }

.nav-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font: inherit;
	font-weight: 600;
	color: var(--ink);
	background: none;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	padding: 0.5rem 0.85rem;
	cursor: pointer;
}

.nav-toggle-bars,
.nav-toggle-bars::before,
.nav-toggle-bars::after {
	display: block;
	width: 18px;
	height: 2px;
	background: currentColor;
	position: relative;
}
.nav-toggle-bars::before,
.nav-toggle-bars::after { content: ""; position: absolute; }
.nav-toggle-bars::before { top: -6px; }
.nav-toggle-bars::after { top: 6px; }

/* Keelelüliti (EN/ET): alati nähtav, telefonis menüünupu kõrval. */
.lang-switch {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 0.6rem;
	font-weight: 700;
	font-size: 0.875rem;
	letter-spacing: 0.04em;
	color: var(--ink);
	text-decoration: none;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
}
.lang-switch:hover,
.lang-switch:focus-visible { color: var(--accent); border-color: var(--accent); }
.lang-switch + .nav-toggle { margin-left: -0.5rem; }
@media (max-width: 359px) {
	.lang-switch { min-width: 2.25rem; padding: 0 0.35rem; }
	.lang-switch + .nav-toggle { margin-left: -0.75rem; }
}

.primary-nav {
	display: none;
	flex-direction: column;
	width: 100%;
	gap: 0.75rem;
	padding-block: 0.75rem 0.25rem;
}
.primary-nav.is-open { display: flex; }

.nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.nav-list a {
	display: block;
	padding: 0.5rem 0.25rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--ink);
}
.nav-list a:hover,
.nav-list .current-menu-item > a { color: var(--accent); }
.nav-list .menu-item-has-children { position: relative; }
.nav-list .sub-menu {
	list-style: none;
	margin: 0;
	padding-left: 1rem;
	border-left: 2px solid var(--line);
}

.nav-search { display: flex; gap: 0.4rem; }
.nav-search input {
	flex: 1 1 auto;
	min-width: 0;
	font: inherit;
	padding: 0.5rem 0.7rem;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
}
.nav-search button {
	font: inherit;
	font-weight: 600;
	padding: 0.5rem 0.9rem;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	background: var(--paper);
	cursor: pointer;
}

/* Ilma JS-ita on menüü nähtav, sest JS eemaldab klassi no-js. */
html.no-js .primary-nav { display: flex; }

/* Laual on päises kaks rida: bränd ja selle all menüü koos otsinguga.
   Seitse menüüpunkti ja otsing ei mahu brändiga ühele reale. */
@media (min-width: 900px) {
	.nav-toggle { display: none; }
	.site-header-inner { row-gap: 0.5rem; padding-block: 0.85rem 0.6rem; }
	.primary-nav,
	.primary-nav.is-open {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 1.25rem;
		width: 100%;
		padding-block: 0;
	}
	.nav-list { flex-direction: row; flex-wrap: wrap; gap: 0.25rem 0.35rem; margin-left: -0.5rem; }
	.nav-list a { padding: 0.35rem 0.5rem; white-space: nowrap; }
	.nav-search { width: 200px; flex: 0 0 auto; }
	html.no-js .primary-nav { display: flex; }
}

/* 04 Jalus ------------------------------------------------------------- */

.site-footer {
	margin-top: 3.5rem;
	padding-block: 2.5rem 1.5rem;
	border-top: 1px solid var(--line);
	background: var(--paper-alt);
	font-size: 0.9375rem;
	color: var(--ink-soft);
}

.footer-top {
	display: grid;
	gap: 1.75rem;
	grid-template-columns: 1fr;
	margin-bottom: 1.5rem;
}
@media (min-width: 720px) {
	.footer-top { grid-template-columns: 1.4fr 1fr 1fr; }
}

.footer-brand {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--ink);
	margin: 0 0 0.35rem;
}
.footer-about p { margin: 0 0 0.5rem; }
.footer-about p:last-child { margin-bottom: 0; }

.footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.35rem; }
.footer-list a { color: var(--ink-soft); text-decoration: none; }
.footer-list a:hover { color: var(--accent); text-decoration: underline; }

.footer-legal { border-top: 1px solid var(--line); padding-top: 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; }
.footer-consent { margin: 0; font-size: 0.875rem; }
.link-button { font: inherit; padding: 0; border: 0; background: none; color: var(--ink-soft); text-decoration: underline; cursor: pointer; }
.footer-legal ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	font-size: 0.875rem;
}
.footer-legal a { color: var(--ink-soft); }
.footer-note { margin: 1rem 0 0.25rem; font-size: 0.875rem; }
.footer-disclaimer { margin: 0; font-size: 0.8125rem; color: var(--ink-faint); max-width: var(--measure); }

/* 05 Typograafia ja sisu ----------------------------------------------- */

h1, h2, h3, h4 {
	font-family: var(--font-display);
	line-height: 1.15;
	letter-spacing: -0.02em;
}
h1 { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3rem); margin: 0 0 0.75rem; }
h2 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); margin: 2rem 0 0.75rem; }
h3 { font-size: 1.2rem; margin: 1.5rem 0 0.5rem; }

.eyebrow,
.kicker,
.card-kicker {
	margin: 0 0 0.4rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--accent);
}
.kicker a, .card-kicker a { color: inherit; text-decoration: none; }
.kicker a:hover { text-decoration: underline; }

.page-header { padding-block: 1.75rem 1rem; }
.page-title { margin-bottom: 0.5rem; }
.page-intro { max-width: var(--measure); color: var(--ink-soft); }
.page-intro p { margin: 0 0 0.75rem; }

.stat-strip {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: 1fr;
}
@media (min-width: 560px) { .stat-strip { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .stat-strip { grid-template-columns: repeat(4, 1fr); } }
.stat-strip li {
	border-top: 2px solid var(--accent);
	padding-top: 0.6rem;
}
.stat-strip strong {
	display: block;
	font-family: var(--font-display);
	font-size: 1.5rem;
	line-height: 1.1;
	letter-spacing: -0.02em;
}
.stat-strip span { display: block; font-size: 0.875rem; color: var(--ink-soft); margin-top: 0.2rem; }

.source-note {
	max-width: var(--measure);
	margin: 0.85rem 0 0;
	font-size: 0.8125rem;
	color: var(--ink-faint);
}

.prose { max-width: var(--measure); }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { margin-top: 2.25rem; }
.prose h3 { margin-top: 1.75rem; }
.prose ul, .prose ol { padding-left: 1.35rem; }
.prose li + li { margin-top: 0.35rem; }
.prose blockquote {
	margin: 1.5rem 0;
	padding: 0.25rem 0 0.25rem 1.1rem;
	border-left: 3px solid var(--line-strong);
	color: var(--ink-soft);
}
.prose img { border-radius: var(--radius); }
.prose table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.prose th, .prose td { padding: 0.5rem 0.6rem; border: 1px solid var(--line); text-align: left; }
.prose thead th { background: var(--paper-alt); }

.post-header { padding-block: 1.5rem 1rem; }
.post-title { max-width: 22ch; }
.post-standfirst { font-size: 1.1875rem; color: var(--ink-soft); max-width: var(--measure); }
.byline { display: flex; flex-wrap: wrap; gap: 0.35rem 0.9rem; margin: 1rem 0 0; font-size: 0.875rem; color: var(--ink-faint); }
.byline-role { font-weight: 600; color: var(--ink-soft); }
.byline-date::before { content: "·"; margin-right: 0.6rem; }
.reviewed { margin: 0.35rem 0 0; font-size: 0.875rem; color: var(--ink-faint); }

.sponsored-badge {
	display: inline-block;
	margin: 0 0 0.75rem;
	padding: 0.2rem 0.6rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--warn);
	background: #fdf3e0;
	border: 1px solid #f0dcb4;
	border-radius: 4px;
}

.post-hero, .centre-hero { margin: 0 auto 1.5rem; }
.post-hero img, .centre-hero img {
	width: 100%;
	border-radius: var(--radius);
	max-height: 520px;
	object-fit: cover;
}

.post-layout,
.page-layout,
.centre-layout {
	display: grid;
	gap: 2rem;
	/* minmax(0, …): lai tabel .table-scroll'is ei tohi veergu venitada. */
	grid-template-columns: minmax(0, 1fr);
	padding-bottom: 2.5rem;
}
@media (min-width: 1000px) {
	.post-layout.has-aside,
	.page-layout.has-aside,
	.centre-layout { grid-template-columns: minmax(0, 1fr) 320px; }
}

.post-aside .lead,
.page-aside .lead,
.centre-aside .lead { position: sticky; top: 1rem; }

.post-footer { padding-bottom: 2rem; }
.taglist { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.taglist a {
	font-size: 0.8125rem;
	padding: 0.15rem 0.55rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	text-decoration: none;
	color: var(--ink-soft);
}

.post-nav {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
	margin-top: 1.75rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--line);
}
@media (min-width: 720px) { .post-nav { grid-template-columns: 1fr 1fr; } }
.post-nav a { text-decoration: none; }
.post-nav-next { text-align: right; }
.post-nav-label { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-faint); }
.post-nav-title { font-weight: 600; }

.toc {
	background: var(--paper-alt);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 1rem 1.25rem;
	margin-bottom: 1.75rem;
}
.toc-title { font-size: 0.9375rem; margin: 0 0 0.5rem; }
.toc ol { margin: 0; padding-left: 1.1rem; }
.toc li + li { margin-top: 0.25rem; }
.toc-level-2 { list-style-type: circle; }
.toc a { text-decoration: none; }
.toc a:hover { text-decoration: underline; }

.breadcrumbs { padding-block: 0.85rem; font-size: 0.8125rem; color: var(--ink-faint); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.35rem; list-style: none; margin: 0; padding: 0; }
.breadcrumbs li + li::before { content: "/"; margin-right: 0.35rem; color: var(--line-strong); }
.breadcrumbs a { color: var(--ink-soft); text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }

.verified { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; margin: 0.5rem 0 0; font-size: 0.875rem; color: var(--ink-faint); }
.verified a { color: var(--ink-soft); }
.verified-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex: none; }

/* 06 Kaardid ja ruudustik ---------------------------------------------- */

.grid { display: grid; gap: var(--gap); grid-template-columns: 1fr; }
@media (min-width: 640px) { .grid-2, .grid-3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .grid-3 { grid-template-columns: repeat(3, 1fr); } }
.city-list .card-kicker { display: none; }

.card {
	display: flex;
	flex-direction: column;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	overflow: hidden;
}
.card-body { padding: 1.2rem 1.25rem 1.25rem; }
.card-media { display: block; background: var(--paper-alt); }
.card-media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.card-title { font-size: 1.0625rem; margin: 0 0 0.4rem; line-height: 1.3; }
.card-title a { color: var(--ink); text-decoration: none; }
.card-title a:hover { color: var(--accent); }
.card-excerpt { display: block; color: var(--ink-soft); font-size: 0.9375rem; line-height: 1.55; }
.card-date { display: block; margin-top: 0.6rem; font-size: 0.8125rem; color: var(--ink-faint); }
.card-centre .card-title { font-size: 1.125rem; }

.card-address { margin: 0; font-size: 0.9375rem; color: var(--ink-soft); }
.card-guide .card-title, .card-city .card-title { font-size: 1.125rem; }

/*
 * Uudise- ja juhendikaart on tervikuna üks link, mille sees on <span>-id.
 * Span on reasisene: ilma display'ta ei mõju polsterdus ja tekst jookseb
 * kaardi servani. Kaart täidab rea kõrguse ja kuupäev on alati all.
 */
.card-link { display: flex; flex-direction: column; flex: 1 1 auto; text-decoration: none; color: inherit; }
.card-link .card-body { display: flex; flex-direction: column; flex: 1 1 auto; }
.card-link .card-kicker { display: block; }
.card-link .card-title {
	display: block;
	margin-bottom: 0.45rem;
	font-family: var(--font-display);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--ink);
	text-wrap: balance;
}
.card-link .card-date { margin-top: auto; padding-top: 0.9rem; }
.card-link:hover .card-title { color: var(--accent); }
.card-link:focus-visible { outline-offset: -3px; border-radius: var(--radius); }

.card-article,
.card-guide { transition: border-color 0.15s ease, box-shadow 0.15s ease; }
.card-article:hover,
.card-guide:hover { border-color: var(--accent); box-shadow: 0 6px 18px rgba(20, 24, 29, 0.08); }

/* Juhendikaart: rohelise ülaservaga (nagu arvude riba) ja noolega all. */
.card-guide { border-top: 3px solid var(--accent); }
.card-guide .card-body::after {
	content: "→";
	content: "→" / "";
	align-self: flex-start;
	margin-top: auto;
	padding-top: 0.9rem;
	font-weight: 700;
	line-height: 1;
	color: var(--accent);
	transition: transform 0.15s ease;
}
.card-guide:hover .card-body::after { transform: translateX(4px); }

.card-facts { display: grid; gap: 0.3rem 1rem; margin: 0.75rem 0 0; font-size: 0.9375rem; }
.card-facts > div { display: flex; gap: 0.4rem; }
.card-facts dt { color: var(--ink-faint); }
.card-facts dt::after { content: ":"; }
.card-facts dd { margin: 0; font-weight: 600; }
.muted { color: var(--ink-faint); font-weight: 400; }

.card-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 0; }

.btn {
	display: inline-block;
	font: inherit;
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.2;
	padding: 0.6rem 1rem;
	border-radius: var(--radius);
	border: 1px solid transparent;
	text-decoration: none;
	cursor: pointer;
	text-align: center;
}
.btn-primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.btn-primary:hover { background: var(--accent-dark); border-color: var(--accent-dark); color: #fff; }
.btn-quiet { background: var(--paper); color: var(--ink); border-color: var(--line-strong); }
.btn-quiet:hover { border-color: var(--accent); color: var(--accent); }

.related { padding-block: 2rem; }
.cta-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-block: 2.5rem;
	padding: 1.5rem;
	background: var(--accent-soft);
	border: 1px solid #cfe3d7;
	border-radius: var(--radius);
}
.cta-band-text h2 { margin: 0 0 0.25rem; font-size: 1.25rem; }
.cta-band-text p { margin: 0; color: var(--ink-soft); }
.cta-band .lead { flex-basis: 100%; }

/* 07 Võrdlustabel ja faktid -------------------------------------------- */

.table-scroll { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; }

.compare {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
	min-width: 34rem;
}
.compare th, .compare td { padding: 0.55rem 0.7rem; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.compare thead th { background: var(--paper-alt); font-size: 0.8125rem; }
.compare thead th a { text-decoration: none; }
.compare tbody th { font-weight: 600; background: #fafbfc; min-width: 11rem; }
.compare tbody th .muted { display: block; font-size: 0.8125rem; font-weight: 400; }
.compare tbody tr:hover td, .compare tbody tr:hover th { background: var(--accent-soft); }
.compare .muted { color: var(--ink-faint); }
.compare th:first-child { position: sticky; left: 0; z-index: 1; }
.compare thead th:first-child { background: var(--paper-alt); }
.table-scroll:focus-visible { outline-offset: 4px; }
.table-note { margin: 0.6rem 0 0; font-size: 0.8125rem; color: var(--ink-faint); max-width: var(--measure); }

.directory-filter {
	display: grid;
	gap: 0.75rem 1.5rem;
	margin: 0 0 1.25rem;
	padding: 1rem 1.15rem;
	background: var(--paper-alt);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}
@media (min-width: 760px) { .directory-filter { grid-template-columns: minmax(14rem, 1fr) auto; align-items: end; } }
.filter-options { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; margin: 0; padding: 0; border: 0; }
.filter-options legend { font-weight: 600; font-size: 0.875rem; margin-bottom: 0.3rem; padding: 0; }
.filter-options label { display: inline-flex; gap: 0.35rem; align-items: center; font-size: 0.9375rem; }
.filter-count { margin: 0; font-size: 0.875rem; color: var(--ink-soft); grid-column: 1 / -1; }
.directory-filter input[type="search"] {
	font: inherit;
	width: 100%;
	padding: 0.6rem 0.7rem;
	border: 1px solid var(--line-strong);
	border-radius: 8px;
}

.fact-list { display: grid; gap: 0; margin: 0; }
.fact-list > div {
	display: grid;
	grid-template-columns: minmax(9rem, 40%) 1fr;
	gap: 0.75rem;
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--line);
}
.fact-list dt { color: var(--ink-soft); }
.fact-list dd { margin: 0; font-weight: 600; }

.check-list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.4rem; }
.check-list li { display: flex; align-items: baseline; gap: 0.6rem; }
.check-list li::before { content: "✓"; color: var(--accent); font-weight: 700; }

.faq { padding-block: 1.5rem; border-top: 1px solid var(--line); max-width: var(--measure); }
.faq > h2 { margin-top: 0; }
.faq-item + .faq-item { margin-top: 1.1rem; }
.faq-item h3 { font-size: 1.0625rem; margin: 0 0 0.3rem; }
.faq-item p { margin: 0; color: var(--ink-soft); }

.guide-list { padding-block: 1.5rem; }
.location-note { margin: -0.25rem 0 1.25rem; max-width: var(--measure); font-size: 0.9375rem; color: var(--ink-soft); }
.city-index + .stat-list { margin-top: 1.25rem; }
.reviewed-date { color: var(--ink-faint); }

/* Päris inimese profiil (autorileht). */
.profile-header { display: flex; align-items: center; gap: 1.25rem; }
.profile-header .page-title { margin-bottom: 0.25rem; }
.person-photo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; flex: none; }
.profile-role { margin: 0; font-weight: 600; color: var(--ink-soft); }
.link-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.4rem; }
.lead-row { align-items: start; }

.action-list { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.action-list a { flex: 1 1 12rem; }

.opening-hours { white-space: normal; }
.centre-address { font-style: normal; color: var(--ink-soft); }
.note { color: var(--ink-faint); font-size: 0.9375rem; }

.city-index { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .city-index { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .city-index { grid-template-columns: repeat(3, 1fr); } }
.city-index a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.85rem 1rem;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	text-decoration: none;
	color: var(--ink);
}
.city-index a:hover { border-color: var(--accent); }
.city-index-name { font-weight: 700; }
.city-index-count { font-size: 0.875rem; color: var(--ink-faint); }

.stat-list {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
}
.stat-list li { padding: 0.9rem 1rem; background: var(--paper-alt); border-radius: var(--radius); }
.stat-value { display: block; font-size: 1.5rem; font-weight: 800; letter-spacing: -0.02em; }
.stat-label { display: block; font-size: 0.875rem; color: var(--ink-faint); }

/* 08 Vormid ------------------------------------------------------------ */

.lead {
	background: var(--paper-alt);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 1.25rem;
}
.lead-compact { padding: 1rem; background: var(--paper); }
.lead-title { font-size: 1.125rem; margin: 0 0 0.5rem; }
.lead-intro { margin: 0 0 0.9rem; font-size: 0.9375rem; color: var(--ink-soft); }
.lead-note { margin: 0.75rem 0 0; font-size: 0.8125rem; color: var(--ink-faint); }

.field-grid { display: grid; gap: 0.85rem; }
@media (min-width: 520px) { .field-grid { grid-template-columns: 1fr 1fr; } .field-grid .field-textarea, .field-grid .field-select { grid-column: 1 / -1; } }

.field { display: flex; flex-direction: column; gap: 0.3rem; margin: 0; }
.field label { font-weight: 600; font-size: 0.875rem; }
.field .req { color: #b4231f; }
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field input[type="number"],
.field select,
.field textarea {
	font: inherit;
	font-size: 1rem;
	width: 100%;
	padding: 0.6rem 0.7rem;
	border: 1px solid var(--line-strong);
	border-radius: 8px;
	background: var(--paper);
	color: var(--ink);
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--accent); }
.field-help { font-size: 0.8125rem; color: var(--ink-faint); }
.field-consent { flex-direction: row; align-items: flex-start; gap: 0.55rem; margin-top: 0.9rem; }
.field-consent label { font-weight: 400; font-size: 0.875rem; }
.field-consent input { margin-top: 0.25rem; flex: none; width: 1.05rem; height: 1.05rem; }
.field-hp { position: absolute; left: -9999px; }
.field-submit { margin: 1rem 0 0; }
.field-submit .btn { width: 100%; }

.form-message { margin: 0 0 1rem; padding: 0.7rem 0.85rem; border-radius: 8px; font-size: 0.9375rem; }
.form-message.is-error { background: #fdeceb; border: 1px solid #f2c4c1; color: #8a1c17; }
.form-message.is-sent { background: var(--accent-soft); border: 1px solid #cfe3d7; color: var(--accent-dark); }
.form-message:focus { outline: 3px solid var(--accent); outline-offset: 2px; }

.search-form, .error-search { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.search-form input, .error-search input {
	flex: 1 1 12rem;
	font: inherit;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
}
.error-search label { font-weight: 600; flex-basis: 100%; }

.notice-notice {
	padding: 1rem 1.15rem;
	background: var(--paper-alt);
	border-left: 3px solid var(--line-strong);
	border-radius: 0 var(--radius) var(--radius) 0;
	color: var(--ink-soft);
}

.consent-banner {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 60;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem;
	background: var(--paper);
	border-top: 1px solid var(--line-strong);
	box-shadow: 0 -4px 16px rgba(20, 24, 29, 0.08);
}
.consent-text { flex: 1 1 22rem; }
.consent-text p { margin: 0; font-size: 0.9375rem; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* 09 Avalehe sektsioonid ------------------------------------------------ */

.hero { background: var(--paper-alt); border-bottom: 1px solid var(--line); }
.hero-inner { padding-block: 2.5rem 2.75rem; }
.hero h1 { max-width: 20ch; }
.hero-sub { max-width: 48ch; font-size: 1.125rem; color: var(--ink-soft); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.5rem; }

/* Avalehe juhendid: esimene („Alusta padeliga”) üle kogu rea, ülejäänud
   selle all. Seitsme juhendiga on read täis nii kahe kui kolme veeruga. */
.card-guide:first-child {
	grid-column: 1 / -1;
	background: var(--accent-soft);
	border-color: #cfe3d7;
	border-top-color: var(--accent);
}
@media (min-width: 640px) {
	.card-guide:first-child .card-body {
		display: grid;
		grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr) auto;
		align-items: center;
		gap: 0.25rem 1.5rem;
	}
	.card-guide:first-child .card-title { margin: 0; font-size: 1.375rem; }
	.card-guide:first-child .card-body::after { grid-column: 3; margin: 0; padding: 0; font-size: 1.25rem; }
}

.trust { max-width: var(--measure); }
.section-bleed { padding: 1.75rem 1.25rem; border-radius: var(--radius); }
.pillar-content { margin-bottom: 1rem; }
.sponsored-badge span { font-weight: 400; text-transform: none; letter-spacing: 0; }

/* 10 Keskus ja linn ----------------------------------------------------- */

.centre-header { padding-block: 1.5rem 1.25rem; }
.centre-title { margin-bottom: 0.6rem; }
.centre-standfirst { font-size: 1.125rem; color: var(--ink-soft); max-width: var(--measure); }
.centre-header-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; }
.centre-location { margin: 0.5rem 0 0; color: var(--ink-soft); }
.centre-ctas { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.25rem; }
.centre-section { padding-block: 1.5rem; border-top: 1px solid var(--line); }
.centre-section h2 { margin-top: 0; }
.sticky-block { position: sticky; top: 1rem; }

.city-compare, .city-list, .city-lead { padding-block: 1.5rem; }
.error-page { padding-block: 3rem; }
.error-page h1 { margin-bottom: 0.75rem; }
.error-links { list-style: none; margin: 2rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }

.pagination { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 2.5rem; }
.pagination .page-numbers {
	display: inline-block;
	padding: 0.45rem 0.75rem;
	border: 1px solid var(--line-strong);
	border-radius: 8px;
	text-decoration: none;
	color: var(--ink);
}
.pagination .current {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
	font-weight: 700;
}

/* 11 Utiliidid --------------------------------------------------------- */

.alignwide { max-width: min(100%, 1100px); }
.alignfull { width: 100%; }
.alignleft { float: left; margin: 0 1.25rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.25rem; }
.aligncenter { margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 0.8125rem; color: var(--ink-faint); }
.sticky .card-title::before { content: "•"; color: var(--accent); }

/* 12 Meediapäringu ----------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}
}

@media print {
	.site-header, .site-footer, .lead, .cta-band, .post-aside, .centre-aside { display: none; }
	body { font-size: 11pt; }
}

/* Avalehe teenuste nimekirja pealkiri (service_index) */
.city-index-title { margin: 1.5rem 0 0.75rem; font-size: 1.05rem; }

/* Tasuliseks märgitud keskuse „Reklaam” kaardil ja tabelis */
.sponsored-tag { display: inline-block; margin-left: 0.4rem; padding: 0.05rem 0.4rem; border: 1px solid currentColor; border-radius: 3px; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; vertical-align: middle; opacity: 0.75; }
