/*
Theme Name: Wystawa Muzeum Pamięci
Theme URI: https://wystawa.muzeumpamieci.pl
Description: Motyw potomny dla wystawy Muzeum Pamięci Mieszkańców Ziemi Oświęcimskiej
Author: Marcin Magiera
Author URI: https://magm.me
Template: twentytwentyone
Version: 1.0.0
Text Domain: wystawa-muzeum
*/

/* ============================================================
   ZMIENNE
   ============================================================ */
:root {
	--color-text:       #1a1a1a;
	--color-text-muted: #444444;
	--color-bg:         #ffffff;
	--color-border:     #cccccc;
	--color-accent:     #7a1020;   /* bordowa czerwień – tylko UI (nagłówki, aktywny element menu) */
	--color-accent-dk:  #5a0a18;
	--color-link:       #0057b8;   /* niebieski WCAG AA – główny kolor linków */
	--color-link-hover: #003d80;
	--color-focus:      #005fcc;
	--header-height:    54px;
}

/* ============================================================
   SKIP LINK
   ============================================================ */
.skip-link {
	position: absolute;
	top: -100px;
	left: 0;
	z-index: 9999;
	padding: 12px 20px;
	background: #1a1a1a;
	color: #ffffff !important;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	border-bottom-right-radius: 4px;
	transition: top 0.15s ease;
}
.skip-link:focus {
	top: 0;
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

/* ============================================================
   FOKUS – widoczny dla wszystkich elementów interaktywnych
   ============================================================ */
*:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

/* ============================================================
   HEADER – reset agresywny nadpisań z motywu rodzica
   ============================================================ */

/* Zeruj WSZYSTKIE paddingi headera z TwentyTwentyOne */
.site-header,
.wp-custom-logo .site-header {
	padding: 0 !important;
	margin: 0 !important;
	max-width: 100% !important;   /* zniesienie max-width z parent theme */
	width: 100% !important;
	background: #ffffff !important;
	border-bottom: 2px solid var(--color-border) !important;
	box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important;
	position: sticky !important;
	top: 0 !important;
	z-index: 1000 !important;
	display: block !important;   /* nadpisuje flex z parent theme */
	flex-wrap: unset !important;
	row-gap: 0 !important;
	align-items: unset !important;
}

@media only screen and (min-width: 482px) {
	.site-header,
	.wp-custom-logo .site-header {
		padding: 0 !important;
	}
}

@media only screen and (min-width: 822px) {
	.site-header,
	.wp-custom-logo .site-header {
		padding: 0 !important;
	}
}

/* Właściwy inner – kontroluje całą geometrię headera */
.site-header-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	height: var(--header-height);
}

/* ---- Branding – reset marginesów z parent theme ---- */
.site-branding {
	display: flex !important;
	align-items: center;
	flex-shrink: 0;
	margin: 0 !important;
	padding: 0 !important;
}

.site-branding .site-logo,
.site-branding .site-logo a {
	display: flex;
	align-items: center;
	line-height: 1;
	margin: 0 !important;
}

.site-branding .site-logo img,
.site-branding .custom-logo {
	height: 44px;
	width: auto;
	display: block;
}

/* Logo otoczone <span> lub <a> przez WordPress */
.site-branding .custom-logo-link,
.site-branding a.custom-logo-link {
	display: flex;
	align-items: center;
	text-decoration: none;
}

/* Usuń ramkę aktywnego stanu na logo */
.site-branding .custom-logo-link:focus {
	outline: 3px solid var(--color-focus);
	outline-offset: 3px;
	border-radius: 2px;
}

.site-title {
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.02em;
	margin: 0;
	color: var(--color-text);
}
.site-title a {
	color: var(--color-text) !important;
	text-decoration: none;
}
.site-title a:hover,
.site-title a:focus {
	color: var(--color-accent) !important;
}

/* ---- Nawigacja główna ---- */
.primary-navigation {
	display: flex;
	align-items: center;
}

.primary-navigation .primary-menu-container {
	display: block;
}

.primary-navigation .menu-wrapper {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 2px;
	align-items: center;
}

