/* =============================================================
   CZARKO — arkusz motywu (adaptacja makiety materialy/html/style.css)
   Vanilla CSS, mobile-first, jeden plik (manifest ps_get_styles).
   ============================================================= */

/* ---------- Tokeny ---------- */
/* Paleta hero (próbkowana z grafik brandowych): krem #EFE7D9, złoto #D09350,
   ciemny ciepły brąz. „Mniej znaczy więcej" — te trzy barwy + biel i grafit. */
:root {
	--c-gold:       #d09350;   /* akcent — TŁO pod ciemny tekst (grafit ≈ 6.5:1 AA) */
	--c-gold-dark:  #be8344;   /* hover przycisków (grafit ≈ 5.3:1) */
	--c-gold-deep:  #8f6534;   /* akcent TEKSTOWY na jasnym tle (biel ≈ 5.1:1) */
	--c-gold-light: #dfa968;   /* hover ikon/linków na ciemnym tle */
	--c-cream:      #efe7d9;   /* jasny tekst na ciemnym tle (hero, nagłówek) */
	--c-dark:       #241d17;   /* ciemny ciepły brąz — baza hero */
	--c-ink:        #1c1c1c;
	--c-muted:      #666;
	--c-line:       #e2e2e2;
	--c-gray:       #f3ede1;   /* tło sekcji naprzemiennych — cień kremu */
	--c-black:      #000000;   /* stopka — czyste czarne, pod tło logo imoje */

	--maxw:   1200px;
	--pad:    clamp(1rem, 4vw, 2rem);
	--gap:    clamp(1rem, 2.5vw, 1.75rem);
	--space:  clamp(3rem, 7vw, 5.5rem);   /* pion sekcji */
	--radius: 2px;
	--quicknav-overlap: 2.75rem;          /* o ile złote przyciski nachodzą na hero (PC) */
	--header-h: 64px;                     /* wysokość paska nagłówka (hero wsuwa się pod niego) */

	/* Cienie — jedna skala, spójnie w całym UI */
	--shadow-sm: 0 1px 2px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.07);
	--shadow-md: 0 6px 18px rgba(0,0,0,.12);
	--shadow-lg: 0 18px 44px rgba(0,0,0,.17);

	--font: 'Fira Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--font-display: 'Antonio', 'Fira Sans', system-ui, sans-serif;   /* font cytatu/nagłówków (rozpoznany z projektu) */
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--c-ink);
	background: #fff;
	overflow-x: hidden;   /* bezpiecznik przed poziomym przelewem */
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, p, blockquote, figure, ul { margin: 0; }
ul { list-style: none; padding: 0; }

.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--pad); }

.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;
}

/* ---------- Przyciski ---------- */
/* Złote tło wymusza CIEMNY tekst (biały na złocie ≈ 2.6:1 — oblałby AA). */
.btn {
	display: inline-block;
	padding: .8rem 1.5rem;
	background: var(--c-gold);
	color: var(--c-ink);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	text-align: center;
	border: none;
	border-radius: var(--radius);
	cursor: pointer;
	transition: background .18s ease, transform .18s ease;
}
.btn:hover, .btn:focus-visible { background: var(--c-gold-dark); }
.btn:active { transform: translateY(1px); }

