/* ============================================================
   Komponenty dołożone w wersji WordPressowej.
   app.css pokrywa układ przeniesiony z prototypu — tutaj jest
   tylko to, czego prototyp nie miał.
   ============================================================ */

/* ---------- Mega-menu ---------- */

.nav-mega {
	position: relative;
}

.nav-mega__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.nav-mega__trigger::after {
	content: "";
	width: 5px;
	height: 5px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	opacity: 0.6;
	transition: transform 0.25s var(--ease, ease);
}

.nav-mega:hover .nav-mega__trigger::after,
.nav-mega:focus-within .nav-mega__trigger::after {
	transform: translateY(0) rotate(225deg);
}

.nav-mega__panel {
	position: absolute;
	top: 100%;
	left: 50%;
	z-index: 40;
	min-width: 260px;
	padding-top: 0.9rem;
	transform: translateX(-50%) translateY(-6px);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.22s var(--ease, ease), transform 0.22s var(--ease, ease), visibility 0.22s;
}

.nav-mega:hover .nav-mega__panel,
.nav-mega:focus-within .nav-mega__panel {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.nav-mega__inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(120px, 1fr));
	gap: 0.15rem 1.6rem;
	padding: 1.1rem 1.4rem;
	border: 1px solid var(--line, rgba(23, 19, 14, 0.14));
	border-radius: var(--radius-lg, 6px);
	background: var(--snow, #fbfaf6);
	box-shadow: var(--shadow, 0 8px 30px rgba(23, 19, 14, 0.09));
}