.primary-navigation .menu-wrapper > li > a,
.primary-navigation .menu-wrapper > li > .sub-menu-toggle {
	display: block;
	padding: 8px 14px;
	color: var(--color-text) !important;
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	border-radius: 4px;
	transition: background 0.15s, color 0.15s;
	white-space: nowrap;
}

.primary-navigation .menu-wrapper > li > a:hover,
.primary-navigation .menu-wrapper > li > a:focus {
	background: var(--color-accent);
	color: #ffffff !important;
}

.primary-navigation .menu-wrapper > li.current-menu-item > a,
.primary-navigation .menu-wrapper > li.current_page_item > a,
.primary-navigation .menu-wrapper > li.current-menu-ancestor > a {
	color: var(--color-accent) !important;
	border-bottom: 2px solid var(--color-accent);
}

/* Sub-menus */
.primary-navigation .menu-wrapper .sub-menu {
	position: absolute;
	background: #ffffff;
	border: 1px solid var(--color-border);
	border-top: 3px solid var(--color-accent);
	box-shadow: 0 4px 12px rgba(0,0,0,0.12);
	list-style: none;
	margin: 0;
	padding: 6px 0;
	min-width: 200px;
	z-index: 100;
	border-radius: 0 0 4px 4px;
}
.primary-navigation .menu-wrapper .sub-menu a {
	padding: 8px 18px;
	color: var(--color-text) !important;
	font-size: 0.875rem;
	font-weight: 500;
	display: block;
	text-decoration: none;
}
.primary-navigation .menu-wrapper .sub-menu a:hover,
.primary-navigation .menu-wrapper .sub-menu a:focus {
	background: #f5f5f5;
	color: var(--color-accent) !important;
}

/* Przycisk hamburger */
.menu-button-container {
	display: none;
}

#primary-mobile-menu {
	background: transparent;
	border: 2px solid var(--color-border);
	color: var(--color-text);
	padding: 8px 14px;
	font-size: 0.875rem;
	font-weight: 600;
	border-radius: 4px;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 8px;
	transition: border-color 0.15s, color 0.15s;
}
#primary-mobile-menu:hover,
#primary-mobile-menu:focus {
	border-color: var(--color-accent);
	color: var(--color-accent);
}

/* ============================================================
   NAWIGACJA MOBILNA
   ============================================================ */
@media (max-width: 900px) {
	.menu-button-container {
		display: flex;
	}

	.primary-navigation .primary-menu-container {
		display: none;
		position: absolute;
		top: var(--header-height);
		left: 0;
		right: 0;
		background: #ffffff;
		border-top: 2px solid var(--color-border);
		border-bottom: 2px solid var(--color-border);
		padding: 8px 24px 20px;
		z-index: 999;
		box-shadow: 0 4px 12px rgba(0,0,0,0.1);
	}

	body.primary-navigation-open .primary-navigation .primary-menu-container {
		display: block;
	}

	.primary-navigation .menu-wrapper {
		flex-direction: column;
		align-items: stretch;
		gap: 2px;
	}

	.primary-navigation .menu-wrapper > li > a {
		padding: 12px 10px;
	}

	.site-header-inner {
		position: relative;
	}
}

@media (max-width: 480px) {
	.site-branding .site-logo img,
	.site-branding .custom-logo {
		height: 40px;
	}
}

/* ============================================================
   PREFOOTER – nazwa muzeum i opis serwisu
   ============================================================ */
.site-prefooter {
	background: #f7f7f7;
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
	padding: 28px 24px;
}

.prefooter-inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 24px;
}

.prefooter-logo img,
.prefooter-logo .custom-logo {
	height: 48px;
	width: auto;
	display: block;
}

.prefooter-logo .custom-logo-link {
	display: flex;
	align-items: center;
	text-decoration: none;
}

.prefooter-text {
	flex: 1;
}

.prefooter-title {
	margin: 0 0 4px;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--color-text);
}

.prefooter-title a {
	color: var(--color-text) !important;
	text-decoration: none;
}

.prefooter-title a:hover,
.prefooter-title a:focus {
	color: var(--color-accent) !important;
}

.prefooter-desc {
	margin: 0;
	font-size: 0.875rem;
	color: var(--color-text-muted);
	line-height: 1.5;
}