.btn--ghost { background: #e7dfd0; color: var(--c-ink); }
.btn--ghost:hover, .btn--ghost:focus-visible { background: #dbd1bd; }

.btn--big { display: block; width: 100%; padding: 1.15rem 1rem; font-size: 1.05rem; }

/* ---------- Tytuły sekcji ---------- */
.section-title {
	font-family: var(--font-display);
	font-size: clamp(1.6rem, 3.8vw, 2.3rem);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .015em;
	margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}
.section-more { text-align: center; margin-top: clamp(1.5rem, 4vw, 2.5rem); }
.section--gray { background: var(--c-gray); }

/* =============================================================
   NAGŁÓWEK
   ============================================================= */
/* Pasek półprzezroczysty NAD hero: sticky trzyma go przy przewijaniu, a ujemny
   margines dolny wsuwa hero pod spód (kompensacja: padding-top w .hero). */
.site-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(24, 19, 15, .8);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid rgba(239, 231, 217, .14);
	margin-bottom: calc(-1 * (var(--header-h) + 1px));
	color: var(--c-cream);
}

/* Skip-link: wizualnie ukryty (klasa .visually-hidden), obecny dla AT/klawiatury */
.skip-link { position: absolute; z-index: 100; }

/* Widoczny wskaźnik focusa (klawiatura) — WCAG 2.4.7; na ciemnych strefach kremowy */
:focus-visible { outline: 3px solid var(--c-ink); outline-offset: 2px; }
.btn:focus-visible { outline-color: var(--c-ink); }
.site-header :focus-visible,
.hero :focus-visible,
.site-footer :focus-visible { outline-color: var(--c-cream); }
.site-header__inner {
	position: relative;   /* punkt odniesienia dla rozwijanego menu (nie cały header) */
	display: flex; align-items: center; gap: 1rem;
	min-height: 64px;
}
.logo {
	margin-right: auto;
	font-weight: 800; font-size: 1.35rem; letter-spacing: .01em;
	text-decoration: none; color: var(--c-cream);
}

/* Ikony social / utility */
.social { display: flex; align-items: center; gap: .35rem; }
.social a {
	display: grid; place-items: center;
	width: 38px; height: 38px; border-radius: 50%;
	color: var(--c-cream); transition: color .18s, background .18s;
}
.social a:hover { color: var(--c-gold-light); background: rgba(239, 231, 217, .08); }
.social svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.social__cart svg { stroke-width: 1.7; }

/* Burger (button) */
.nav-burger {
	display: flex; flex-direction: column; justify-content: center; gap: 5px;
	width: 42px; height: 42px; padding: 0 9px;
	background: none; border: 0; color: inherit;
	cursor: pointer; border-radius: var(--radius);
}
.nav-burger span { height: 2px; background: var(--c-cream); border-radius: 2px; transition: transform .25s, opacity .25s; }
.nav-burger:hover span { background: var(--c-gold-light); }

/* Menu — rozwijane (dostępny disclosure, stan .is-open sterowany JS) */
.site-nav {
	position: absolute; top: 100%; right: var(--pad);
	min-width: 240px;
	background: #fff;
	color: var(--c-ink);   /* panel jest biały — nadpisuje kremowy kolor dziedziczony z paska */
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-lg);
	transform-origin: top right;
	transform: scale(.96); opacity: 0; visibility: hidden;
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.site-nav.is-open { opacity: 1; visibility: visible; transform: scale(1); }
.site-nav__list { display: flex; flex-direction: column; padding: .5rem; }
.site-nav__list a {
	display: block; padding: .7rem 1rem; text-decoration: none; font-weight: 500;
	border-radius: var(--radius);
}
.site-nav__list a:hover { background: var(--c-gray); color: var(--c-gold-deep); }

/* Animacja burgera w stan „X” (sterowana aria-expanded) */
.nav-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* =============================================================
   HERO — rozmyta biblioteka + postać + cytat (Antonio) + podpis + logo 12 lat
   Tekst w HTML (dostępność/SEO), grafiki tylko jako obrazy z altami.
   ============================================================= */
.hero {
	position: relative;
	/* Warstwy: przyciemnienie (mocniejsze po prawej, pod tekstem) → zdjęcie → kolor bazowy.
	   Scrim gwarantuje kontrast kremu/złota niezależnie od jasności zdjęcia (WCAG 1.4.3). */
	/* Obraz tła podaje blok (inline: --hero-bg: url(...)) */
	background-color: var(--c-dark);
	background-image:
		linear-gradient(100deg, rgba(28,22,17,.35) 34%, rgba(28,22,17,.74) 60%),
		linear-gradient(rgba(28,22,17,.42), rgba(28,22,17,.5)),
		var(--hero-bg, none);
	background-position: center, center, center 24%;
	background-size: auto, auto, cover;
	background-repeat: no-repeat;
	color: var(--c-cream);
	padding-top: calc(var(--header-h) + 1.5rem);   /* kompensacja paska wsuniętego nad hero */
}
/* Mobile: kolumna — cytat, podpis, logo, postać przy dolnej krawędzi */
.hero__inner { display: flex; flex-direction: column; align-items: center; }
.hero__content { display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero__quote { font-family: var(--font-display); text-transform: uppercase; line-height: 1.08; }
.hero__quote p { font-size: clamp(1.7rem, 6.4vw, 2.1rem); font-weight: 700; letter-spacing: .012em; text-shadow: 0 2px 8px rgba(0,0,0,.45); }
.hero__quote-a { color: var(--c-cream); }
.hero__quote-b { color: var(--c-gold); margin-top: .35em; }
.hero__sign { width: auto; height: clamp(52px, 8vw, 72px); margin-top: 1.1rem; }
.hero__badge { width: clamp(104px, 16vw, 148px); height: auto; margin-top: 1.25rem; border-radius: 50%; box-shadow: 0 10px 30px rgba(0,0,0,.4); }
.hero__person { display: block; width: auto; max-width: 88%; max-height: 46vh; margin-top: 1.25rem; }

/* =============================================================
   SZYBKA NAWIGACJA (3 przyciski)
   ============================================================= */
.quicknav { background: #fff; padding-bottom: clamp(1.25rem, 3vw, 1.75rem); }
.quicknav__list { display: flex; flex-direction: column; gap: .75rem; }
.quicknav__list li { flex: 1; }

/* =============================================================
   KSIĄŻKA  (układ powtarzalny: obraz + treść)
   ============================================================= */
.book { padding-block: var(--space); }
.book__inner { display: flex; flex-direction: column; align-items: center; gap: clamp(1.5rem, 4vw, 3rem); text-align: center; }
.book__cover { width: auto; max-width: 100%; max-height: 440px; /*! filter: drop-shadow(0 16px 26px rgba(0,0,0,.28)); */ }
.book__body { width: 100%; min-width: 0; }
.book__title { font-family: var(--font-display); font-size: clamp(1.9rem, 4.6vw, 2.9rem); font-weight: 700; line-height: 1.1; margin-bottom: 1rem; }
.book__title span { font-weight: 400; }
.book__body p { margin-bottom: 1rem; color: #333; max-width: min(46ch, 100%); }
.book__actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-top: 1.5rem; }

/* =============================================================
   WSPÓŁPRACA
   ============================================================= */
.collab { padding-block: var(--space); }
.collab__logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(1.75rem, 5vw, 4rem); }
/* Logotypy przycięte do znaku (-trim), więc wspólna wysokość daje optyczną równowagę.
   Limit szerokości temperuje długi wordmark ACTIVESHOP (6.9:1). */
.collab__logos img { height: clamp(40px, 4.5vw, 52px); width: auto; max-width: clamp(200px, 26vw, 300px); filter: grayscale(1); opacity: .85; transition: filter .2s, opacity .2s; }
.collab__logos img:hover { filter: none; opacity: 1; }
.collab__cta { text-align: center; margin-top: clamp(1.75rem, 4vw, 2.5rem); }

/* =============================================================
   SIATKA KART (wydarzenia + blog)
   ============================================================= */
.events, .blog { padding-block: var(--space); }
.card-grid { display: grid; grid-template-columns: 1fr; gap: var(--gap); }

.card {
	position: relative; display: block; overflow: hidden;
	aspect-ratio: 1 / 1; background: #111; border-radius: var(--radius);
	text-decoration: none;
}
.card--blog { aspect-ratio: 4 / 3; }
.card img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.card:hover img, .card:focus-visible img { transform: scale(1.06); }
.card__title {
	position: absolute; inset: auto 0 0 0; margin: 0;
	padding: 2rem 1rem .9rem;
	color: #fff; font-size: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
	background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.6) 42%, rgba(0,0,0,0) 100%);
	text-shadow: 0 1px 3px rgba(0,0,0,.55);   /* czytelność niezależnie od jasności zdjęcia (WCAG 1.4.3) */
}
.card__date {
	position: absolute; top: .6rem; right: .6rem;
	background: var(--c-gold); color: var(--c-ink);
	font-size: .72rem; font-weight: 600; padding: .2rem .5rem; border-radius: var(--radius);
}

