/*
Theme Name:        Web obce
Theme URI:         https://web-obec.cz
Description:       Lehká bloková šablona standardního obecního webu. Vzhled řídí theme.json (tokeny) a varianty ve styles/, data jsou v pluginu web-obec-core.
Version:           0.1.0
Requires at least: 6.9
Requires PHP:      8.1
Tested up to:      6.9
Author:            Jan Svoboda
Author URI:        https://web-obec.cz
License:           GPL-2.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       web-obec-theme
Update URI:        https://github.com/taktode/web-obec
*/

/*
 * Jen to, co theme.json neumí: přístupnost (skip link, fokus, cílové plochy), rozložení hlavičky a patičky,
 * karty výpisů. Barvy jen z tokenů (--wp--preset--color--*), tvar z --wp--custom--* (liší se podle varianty).
 * Kontrast dvojic, které se tu používají, hlídá tools/check-contrast.php.
 */

/* ---------- Přístupnost ---------- */

/* Skryté pro oči, dostupné pro čtečky. */
.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Skip link: vidět při fokusu z klávesnice. */
.skip-link:focus {
	background-color: var(--wp--preset--color--pozadi);
	clip-path: none;
	color: var(--wp--preset--color--primarni);
	display: block;
	font-weight: 700;
	height: auto;
	left: 0.5rem;
	margin: 0;
	padding: 0.75rem 1rem;
	position: absolute;
	top: 0.5rem;
	width: auto;
	z-index: 100000;
}

/* Viditelný fokus pro všechny ovládací prvky; v hlavičce a patičce barvou jejich textu (kontrast ≥ 3 : 1). */
:focus-visible {
	outline: 3px solid var(--wp--preset--color--akcent);
	outline-offset: 2px;
}

.site-header :focus-visible {
	outline-color: var(--wp--preset--color--na-hlavicce);
}

.site-footer :focus-visible {
	outline-color: var(--wp--preset--color--na-paticce);
}

/* Odkazy v textu: zřetelné podtržení. */
a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

a:hover {
	text-decoration-thickness: 2px;
}

/* ---------- Hlavička ---------- */

.site-header {
	border-top: var(--wp--custom--pruh-hlavicky) solid var(--wp--preset--color--primarni);
}

.site-header__radek {
	gap: var(--wp--preset--spacing--20);
}

.site-header__znacka {
	gap: 0.75rem;
}

.site-header__nazev {
	font-size: var(--wp--preset--font-size--vetsi);
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
}

.site-header__nazev a {
	text-decoration: none;
}

.site-header__nazev a:hover {
	text-decoration: underline;
}

.site-header__hledani {
	flex: 0 1 20rem;
}

.site-header__hledani .wp-block-search__inside-wrapper {
	gap: 0.375rem;
}

.wp-block-search__input {
	background-color: var(--wp--preset--color--pozadi);
	border: 1px solid var(--wp--preset--color--hranice);
	border-radius: var(--wp--custom--zaobleni);
	color: var(--wp--preset--color--text);
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
}

.wp-block-search__button {
	margin-left: 0;
	min-height: 2.75rem;
}

/* V hlavičce obrácené barvy, aby tlačítko nesplývalo s barevnou hlavičkou (dvojice hlídá kontrolní skript). */
.site-header .wp-block-search__button {
	background-color: var(--wp--preset--color--na-hlavicce);
	color: var(--wp--preset--color--hlavicka);
}

/* Jádro dává className navigace i vnitřnímu <ul> seznamu, proto jen nav. */
nav.site-header__menu {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--na-hlavicce) 25%, transparent);
	margin-top: var(--wp--preset--spacing--20);
	padding-top: 0.5rem;
}

/* Cílové plochy menu ≥ 24 × 24 px (WCAG 2.5.8), v praxi 44 px vysoké. */
.site-header__menu .wp-block-navigation-item__content {
	display: inline-block;
	font-weight: 600;
	min-height: 2.75rem;
	padding: 0.625rem 0.5rem;
	text-decoration: none;
}

.site-header__menu .wp-block-navigation-item__content:hover,
.site-header__menu .current-menu-item > .wp-block-navigation-item__content {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}

.site-header__menu .wp-block-navigation__responsive-container-open,
.site-header__menu .wp-block-navigation__responsive-container-close {
	min-height: 2.75rem;
	min-width: 2.75rem;
}