@media (max-width: 600px) {
	.prefooter-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
	background: #ffffff;
	border-top: 2px solid var(--color-border);
	color: var(--color-text);
	padding: 40px 24px 20px;
}

.footer-inner {
	max-width: 1200px;
	margin: 0 auto;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 48px;
	padding-bottom: 32px;
	border-bottom: 1px solid #aaaaaa;
	margin-bottom: 20px;
}

@media (max-width: 768px) {
	.footer-grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}

.footer-col h3 {
	color: var(--color-accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0 0 14px;
	padding-bottom: 8px;
	border-bottom: 1px solid #aaaaaa;
}

.footer-col p,
.footer-col address,
.footer-contact,
.footer-coordinator {
	font-size: 0.9rem;
	line-height: 1.7;
	font-style: normal;
	margin: 0;
	color: #222222;  /* wysoki kontrast: ratio > 12:1 na białym */
}

.footer-contact {
	margin-top: 10px;
}

.footer-coordinator {
	margin-top: 14px;
	font-size: 0.875rem;
}

/* Linki w stopce – niebieskie z podkreśleniem (WCAG) */
.footer-col a {
	color: #0057b8 !important;   /* niebieski, kontrast ~5.5:1 na białym */
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.15s;
}
.footer-col a:hover,
.footer-col a:focus {
	color: #003d80 !important;   /* ciemniejszy niebieski na hover */
	text-decoration-color: #003d80;
}

.footer-col ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.footer-col ul li {
	margin-bottom: 8px;
}
.footer-col ul li a {
	font-size: 0.9rem;
}

/* Dolna belka – wyższy kontrast */
.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	font-size: 0.85rem;
}

.footer-copyright {
	color: #444444;   /* kontrast ~7.5:1 */
	font-weight: 500;
}

.footer-legal a {
	color: #0057b8 !important;   /* niebieski, kontrast ~5.5:1 */
	text-decoration: underline;
	text-underline-offset: 3px;
	font-size: 0.85rem;
}
.footer-legal a:hover,
.footer-legal a:focus {
	color: #003d80 !important;
}

/* Ukryj oryginalne elementy TwentyTwentyOne w stopce */
.site-footer > .site-info,
.site-footer > .footer-navigation {
	display: none !important;
}

/* ============================================================
   DEKLARACJA DOSTĘPNOŚCI
   ============================================================ */
.entry-content .deklaracja-dostepnosci section {
	margin-bottom: 2rem;
}
.entry-content .deklaracja-dostepnosci h2 {
	font-size: 1.3rem;
	border-bottom: 2px solid var(--color-accent);
	padding-bottom: 0.4rem;
	margin-top: 2rem;
}
.entry-content .deklaracja-dostepnosci h3 {
	font-size: 1.1rem;
	margin-top: 1.5rem;
}
.entry-content .deklaracja-dostepnosci a {
	color: var(--color-link);
	text-decoration: underline;
}
.entry-content .deklaracja-dostepnosci a:hover,
.entry-content .deklaracja-dostepnosci a:focus {
	color: var(--color-link-hover);
}

/* ============================================================
   GLOBALNE LINKI – niebieski #0057b8 wszędzie w treści
   ============================================================ */

/* Treść wpisów i stron */
.entry-content a,
.entry-summary a,
.site-main a:not([class]) {
	color: var(--color-link) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.entry-content a:hover,
.entry-content a:focus,
.entry-summary a:hover,
.entry-summary a:focus,
.site-main a:not([class]):hover,
.site-main a:not([class]):focus {
	color: var(--color-link-hover) !important;
}

/* Override czerwonych linków z TwentyTwentyOne */
a,
a:visited {
	color: var(--color-link);
}
a:hover,
a:focus {
	color: var(--color-link-hover);
}

/* Wyjątki – nawigacja, logo, przyciski nie powinny być niebieskie */
.site-header a,
.primary-navigation a,
.site-footer a,
.site-prefooter a,
.wp-block-button a,
.wp-block-button__link {
	color: inherit;
}

/* ============================================================
   WYDRUK
   ============================================================ */
@media print {
	.site-header,
	.site-footer,
	.pojo-a11y-toolbar-overlay {
		display: none !important;
	}
	body {
		color: #000;
		background: #fff;
	}
	a[href]::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
	}
}