.nav-mega__link {
	padding: 0.4rem 0;
	font-size: var(--fs-sm, 0.92rem);
	color: var(--ink, #17130e);
	white-space: nowrap;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s var(--ease, ease);
}

.nav-mega__link:hover {
	border-bottom-color: var(--glacier, #1c5a78);
}

/* Menu na ciemnym hero — panel zostaje jasny, sam trigger dziedziczy kolor. */
.nav--ondark .nav-mega__link {
	color: var(--ink, #17130e);
}

@media (max-width: 900px) {
	.nav-mega__panel {
		display: none;
	}
}

/* ---------- Program dnia (details/summary) ---------- */

.days {
	border-top: 1px solid var(--line, rgba(23, 19, 14, 0.14));
}

.day {
	border-bottom: 1px solid var(--line, rgba(23, 19, 14, 0.14));
}

.day-head {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	padding: 1.1rem 0;
	cursor: pointer;
	list-style: none;
}

.day-head::-webkit-details-marker {
	display: none;
}

.day-num {
	font-family: var(--font-mono, monospace);
	font-size: var(--fs-label, 0.72rem);
	letter-spacing: 0.1em;
	color: var(--stone-2, #9a9384);
}

.day-title {
	flex: 1;
	font-family: var(--font-display, sans-serif);
	font-size: var(--fs-h3, 1.35rem);
	line-height: 1.3;
}

.day-head::after {
	content: "+";
	font-size: 1.3rem;
	line-height: 1;
	color: var(--stone, #6a6357);
	transition: transform 0.25s var(--ease, ease);
}

.day[open] .day-head::after {
	transform: rotate(45deg);
}

.day-body-inner {
	padding: 0 0 1.4rem 2.6rem;
	max-width: 60ch;
	color: var(--stone, #6a6357);
}

@media (max-width: 640px) {
	.day-body-inner {
		padding-left: 0;
	}
}

/* ---------- FAQ ---------- */

.faq-item {
	border-bottom: 1px solid var(--line, rgba(23, 19, 14, 0.14));
}

.faq-item > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 0;
	cursor: pointer;
	font-weight: 600;
	list-style: none;
}

.faq-item > summary::-webkit-details-marker {
	display: none;
}

.faq-item > summary::after {
	content: "+";
	font-size: 1.2rem;
	color: var(--stone, #6a6357);
	transition: transform 0.25s var(--ease, ease);
}

.faq-item[open] > summary::after {
	transform: rotate(45deg);
}

.faq-answer {
	padding-bottom: 1.2rem;
	max-width: 62ch;
	color: var(--stone, #6a6357);
}

/* ---------- Karta rezerwacji: lista "w cenie" ---------- */

.book-card--includes {
	margin-top: 1rem;
}

.includes-list {
	margin: 0.6rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.45rem;
}

.includes-list li {
	position: relative;
	padding-left: 1.4rem;
	font-size: var(--fs-sm, 0.92rem);
	color: var(--stone, #6a6357);
}

.includes-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 8px;
	height: 4px;
	border-left: 1.6px solid var(--glacier, #1c5a78);
	border-bottom: 1.6px solid var(--glacier, #1c5a78);
	transform: rotate(-45deg);
}

.book-mini .v.is-low {
	color: #9a5b23;
}

.breadcrumb__current {
	color: #fff;
}

/* ---------- Formularz ---------- */

.form-wrap {
	max-width: 780px;
	margin-inline: auto;
}

.form-context {
	margin: 0 0 1.4rem;
	padding: 0.7rem 1rem;
	border-left: 2px solid var(--glacier, #1c5a78);
	background: var(--ice-wash, rgba(28, 90, 120, 0.08));
	font-size: var(--fs-sm, 0.92rem);
}

.form-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.field--choices {
	margin: 0 0 1.4rem;
	padding: 0;
	border: 0;
}

.field__label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: var(--fs-label, 0.72rem);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--stone, #6a6357);
}

.field .req {
	color: #b32d2e;
}

.chips--form {
	gap: 0.5rem;
}

.chip--check {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
}

.chip--check input {
	accent-color: var(--glacier, #1c5a78);
}

.form-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.4rem;
	margin-top: 1.6rem;
}

.form-reassure {
	margin: 0;
	font-size: var(--fs-sm, 0.92rem);
	color: var(--stone-2, #9a9384);
}

.form-note {
	margin: 0 0 1.6rem;
	padding: 1rem 1.2rem;
	border-radius: var(--radius, 3px);
	font-size: var(--fs-sm, 0.92rem);
}

.form-note--ok {
	border-left: 3px solid var(--glacier, #1c5a78);
	background: var(--ice-wash, rgba(28, 90, 120, 0.08));
}

.form-note--error {
	border-left: 3px solid #b32d2e;
	background: rgba(179, 45, 46, 0.07);
}

/* ---------- Społeczność ---------- */

.community-head {
	max-width: 60ch;
	margin-bottom: var(--sp-5, 3rem);
}

.community-map {
	margin-bottom: var(--sp-5, 3rem);
	padding: var(--sp-3, 1.5rem) 0;
	border-top: 1px solid var(--line, rgba(23, 19, 14, 0.14));
	border-bottom: 1px solid var(--line, rgba(23, 19, 14, 0.14));
}

.community-map__label {
	display: block;
	margin-bottom: 0.9rem;
	font-family: var(--font-mono, monospace);
	font-size: var(--fs-label, 0.72rem);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--stone-2, #9a9384);
}

.community-map__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.7rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.community-map__list a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.4rem 0.85rem;
	border: 1px solid var(--line, rgba(23, 19, 14, 0.14));
	border-radius: 100px;
	font-size: var(--fs-sm, 0.92rem);
	transition: border-color 0.2s var(--ease, ease), background 0.2s var(--ease, ease);
}

.community-map__list a:hover {
	border-color: var(--glacier, #1c5a78);
	background: var(--ice-wash, rgba(28, 90, 120, 0.08));
}

.community-map__count {
	font-family: var(--font-mono, monospace);
	font-size: var(--fs-label, 0.72rem);
	color: var(--stone-2, #9a9384);
}

.community-quotes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--sp-3, 1.5rem);
}

.quote {
	margin: 0;
	padding: var(--sp-3, 1.5rem);
	border: 1px solid var(--line, rgba(23, 19, 14, 0.14));
	border-radius: var(--radius-lg, 6px);
	background: var(--snow, #fbfaf6);
}

.quote blockquote {
	margin: 0 0 1.1rem;
	font-size: var(--fs-body, 1.06rem);
	line-height: 1.6;
}

.quote blockquote p:last-child {
	margin-bottom: 0;
}

.quote figcaption {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.2rem 0.6rem;
	padding-top: 1rem;
	border-top: 1px solid var(--line, rgba(23, 19, 14, 0.14));
}

.quote__avatar {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	object-fit: cover;
}

.quote__author {
	font-weight: 600;
}

.quote__trip {
	width: 100%;
	font-size: var(--fs-label, 0.72rem);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--stone-2, #9a9384);
}

.community-insta {
	margin-top: var(--sp-4, 2rem);
	text-align: center;
}

.elements-empty {
	padding: var(--sp-4, 2rem);
	border: 1px dashed var(--line-strong, rgba(23, 19, 14, 0.3));
	border-radius: var(--radius-lg, 6px);
	text-align: center;
	color: var(--stone, #6a6357);
}

/* ---------- Stopka ---------- */

.site-footer {
	padding: var(--sp-5, 3rem) 0 var(--sp-4, 2rem);
	background: var(--ink, #17130e);
	color: var(--bone, #f2eee6);
}

.site-footer__inner {
	display: grid;
	gap: var(--sp-3, 1.5rem);
}

.site-footer__brand p {
	margin: 0.35rem 0 0;
	color: var(--stone-2, #9a9384);
}

.site-footer__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.4rem;
}

.site-footer__nav a {
	color: var(--bone, #f2eee6);
	font-size: var(--fs-sm, 0.92rem);
	opacity: 0.85;
}

.site-footer__nav a:hover {
	opacity: 1;
}

.site-footer__legal {
	margin: 0;
	padding-top: var(--sp-2, 1rem);
	border-top: 1px solid rgba(242, 238, 230, 0.16);
	font-size: var(--fs-label, 0.72rem);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--stone-2, #9a9384);
}

/* ---------- Strony treściowe ---------- */

.page-main {
	padding-top: calc(var(--sp-7, 6.5rem) + 2rem);
	padding-bottom: var(--sp-6, 4.5rem);
	max-width: 760px;
}

.page-title {
	margin-bottom: var(--sp-4, 2rem);
	font-size: var(--fs-h1, 2.6rem);
}

.entry__content > * + * {
	margin-top: 1.1rem;
}

/* ---------- Filtry: panel mobilny ---------- */

@media (max-width: 900px) {
	.filters-desktop {
		display: none;
	}

	.filters-desktop.is-open {
		display: block;
	}
}

/* ---------- Baner zgód ---------- */

.consent-bar {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 90;
	padding: 1rem 0;
	background: var(--ink, #17130e);
	color: var(--bone, #f2eee6);
	box-shadow: 0 -8px 30px rgba(23, 19, 14, 0.18);
}

.consent-bar[hidden] {
	display: none;
}

.consent-bar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.6rem;
}

.consent-bar__text {
	flex: 1 1 320px;
	margin: 0;
	font-size: var(--fs-sm, 0.92rem);
	line-height: 1.55;
	color: rgba(242, 238, 230, 0.85);
}

.consent-bar__text a {
	color: var(--bone, #f2eee6);
	text-decoration: underline;
}

.consent-bar__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.consent-bar__actions .btn--ghost {
	color: var(--bone, #f2eee6);
	border-color: rgba(242, 238, 230, 0.35);
}

/* ---------- Odstęp pod przyklejonym nagłówkiem ---------- */

/* Strony bez hero zaczynają się tuż pod nagłówkiem — bez tego treść
   chowa się za nim, bo .nav jest position: fixed. */
.page-kontakt > .section:first-child,
.page-main {
	padding-top: calc(var(--sp-6, 4.5rem) + 2.5rem);
}

.form-lead {
	max-width: 780px;
	margin: 0 auto var(--sp-4, 2rem);
	color: rgba(242, 238, 230, 0.72);
}

.form-section .field input,
.form-section .field textarea {
	background: rgba(242, 238, 230, 0.06);
	border-color: rgba(242, 238, 230, 0.22);
	color: var(--bone, #f2eee6);
}

.form-section .field input::placeholder,
.form-section .field textarea::placeholder {
	color: rgba(242, 238, 230, 0.4);
}

.form-section .field__label,
.form-section .form-reassure {
	color: rgba(242, 238, 230, 0.6);
}

.form-section .chip--check {
	border-color: rgba(242, 238, 230, 0.22);
	color: var(--bone, #f2eee6);
}

.form-section .chip--check:hover {
	border-color: rgba(242, 238, 230, 0.5);
}

.form-section .consent {
	color: rgba(242, 238, 230, 0.72);
}

.form-section .contact-line {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.7rem 1.4rem;
	margin-top: var(--sp-4, 2rem);
	font-family: var(--font-mono, monospace);
	font-size: 0.8rem;
	color: rgba(242, 238, 230, 0.8);
}

/* ---------- Wyprzedany ---------- */

.badge--sold {
	background: rgba(23, 19, 14, 0.82);
	color: var(--bone, #f2eee6);
	border-color: transparent;
}

.card--sold .card-media img {
	filter: saturate(0.45);
}

.card--sold .card-seats {
	color: var(--stone-2, #9a9384);
}

.book-sold {
	margin-bottom: 0.9rem;
	padding: 0.7rem 0.9rem;
	border-left: 3px solid var(--stone-2, #9a9384);
	background: rgba(23, 19, 14, 0.05);
	font-size: var(--fs-sm, 0.92rem);
}

/* ---------- Pasek administracyjny WordPressa ----------
   .nav jest position: fixed, więc ignoruje odsunięcie, które WordPress
   dodaje do <html>. Bez tego pasek admina zasłania nawigację strony
   każdemu zalogowanemu użytkownikowi. */

body.admin-bar .nav {
	top: 32px;
}

body.admin-bar .drawer {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .nav,
	body.admin-bar .drawer {
		top: 46px;
	}
}

/* ---------- Spis taksonomii ---------- */

.tax-index {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1rem;
}

.tax-index__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.3rem;
	border: 1px solid var(--line, rgba(23, 19, 14, 0.14));
	border-radius: var(--radius-lg, 6px);
	background: var(--snow, #fbfaf6);
	transition: border-color 0.2s var(--ease, ease), box-shadow 0.2s var(--ease, ease);
}

.tax-index__item:hover {
	border-color: var(--glacier, #1c5a78);
	box-shadow: var(--shadow, 0 8px 30px rgba(23, 19, 14, 0.09));
}

.tax-index__name {
	font-family: var(--font-display, sans-serif);
	font-size: var(--fs-h3, 1.35rem);
}

.tax-index__count {
	font-size: var(--fs-label, 0.72rem);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--stone-2, #9a9384);
}

/* ---------- Nagłówek katalogu bez zdjęcia: kompaktowy ----------
   Domyślny .cat-hero to wysoki hero (82vh) pod zdjęcie w tle. Gdy zdjęcia nie ma,
   nie marnujemy ekranu — nagłówek startuje tuż pod menu, ciemny tekst na jasnym tle. */

.cat-hero--compact {
	min-height: 0;
	color: var(--ink, #17130e);
	padding-top: calc(var(--sp-6, 4.5rem) + 1.5rem); /* odstęp na przyklejone menu */
	padding-bottom: var(--sp-3, 1.5rem);
}

.cat-hero--compact .cat-hero-inner {
	padding-bottom: 0;
}

.cat-hero--compact .eyebrow {
	color: var(--glacier, #1c5a78);
}

.cat-hero--compact h1 {
	font-size: var(--fs-h1, 2.6rem);
	max-width: none;
}

/* Hero ze zdjęciem zostaje wysoki, ale niższy niż pełne 82vh — nie zasłania oferty. */
.cat-hero--image {
	min-height: 52vh;
}