/* Na mobilu tlačítko s textem „Menu“ (hasIcon: false), zřetelně ohraničené. */
.site-header__menu .wp-block-navigation__responsive-container-open:not(.always-shown) {
	border: 2px solid currentcolor;
	border-radius: var(--wp--custom--zaobleni-tlacitka);
	font-weight: 600;
	padding: 0.5rem 1rem;
}

/* ---------- Úvodní stránka ---------- */

.uvod__nazev {
	margin: 0;
}

.uvod__podtitul {
	color: var(--wp--preset--color--sekundarni);
	font-size: var(--wp--preset--font-size--vetsi);
	margin-top: 0.25rem;
}

.uvod__sloupce,
.uvod__rychle,
.uvod__kontakt {
	margin-top: var(--wp--preset--spacing--40);
}

.uvod__vse {
	font-weight: 600;
}

/* Karty: aktuality, záznamy desky, rychlé odkazy, kontakt. */
.aktuality {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	list-style: none;
	margin: 0;
	padding: 0;
}

.aktualita,
.webobec-deska-vypis__zaznam,
.uvod__kontakt {
	background-color: var(--wp--preset--color--povrch);
	border-radius: var(--wp--custom--zaobleni);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

.aktualita > * {
	margin-block: 0.25rem;
}

.aktualita__datum,
.webobec-deska-vypis__udaje {
	color: var(--wp--preset--color--sekundarni);
	font-size: var(--wp--preset--font-size--maly);
}

.aktualita__nazev {
	font-size: var(--wp--preset--font-size--vetsi);
}

.aktualita__perex p {
	margin: 0;
}

/* Úřední deska (blok pluginu web-obec/deska-vypis). */
.webobec-deska-vypis__seznam {
	display: grid;
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.webobec-deska-vypis__zaznam {
	border-left: 4px solid var(--wp--preset--color--primarni);
	display: grid;
	gap: 0.25rem;
}

.webobec-deska-vypis__nazev {
	font-weight: 600;
}

.webobec-deska-vypis__udaje {
	display: flex;
	flex-wrap: wrap;
	gap: 0.125rem 1rem;
}

.webobec-deska-vypis__vse {
	font-weight: 600;
	margin-top: var(--wp--preset--spacing--20);
}

/* Rychlé odkazy: dlaždice s velkou cílovou plochou. */
.rychle-odkazy {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.rychle-odkazy a {
	align-items: center;
	background-color: var(--wp--preset--color--primarni);
	border-radius: var(--wp--custom--zaobleni);
	color: var(--wp--preset--color--na-primarni);
	display: flex;
	font-weight: 600;
	min-height: 3.5rem;
	padding: 0.75rem 1.25rem;
	text-decoration: none;
}

.rychle-odkazy a:hover {
	text-decoration: underline;
}

.uvod__kontakt h2 {
	margin-top: 0.5rem;
}

/* ---------- Údaje obce (bloky pluginu) ---------- */

.wp-block-web-obec-udaj-obce,
.wp-block-web-obec-uredni-hodiny {
	margin-block: 0.25rem;
}

.webobec-udaj-obce__popisek {
	font-weight: 600;
}

.wp-block-web-obec-udaj-obce.is-pole-nazev {
	font-weight: 700;
}

.wp-block-web-obec-uredni-hodiny {
	list-style: none;
	padding: 0;
}

/* ---------- Patička ---------- */

.site-footer__nadpis {
	font-size: var(--wp--preset--font-size--vetsi);
}

.site-footer__odkazy {
	list-style: none;
	padding: 0;
}

.site-footer__odkazy li {
	margin-block: 0.25rem;
}

/* Cílová plocha odkazů v patičce. */
.site-footer__odkazy a {
	display: inline-block;
	padding-block: 0.25rem;
}

.site-footer__spodek {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--na-paticce) 30%, transparent);
	font-size: var(--wp--preset--font-size--maly);
	margin-top: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--20);
}

.site-footer__copy {
	font-size: var(--wp--preset--font-size--maly);
	font-weight: 400;
	margin: 0;
}

/* ---------- Výpisy a stránkování ---------- */

.vypis-aktualit .aktuality {
	margin-bottom: var(--wp--preset--spacing--30);
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-block;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.5rem;
	text-align: center;
}