/* =============================================================
   O MNIE
   ============================================================= */
.about { padding-block: var(--space); }
.about__inner { display: flex; flex-direction: column; align-items: center; gap: clamp(1.5rem, 4vw, 3rem); text-align: center; }
.about__photo { width: 100%; max-width: 320px; border-radius: var(--radius); }
.about__body { width: 100%; min-width: 0; }
.about__eyebrow { color: var(--c-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; margin-bottom: .4rem; }
.about__name { font-family: var(--font-display); font-size: clamp(1.9rem, 4.4vw, 2.7rem); font-weight: 600; margin-bottom: 1rem; }
.about__body p { color: #333; max-width: min(48ch, 100%); }
.about__contact { display: flex; flex-direction: column; gap: .6rem; margin-top: 1.5rem; align-items: center; }
.about__contact li { display: flex; align-items: center; gap: .6rem; }
.about__contact img { width: 20px; height: 20px; }
.about__contact a { text-decoration: none; font-weight: 600; }
.about__contact a:hover { color: var(--c-gold-deep); }

/* =============================================================
   STOPKA
   ============================================================= */
.site-footer { background: var(--c-black); color: #cfcfcf; padding-block: clamp(2rem, 5vw, 3rem); }
.site-footer__inner { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; text-align: center; }
.site-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; }
.site-footer__links a { color: #cfcfcf; text-decoration: none; font-size: .9rem; }
.site-footer__links a:hover { color: #fff; }
.site-footer__legal { font-size: .82rem; color: #8f8f8f; }
.site-footer__pay { display: block; }   /* bez pudełka — logo imoje ma własne czarne tło, zlewa się ze stopką */

/* =============================================================
   BREAKPOINTY
   ============================================================= */

/* --- Tablet (≥ 640px): karty 2 kolumny --- */
@media (min-width: 640px) {
	.card-grid { grid-template-columns: repeat(2, 1fr); }
}

/* --- Laptop (≥ 768px): hero desktop, układy dwukolumnowe --- */
@media (min-width: 768px) {
	.hero { padding-top: var(--header-h); }
	/* Postać z lewej przy dolnej krawędzi; treść w prawej kolumnie */
	.hero__inner { position: relative; display: block; min-height: clamp(540px, 82vh, 700px); }
	.hero__person {
		position: absolute; left: 0; bottom: 0;
		max-width: 48%; max-height: none; height: min(88%, 620px); width: auto; margin: 0;
	}
	.hero__content {
		width: min(560px, 50%);
		margin-left: auto;
		align-items: flex-start; text-align: left;
		padding-top: clamp(2rem, 6vh, 4.5rem);
		padding-bottom: calc(var(--quicknav-overlap) + 2rem);   /* treść nad strefą nachodzenia przycisków */
	}
	.hero__quote p { font-size: clamp(2rem, 3.3vw, 2.9rem); }
	.hero__sign { align-self: flex-end; margin-top: 1.4rem; }
	.hero__badge { align-self: center; margin-top: 1.6rem; }

	/* Złote przyciski nachodzą na dolną krawędź hero */
	.quicknav { position: relative; z-index: 5; margin-top: calc(-1 * var(--quicknav-overlap)); background: transparent; padding-bottom: 0; }
	.quicknav__list { flex-direction: row; gap: .75rem; }

	.book__inner {
		flex-direction: row; text-align: left; align-items: center;
		justify-content: center;
	}
	.book__body { width: auto; flex: 1; }
	.book__body p { margin-inline: 0; }
	.book__actions { justify-content: flex-start; }

	.collab__cta { text-align: right; }

	.about__inner { flex-direction: row; text-align: left; align-items: center; }
	.about__body { width: auto; flex: 1; }
	.about__contact { align-items: flex-start; }
}

/* --- Desktop (≥ 1024px): karty 3 kolumny --- */
@media (min-width: 1024px) {
	.card-grid { grid-template-columns: repeat(3, 1fr); }
	.card__title { font-size: 1.05rem; }
}

/* --- Dostępność: ograniczenie animacji --- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto; }
}

/* =============================================================
   WORDPRESS — dopasowania motywu
   ============================================================= */
/* Pasek admina WP (zalogowani): sticky header niżej o wysokość paska */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }

/* Logo graficzne w pasku (custom-logo) */
.logo img { display: block; max-height: 40px; width: auto; }

/* Zwykłe podstrony (page.php / index.php) */
.section-plain { padding-block: calc(var(--header-h) + var(--space)) var(--space); }
.section-plain h1 { font-family: var(--font-display); font-size: clamp(1.9rem, 4.4vw, 2.7rem); }

/* Menu WP: klasy li generowane przez wp_nav_menu */
.site-nav__list li { margin: 0; }

/* Ikony kontaktu w sekcji „O mnie" (inline SVG zamiast plików img) */
.about__contact-icon { display: inline-grid; place-items: center; }
.about__contact-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Warianty przycisków (bloki: lista wpisów, slajder, filtry) ---------- */
/* .btn działa też na <button> — reset formularzowy */
button.btn { font-family: inherit; font-size: 1rem; }
.btn--outline {
	background: transparent;
	color: var(--c-gold-deep);
	box-shadow: inset 0 0 0 2px var(--c-gold);
}
.btn--outline:hover, .btn--outline:focus-visible { background: var(--c-gold); color: var(--c-ink); }
.btn--outline.active { background: var(--c-gold); color: var(--c-ink); }
.btn--small { padding: .45rem .9rem; font-size: .88rem; }
.btn--link {
	background: transparent; padding-inline: .25rem;
	color: var(--c-gold-deep); text-decoration: underline; text-underline-offset: 3px;
}
.btn--link:hover, .btn--link:focus-visible { background: transparent; color: var(--c-ink); }
.btn--white { background: #fff; color: var(--c-ink); }
.btn--white:hover, .btn--white:focus-visible { background: var(--c-cream); }

/* ---------- Karty treści (blok lista-wpisow + AJAX) ---------- */
.czk-cards-grid { display: grid; }
.czk-card {
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease;
}
.czk-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.czk-card-image {
	aspect-ratio: 3 / 2;
	background-size: cover;
	background-position: center;
	background-color: var(--c-gray);
}
.czk-card-title { font-size: 1.1rem; font-weight: 700; line-height: 1.3; margin: 0; }
.czk-card-title a { text-decoration: none; }
.czk-card-title a:hover { color: var(--c-gold-deep); }
