/*
Theme Name:   FPIOR (Solace)
Theme URI:    https://www.odnowarodzin.org.pl/
Description:  Motyw potomny Solace dla Fundacji Profilaktyki i Odnowy Rodziny – system wizualny wg makiet FPIOR-Sitemap-Design. Elementor, The Events Calendar + Event Tickets, Fluent Forms, Rank Math. Narzędzie konfiguracji: Wygląd → FPIOR Setup.
Author:       Fundacja Profilaktyki i Odnowy Rodziny
Template:     solace
Version:      3.17.2
Requires PHP: 7.4
Text Domain:  fpior
License:      GPL-2.0-or-later
*/

/* ==========================================================================
   1. Tokeny
   ========================================================================== */
:root {
	--fp-cream: #F8F5ED;       /* tło strony */
	--fp-paper: #FCFAF5;       /* karty, formularze */
	--fp-ink: #292D29;         /* nagłówki, tekst główny (12.8:1) */
	--fp-muted: #5F665C;       /* tekst pomocniczy (5.4:1) */
	--fp-sage: #7C9370;        /* dekoracje, ikony */
	--fp-sage-ink: #55684C;    /* eyebrow, linki (5.5:1) */
	--fp-sage-light: #E6EBDC;  /* tagi, boksy */
	--fp-sage-pale: #ECEFE3;   /* stopka */
	--fp-forest: #344633;      /* ciemne CTA */
	--fp-orange: #EF922F;      /* przyciski główne – tekst #232A22 (6.2:1) */
	--fp-orange-ink: #232A22;
	--fp-line: #D9DDCF;        /* linie i ramki dekoracyjne */
	--fp-control: #737B6D;     /* ramki pól i przycisków (4:1) */
	--fp-white: #FFFFFF;

	--fp-serif: "Lora", Georgia, "Times New Roman", serif;
	--fp-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--fp-max: 1240px;
	--fp-gutter: 5%;
	--fp-r: 14px;
	--fp-r-lg: 18px;
	--fp-arch: 200px 200px 10px 10px;
	--fp-shadow: 0 1px 2px rgba(41, 45, 41, .04), 0 10px 30px rgba(41, 45, 41, .06);
	--fp-sec: 88px;

	--tec-color-accent-primary: var(--fp-orange);
	--tec-color-accent-primary-hover: var(--fp-forest);
	--tec-color-button-primary: var(--fp-orange);
	--tec-color-button-primary-hover: var(--fp-forest);
	--tec-color-link-accent: var(--fp-sage-ink);
	--tec-color-text-primary: var(--fp-ink);
	--tec-color-text-secondary: var(--fp-muted);
	--tec-color-background: var(--fp-cream);
	--tec-font-family-sans-serif: var(--fp-sans);
	--tec-font-family-base: var(--fp-sans);
	--tec-border-radius-default: 10px;
}
@media (max-width: 1024px) { :root { --fp-sec: 64px; } }
@media (max-width: 767px)  { :root { --fp-sec: 44px; --fp-arch: 140px 140px 10px 10px; } }

/* ==========================================================================
   2. Baza
   ========================================================================== */
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body, body.solace, .solace-body {
	background: var(--fp-cream) !important;
	color: var(--fp-ink);
	font-family: var(--fp-sans);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
@media (max-width: 767px) { body { font-size: 16px; } }
h1, h2, h3, h4, h5, h6, .elementor-widget-heading .elementor-heading-title {
	font-family: var(--fp-serif);
	font-weight: 400;
	color: var(--fp-ink);
	letter-spacing: -.01em;
	margin-top: 0;
}
h1, .elementor-widget-heading h1.elementor-heading-title { font-size: 60px; line-height: 1.06; letter-spacing: -.02em; }
h2, .elementor-widget-heading h2.elementor-heading-title { font-size: 42px; line-height: 1.12; }
h3, .elementor-widget-heading h3.elementor-heading-title { font-size: 28px; line-height: 1.2; }
h4, .elementor-widget-heading h4.elementor-heading-title { font-size: 22px; line-height: 1.3; }
@media (max-width: 1024px) {
	h1, .elementor-widget-heading h1.elementor-heading-title { font-size: 44px; }
	h2, .elementor-widget-heading h2.elementor-heading-title { font-size: 34px; }
	h3, .elementor-widget-heading h3.elementor-heading-title { font-size: 25px; }
}
@media (max-width: 767px) {
	h1, .elementor-widget-heading h1.elementor-heading-title { font-size: 36px; }
	h2, .elementor-widget-heading h2.elementor-heading-title { font-size: 29px; }
	h3, .elementor-widget-heading h3.elementor-heading-title { font-size: 23px; }
}
h1 em, h2 em, h3 em, .elementor-heading-title em { font-style: italic; font-weight: 400; }
p { margin: 0 0 1em; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
a { color: var(--fp-sage-ink); text-underline-offset: 3px; }
a:hover { color: var(--fp-ink); }
strong { font-weight: 600; color: var(--fp-ink); }
:focus-visible { outline: 2px solid var(--fp-ink); outline-offset: 3px; border-radius: 4px; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; height: auto; width: auto; display: block; position: fixed; top: 8px; left: 8px; z-index: 100000; padding: 12px 16px; background: var(--fp-white); color: var(--fp-ink); border-radius: 8px; }

.fp-eyebrow .elementor-heading-title, p.fp-eyebrow, span.fp-eyebrow {
	font-family: var(--fp-sans) !important; font-size: 12px !important; line-height: 1.5 !important;
	font-weight: 500 !important; letter-spacing: 2.4px; text-transform: uppercase; color: var(--fp-sage-ink) !important;
}
.fp-on-dark .fp-eyebrow .elementor-heading-title, .fp-callout .fp-eyebrow .elementor-heading-title { color: #BAC8AA !important; }
.fp-lead, .fp-lead p { font-size: 18px; line-height: 1.75; color: var(--fp-muted); max-width: 36em; }
@media (max-width: 767px) { .fp-lead, .fp-lead p { font-size: 16px; } }
.fp-muted, .fp-muted p { color: var(--fp-muted); font-size: 15px; }
.fp-note, .fp-note p { font-size: 13px; color: var(--fp-muted); }
.fp-todo, .fp-todo p { padding: 12px 16px; border: 1px dashed var(--fp-control); border-radius: 10px; background: var(--fp-paper); font-size: 14px; color: var(--fp-ink); }
.fp-center, .fp-center .elementor-heading-title { text-align: center; }
.fp-measure { max-width: 800px; }

/* ==========================================================================
   3. Layout – klasy na kontenerach Elementora
   ========================================================================== */
.elementor .e-con.e-con.fp-sec {
	--padding-top: var(--fp-sec); --padding-bottom: var(--fp-sec); --padding-left: 0px; --padding-right: 0px;
	--content-width: min(90%, var(--fp-max)); --gap: 32px 32px; --row-gap: 32px;
}
.elementor .e-con.e-con.fp-sec--tight { --padding-top: 40px; --padding-bottom: 40px; }
.elementor .e-con.e-con.fp-sec--top0 { --padding-top: 0px; }
.elementor .e-con.e-con.fp-sec--hero { --padding-top: 24px; --padding-bottom: 48px; }
.fp-bg-paper { background-color: var(--fp-paper); }
.fp-bg-sage { background-color: var(--fp-sage-pale); }
.elementor .e-con.e-con.fp-stack { --flex-direction: column; --gap: 16px 16px; --row-gap: 16px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.elementor .e-con.e-con.fp-stack--lg { --gap: 24px 24px; --row-gap: 24px; }
.elementor .e-con.e-con.fp-row { --flex-direction: row; --flex-wrap: wrap; --align-items: center; --gap: 12px 12px; --row-gap: 12px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }

.elementor .e-con.e-con.fp-grid-2, .elementor .e-con.e-con.fp-grid-3, .elementor .e-con.e-con.fp-grid-4, .elementor .e-con.e-con.fp-split, .elementor .e-con.e-con.fp-split-wide, .elementor .e-con.e-con.fp-split-form { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.fp-grid-2.e-con-full, .fp-grid-2 > .e-con-inner, .fp-grid-3.e-con-full, .fp-grid-3 > .e-con-inner, .fp-grid-4.e-con-full, .fp-grid-4 > .e-con-inner,
.fp-split.e-con-full, .fp-split > .e-con-inner, .fp-split-wide.e-con-full, .fp-split-wide > .e-con-inner, .fp-split-form.e-con-full, .fp-split-form > .e-con-inner {
	display: grid !important; gap: 26px; align-items: stretch;
}
.fp-grid-2.e-con-full, .fp-grid-2 > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fp-grid-3.e-con-full, .fp-grid-3 > .e-con-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fp-grid-4.e-con-full, .fp-grid-4 > .e-con-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.fp-split.e-con-full, .fp-split > .e-con-inner { grid-template-columns: 1.08fr 1fr; gap: 64px; align-items: center; }
.fp-split-wide.e-con-full, .fp-split-wide > .e-con-inner { grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.fp-split-form.e-con-full, .fp-split-form > .e-con-inner { grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: start; }
.fp-grid-2 > *, .fp-grid-3 > *, .fp-grid-4 > *, .fp-split > *, .fp-split-wide > *, .fp-split-form > *,
.fp-grid-2 > .e-con-inner > *, .fp-grid-3 > .e-con-inner > *, .fp-grid-4 > .e-con-inner > *, .fp-split > .e-con-inner > *, .fp-split-wide > .e-con-inner > *, .fp-split-form > .e-con-inner > * { width: auto !important; max-width: none; min-width: 0; margin: 0 !important; }
@media (max-width: 1024px) {
	.fp-grid-3.e-con-full, .fp-grid-3 > .e-con-inner, .fp-grid-4.e-con-full, .fp-grid-4 > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fp-split.e-con-full, .fp-split > .e-con-inner, .fp-split-wide.e-con-full, .fp-split-wide > .e-con-inner, .fp-split-form.e-con-full, .fp-split-form > .e-con-inner { gap: 40px; }
}
@media (max-width: 860px) {
	.fp-split.e-con-full, .fp-split > .e-con-inner, .fp-split-wide.e-con-full, .fp-split-wide > .e-con-inner, .fp-split-form.e-con-full, .fp-split-form > .e-con-inner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 680px) {
	.fp-grid-2.e-con-full, .fp-grid-2 > .e-con-inner, .fp-grid-3.e-con-full, .fp-grid-3 > .e-con-inner, .fp-grid-4.e-con-full, .fp-grid-4 > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}

/* Nagłówek sekcji: H2 po lewej, opis/link po prawej */
.elementor .e-con.e-con.fp-head { --flex-direction: row; --flex-wrap: wrap; --justify-content: space-between; --align-items: flex-end; --gap: 14px 40px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.elementor .e-con.e-con.fp-head > .elementor-widget:first-child, .elementor .e-con.e-con.fp-head > .e-con:first-child { flex: 1 1 520px; }
.fp-head__side, .fp-head__side p { max-width: 380px; font-size: 14px; color: var(--fp-muted); }

/* ==========================================================================
   4. Ikony (maska SVG z zestawu FPIOR)
   ========================================================================== */
.fp-ico { display: inline-block; width: 22px; height: 22px; flex-shrink: 0; vertical-align: -5px; background-color: currentColor;
	-webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.fp-ico--lg { width: 34px; height: 34px; }
.fp-ico--xl { width: 56px; height: 56px; }

/* ==========================================================================
   5. Przyciski
   ========================================================================== */
body .fp-btn .elementor-button, .fp-button, .fp-nav__cta, .ff-btn-submit, .fp-event__cta, .tribe-common .tribe-common-c-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 22px;
	min-height: 52px; padding: 15px 24px; border-radius: 10px; border: 1px solid transparent;
	font-family: var(--fp-sans); font-size: 15px; font-weight: 500; line-height: 1.3; text-decoration: none;
	box-shadow: none; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
body .fp-btn .elementor-button-text { font: inherit; }
body .fp-btn .elementor-button-text::after, .fp-button::after, .fp-nav__cta::after, .fp-event__cta::after {
	content: ""; display: inline-block; width: 18px; height: 18px; margin-left: 20px; vertical-align: -3px; background-color: currentColor;
	-webkit-mask: var(--fp-arrow) center / contain no-repeat; mask: var(--fp-arrow) center / contain no-repeat;
}
body .fp-btn-primary .elementor-button, .fp-button--primary, .ff-btn-submit, .fp-event__cta, .tribe-common .tribe-common-c-btn {
	background: var(--fp-orange) !important; color: var(--fp-orange-ink) !important; border-color: var(--fp-orange) !important;
}
body .fp-btn-primary .elementor-button:hover, .fp-button--primary:hover, .ff-btn-submit:hover, .fp-event__cta:hover, .tribe-common .tribe-common-c-btn:hover {
	background: var(--fp-forest) !important; border-color: var(--fp-forest) !important; color: var(--fp-white) !important;
}
body .fp-btn-secondary .elementor-button, .fp-button--secondary { background: transparent; color: var(--fp-ink); border-color: var(--fp-control); }
body .fp-btn-secondary .elementor-button:hover, .fp-button--secondary:hover { background: var(--fp-paper); color: var(--fp-ink); border-color: var(--fp-ink); }
body .fp-btn-dark .elementor-button, .fp-nav__cta { background: var(--fp-ink); color: var(--fp-white); border-color: var(--fp-ink); }
body .fp-btn-dark .elementor-button:hover, .fp-nav__cta:hover { background: var(--fp-forest); color: var(--fp-white); }
.fp-btn-noarrow .elementor-button-text::after { display: none !important; }
@media (max-width: 767px) { .fp-btns .fp-btn, .fp-btns .fp-btn .elementor-button { width: 100%; justify-content: space-between; } }

/* Link-strzałka w kartach */
.fp-more .elementor-heading-title, .fp-more .elementor-heading-title a, a.fp-more {
	display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px;
	font-family: var(--fp-sans); font-size: 14px; font-weight: 500; color: var(--fp-ink); text-decoration: none;
}
.fp-more { border-top: 1px solid var(--fp-line); padding-top: 6px; margin-top: auto; }
.fp-more .elementor-heading-title a { flex: 1 1 auto; }
.fp-more .elementor-heading-title a::after, a.fp-more::after {
	content: ""; width: 18px; height: 18px; background-color: currentColor; transition: transform .2s ease;
	-webkit-mask: var(--fp-arrow) center / contain no-repeat; mask: var(--fp-arrow) center / contain no-repeat;
}
.fp-more .elementor-heading-title a:hover::after, a.fp-more:hover::after { transform: translate(2px, -2px); }
.fp-more .elementor-heading-title a:hover { text-decoration: underline; }

/* ==========================================================================
   6. Hero podstron + zdjęcia
   ========================================================================== */
.fp-crumbs, .rank-math-breadcrumb { font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--fp-muted); margin: 0; }
.fp-crumbs a, .rank-math-breadcrumb a { color: var(--fp-muted); text-decoration: none; }
.fp-crumbs a:hover, .rank-math-breadcrumb a:hover { color: var(--fp-ink); text-decoration: underline; }
.fp-crumbs .sep, .rank-math-breadcrumb .separator { margin: 0 10px; }
.elementor .e-con.e-con.fp-heromedia { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; position: relative; }
.fp-arch img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--fp-arch); display: block; }
.fp-arch--tall img { aspect-ratio: 1 / 1; }
.fp-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--fp-r); display: block; }
.fp-photo--square img { aspect-ratio: 1 / 1; }
.fp-tagpill { position: absolute !important; left: 22px; bottom: 22px; width: auto !important; z-index: 2; }
.fp-tagpill p { margin: 0; padding: 9px 18px; border-radius: 30px; background: rgba(248, 245, 237, .94); font-size: 12px; color: var(--fp-ink); }
.fp-hero h1.elementor-heading-title { max-width: 13em; }

/* Linia z trzema cechami */
.fp-rule { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; border-top: 1px solid var(--fp-line); padding: 22px 0 0; margin: 0; list-style: none; font-size: 13px; color: var(--fp-muted); }
.fp-rule li { display: flex; align-items: center; gap: 12px; }
.fp-rule .fp-ico { color: var(--fp-ink); }
@media (max-width: 767px) { .fp-rule { flex-direction: column; gap: 14px; } }

/* ==========================================================================
   7. Karty
   ========================================================================== */
.elementor .e-con.e-con.fp-card {
	--padding-top: 26px; --padding-right: 26px; --padding-bottom: 22px; --padding-left: 26px; --gap: 12px 12px; --row-gap: 12px; --flex-direction: column;
	background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.elementor .e-con.e-con.fp-card--link:hover, .elementor .e-con.e-con.fp-card--link:focus-within { border-color: var(--fp-control); box-shadow: var(--fp-shadow); transform: translateY(-2px); }
.elementor .e-con.e-con.fp-card--media { --padding-top: 0px; --padding-right: 0px; --padding-left: 0px; overflow: hidden; }
.fp-card--media > .elementor-widget:not(.elementor-widget-image) { padding-inline: 24px; }
.fp-card--media .elementor-widget-image { margin-bottom: 8px; }
.fp-card--media .elementor-widget-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; display: block; }
.fp-card h3.elementor-heading-title { font-size: 26px; }
.fp-card p { font-size: 14px; color: var(--fp-muted); }
.fp-card .fp-eyebrow .elementor-heading-title { font-size: 11px !important; }
.fp-card .fp-ico--lg { color: var(--fp-sage-ink); }
.elementor .e-con.e-con.fp-box { --padding-top: 34px; --padding-right: 34px; --padding-bottom: 34px; --padding-left: 34px; --gap: 14px 14px; --row-gap: 14px; background: var(--fp-sage-light); border-radius: var(--fp-r); }
.elementor .e-con.e-con.fp-box--paper { background: var(--fp-paper); border: 1px solid var(--fp-line); }
@media (max-width: 767px) { .elementor .e-con.e-con.fp-box { --padding-top: 24px; --padding-right: 22px; --padding-bottom: 24px; --padding-left: 22px; } }

/* Numerowane wiersze */
.fp-rows { list-style: none; margin: 0; padding: 0; counter-reset: fp; }
.fp-rows li { display: flex; gap: 24px; align-items: flex-start; border-top: 1px solid var(--fp-line); padding: 22px 0; counter-increment: fp; }
.fp-rows li::before { content: counter(fp, decimal-leading-zero); font-family: var(--fp-serif); font-size: 34px; line-height: 1; color: var(--fp-sage); min-width: 58px; }
.fp-rows h3, .fp-rows strong.fp-rows__t { display: block; font-family: var(--fp-serif); font-weight: 400; font-size: 24px; line-height: 1.25; margin: 0 0 6px; color: var(--fp-ink); }
.fp-rows p { margin: 0; font-size: 14px; color: var(--fp-muted); }
@media (max-width: 767px) { .fp-rows li { gap: 14px; } .fp-rows li::before { font-size: 28px; min-width: 42px; } }

/* Lista z ptaszkami */
ul.fp-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
ul.fp-checks li { position: relative; padding-left: 32px; line-height: 1.55; }
ul.fp-checks li::before { content: ""; position: absolute; left: 0; top: .15em; width: 20px; height: 20px; background-color: var(--fp-sage-ink);
	-webkit-mask: var(--fp-check) center / contain no-repeat; mask: var(--fp-check) center / contain no-repeat; }
ul.fp-checks.fp-checks--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 32px; }
@media (max-width: 680px) { ul.fp-checks.fp-checks--2 { grid-template-columns: 1fr; } }

/* FAQ (details/summary) */
.fp-faq details { border-top: 1px solid var(--fp-line); }
.fp-faq details:last-child { border-bottom: 1px solid var(--fp-line); }
.fp-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 20px 0; min-height: 44px; font-family: var(--fp-serif); font-size: 22px; line-height: 1.3; color: var(--fp-ink); }
.fp-faq summary::-webkit-details-marker { display: none; }
.fp-faq summary::after { content: "+"; font-family: var(--fp-sans); font-size: 26px; color: var(--fp-sage-ink); transition: transform .2s ease; }
.fp-faq details[open] summary::after { transform: rotate(45deg); }
.fp-faq details > div { padding: 0 0 20px; color: var(--fp-muted); max-width: 820px; }

/* Oś czasu */
.fp-timeline { list-style: none; margin: 0; padding: 0 0 0 40px; border-left: 1px solid #9FAE91; }
.fp-timeline li { position: relative; padding: 0 0 28px; }
.fp-timeline li::before { content: ""; position: absolute; left: -47px; top: 10px; width: 13px; height: 13px; border-radius: 50%; background: var(--fp-orange); }
.fp-timeline b { display: block; font-family: var(--fp-serif); font-weight: 400; font-size: 30px; line-height: 1.2; color: var(--fp-sage-ink); }
.fp-timeline p { margin: 4px 0 0; color: var(--fp-muted); }

/* Dane formalne, statystyki */
.fp-facts { margin: 0; display: grid; border-top: 1px solid var(--fp-line); }
.fp-facts > div { display: grid; grid-template-columns: 170px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--fp-line); }
.fp-facts dt { font-weight: 600; font-size: 14px; color: var(--fp-ink); }
.fp-facts dd { margin: 0; font-size: 15px; color: var(--fp-muted); }
@media (max-width: 480px) { .fp-facts > div { grid-template-columns: 1fr; gap: 2px; } }
.fp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin: 0; }
.fp-stats > div { border-top: 1px solid var(--fp-line); padding-top: 18px; }
.fp-stats dt { font-family: var(--fp-serif); font-size: 30px; line-height: 1.15; color: var(--fp-ink); }
.fp-stats dd { margin: 6px 0 0; font-size: 13px; color: var(--fp-muted); }
@media (max-width: 1024px) { .fp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .fp-stats { grid-template-columns: 1fr; } }
.fp-bignum { font-family: var(--fp-serif); font-size: 84px; line-height: 1; color: var(--fp-sage-ink); letter-spacing: -.02em; word-break: break-word; }
.fp-bignum small { display: block; font-family: var(--fp-sans); font-size: 12px; letter-spacing: 2.4px; text-transform: uppercase; color: var(--fp-muted); margin-bottom: 6px; }
@media (max-width: 767px) { .fp-bignum { font-size: 48px; } }
.fp-account { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; font-family: var(--fp-serif); font-size: 24px; color: var(--fp-ink); }
.fp-copy { min-height: 44px; padding: 10px 16px; border-radius: 10px; border: 1px solid var(--fp-control); background: transparent; font: 500 14px var(--fp-sans); color: var(--fp-ink); cursor: pointer; }
.fp-copy:hover { background: var(--fp-paper); }

/* Pobieranie dokumentów */
.fp-downloads { list-style: none; margin: 0; padding: 0; }
.fp-downloads li { display: grid; grid-template-columns: 110px 1fr; gap: 20px; align-items: center; border-top: 1px solid var(--fp-line); padding: 20px 0; }
.fp-downloads b { font-family: var(--fp-serif); font-weight: 400; font-size: 30px; color: var(--fp-ink); }
.fp-downloads span { display: flex; flex-wrap: wrap; gap: 10px; }
.fp-downloads a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 16px; border: 1px solid var(--fp-control); border-radius: 10px; font-size: 14px; color: var(--fp-ink); text-decoration: none; }
.fp-downloads a:hover { background: var(--fp-paper); }
@media (max-width: 560px) { .fp-downloads li { grid-template-columns: 1fr; gap: 8px; } }

/* Kontakt – lista */
.fp-contact { list-style: none; margin: 0; padding: 0; }
.fp-contact li { display: flex; gap: 16px; align-items: flex-start; border-top: 1px solid var(--fp-line); padding: 18px 0; }
.fp-contact .fp-ico { margin-top: 3px; color: var(--fp-ink); }
.fp-contact b { display: block; font-family: var(--fp-serif); font-weight: 400; font-size: 22px; color: var(--fp-ink); }
.fp-contact a { color: var(--fp-ink); }

/* Okładka książki (gdy brak zdjęcia) */
.fp-book img { max-width: 320px; width: 100%; height: auto; box-shadow: 18px 24px 0 var(--fp-sage-light); border-radius: 4px; display: block; margin-inline: auto; }

/* Ciemne CTA (callout) */
.elementor .e-con.e-con.fp-callout {
	--padding-top: 56px; --padding-right: 52px; --padding-bottom: 56px; --padding-left: 52px; --flex-direction: row; --flex-wrap: wrap;
	--justify-content: space-between; --align-items: center; --gap: 28px 40px;
	background: var(--fp-forest); border-radius: var(--fp-r-lg); color: #F9F6EF;
}
.fp-callout .elementor-heading-title { color: #F9F6EF !important; }
.fp-callout p { color: #D6DECD; }
.fp-callout > .e-con:first-child { flex: 1 1 520px; }
@media (max-width: 767px) { .elementor .e-con.e-con.fp-callout { --padding-top: 32px; --padding-right: 24px; --padding-bottom: 32px; --padding-left: 24px; } }

/* Galeria Elementora */
.fp-gallery .gallery-item img, .fp-gallery img { border-radius: 10px; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: auto; }

/* Mapa */
.fp-map iframe { width: 100%; min-height: 320px; border: 0; border-radius: var(--fp-r); display: block; }

/* ==========================================================================
   8. Header
   ========================================================================== */
.fp-topbar { background: var(--fp-sage-pale); font-size: 13px; color: var(--fp-muted); }
.fp-topbar__in { width: min(90%, var(--fp-max)); margin: 0 auto; min-height: 36px; display: flex; justify-content: flex-end; align-items: center; gap: 22px; }
.fp-topbar a { color: var(--fp-ink); text-decoration: none; }
.fp-topbar a:hover { text-decoration: underline; }
@media (max-width: 1100px) { .fp-topbar { display: none; } }
.fp-header { position: sticky; top: 0; z-index: 999; background: rgba(248, 245, 237, .97); transition: box-shadow .2s ease; }
.admin-bar .fp-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .fp-header { top: 0; position: relative; } }
.fp-header.is-scrolled { box-shadow: 0 2px 18px rgba(41, 45, 41, .08); }
.fp-header__in { width: min(90%, var(--fp-max)); margin: 0 auto; min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--fp-line); }
.fp-header.is-scrolled .fp-header__in { min-height: 80px; border-bottom-color: transparent; }
.fp-brand img { display: block; width: 250px; height: auto; }
@media (max-width: 480px) { .fp-brand img { width: 200px; } }
.fp-nav { display: flex; align-items: center; gap: 22px; }
.fp-nav__list { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.fp-nav__list > li { position: relative; }
.fp-nav__list a { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 11px; font-size: 14px; font-weight: 500; color: var(--fp-ink); text-decoration: none; border-radius: 8px; }
.fp-nav__list > li > a:hover, .fp-nav__list > .current-menu-item > a, .fp-nav__list > .current-menu-ancestor > a, .fp-nav__list > .current-page-ancestor > a { background: var(--fp-sage-light); }
.fp-nav__list .menu-item-has-children > a::after { content: ""; width: 7px; height: 7px; margin: -3px 0 0 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.fp-nav__list .sub-menu {
	position: absolute; top: calc(100% + 6px); left: 0; min-width: 280px; margin: 0; padding: 10px; list-style: none;
	background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); box-shadow: var(--fp-shadow);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.fp-nav__list li:hover > .sub-menu, .fp-nav__list li:focus-within > .sub-menu, .fp-nav__list li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.fp-nav__list .sub-menu a { padding: 9px 12px; font-weight: 400; }
.fp-nav__list .sub-menu a:hover, .fp-nav__list .sub-menu .current-menu-item > a { background: var(--fp-sage-light); }
/* Mega-menu „Oferta”: grupy w kolumnach */
.fp-nav__list > li.fp-mega > .sub-menu { display: grid; grid-template-columns: repeat(3, minmax(210px, 1fr)); gap: 6px 18px; width: min(860px, 80vw); left: 50%; transform: translate(-50%, 6px); padding: 22px; }
.fp-nav__list > li.fp-mega:hover > .sub-menu, .fp-nav__list > li.fp-mega:focus-within > .sub-menu, .fp-nav__list > li.fp-mega.is-open > .sub-menu { transform: translate(-50%, 0); }
.fp-nav__list > li.fp-mega > .sub-menu > li > a { font-family: var(--fp-serif); font-size: 18px; font-weight: 400; }
.fp-nav__list > li.fp-mega > .sub-menu > li > .sub-menu { position: static; opacity: 1; visibility: inherit; transform: none; box-shadow: none; border: 0; padding: 0 0 8px; min-width: 0; background: transparent; }
.fp-nav__list > li.fp-mega > .sub-menu > li > .sub-menu a { font-size: 14px; color: var(--fp-muted); padding: 6px 12px; min-height: 36px; }
.fp-nav__list > li.fp-mega > .sub-menu > li > a::after { display: none; }
.fp-nav__cta { min-height: 48px; padding: 12px 18px; gap: 0; white-space: nowrap; font-size: 14px; }
.fp-nav__cta::after { margin-left: 16px; }
.fp-nav__mobile-info { display: none; }
.fp-nav-toggle { display: none; width: 48px; height: 48px; align-items: center; justify-content: center; padding: 0; background: transparent; border: 1px solid var(--fp-control); border-radius: 10px; color: var(--fp-ink); cursor: pointer; }
.fp-nav-toggle__bars, .fp-nav-toggle__bars::before, .fp-nav-toggle__bars::after { display: block; width: 22px; height: 2px; background: currentColor; border-radius: 2px; position: relative; transition: transform .2s ease; }
.fp-nav-toggle__bars::before, .fp-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.fp-nav-toggle__bars::before { top: -7px; } .fp-nav-toggle__bars::after { top: 7px; }
.fp-nav-open .fp-nav-toggle__bars { background: transparent; }
.fp-nav-open .fp-nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.fp-nav-open .fp-nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 1180px) {
	.fp-nav-toggle { display: inline-flex; }
	.fp-nav { position: fixed; inset: 96px 0 0 0; z-index: 998; flex-direction: column; align-items: stretch; gap: 18px; padding: 16px 5% 40px; background: var(--fp-cream); overflow-y: auto; transform: translateX(100%); visibility: hidden; transition: transform .25s ease, visibility .25s; }
	.admin-bar .fp-nav { inset-block-start: 128px; }
	.fp-nav-open .fp-nav { transform: none; visibility: visible; }
	body.fp-nav-open { overflow: hidden; }
	.fp-nav__list { flex-direction: column; align-items: stretch; }
	.fp-nav__list > li { border-bottom: 1px solid var(--fp-line); }
	.fp-nav__list a { min-height: 52px; font-size: 17px; padding: 12px 4px; }
	.fp-nav__list .sub-menu, .fp-nav__list > li.fp-mega > .sub-menu { position: static; display: none; opacity: 1; visibility: visible; transform: none !important; width: auto; grid-template-columns: 1fr; box-shadow: none; border: 0; padding: 0 0 10px 12px; background: transparent; }
	.fp-nav__list li.is-open > .sub-menu { display: block; }
	.fp-nav__list > li.fp-mega > .sub-menu > li > .sub-menu { display: block; }
	.fp-nav__cta { width: 100%; justify-content: space-between; min-height: 52px; }
	.fp-nav__mobile-info { display: block; font-size: 15px; color: var(--fp-muted); }
	.fp-nav__mobile-info a { color: var(--fp-ink); }
}

/* ==========================================================================
   9. Footer
   ========================================================================== */
.fp-footer { background: var(--fp-sage-pale); color: var(--fp-muted); padding: 60px 0 0; font-size: 14px; line-height: 1.7; margin-top: 0; }
.fp-footer__in { width: min(90%, var(--fp-max)); margin: 0 auto; display: grid; grid-template-columns: 1.35fr 1fr 1fr 1.1fr; gap: 40px; padding-bottom: 36px; }
.fp-footer__logo { display: block; width: 230px; height: auto; margin-bottom: 16px; }
.fp-footer__title { margin: 0 0 12px; font-family: var(--fp-serif); font-size: 19px; color: var(--fp-ink); }
.fp-footer p { margin: 0 0 8px; }
.fp-footer a { color: var(--fp-ink); text-decoration: none; }
.fp-footer a:hover { text-decoration: underline; }
.fp-footer__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.fp-footer__menu a { display: inline-flex; align-items: center; min-height: 36px; }
.fp-footer__support { width: min(90%, var(--fp-max)); margin: 0 auto 0; padding: 18px 0; border-top: 1px solid var(--fp-line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: center; }
.fp-footer__support a { font-weight: 500; }
.fp-footer__bottom { width: min(90%, var(--fp-max)); margin: 0 auto; padding: 16px 0 26px; border-top: 1px solid var(--fp-line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 13px; }
.fp-footer__legal { display: flex; flex-wrap: wrap; gap: 4px 18px; list-style: none; margin: 0; padding: 0; }
@media (max-width: 1024px) { .fp-footer__in { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .fp-footer__in { grid-template-columns: 1fr; gap: 28px; } }

/* ==========================================================================
   10. Wydarzenia
   ========================================================================== */
.fp-events { display: grid; gap: 0; }
.fp-event { display: grid; grid-template-columns: 120px 84px minmax(0, 1fr) auto; gap: 22px; align-items: center; padding: 22px 0; border-top: 1px solid var(--fp-line); }
.fp-event:last-child { border-bottom: 1px solid var(--fp-line); }
.fp-event__img { width: 120px; height: 96px; object-fit: cover; border-radius: 10px; display: block; background: var(--fp-sage-light); }
.fp-event__date { margin: 0; font-family: var(--fp-serif); font-size: 40px; line-height: 1; color: var(--fp-ink); }
.fp-event__date small { display: block; margin-top: 8px; font-family: var(--fp-sans); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--fp-muted); }
.fp-event__title { margin: 0 0 6px; font-size: 25px; line-height: 1.25; }
.fp-event__title a { color: var(--fp-ink); text-decoration: none; }
.fp-event__title a:hover { text-decoration: underline; }
.fp-event__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13px; color: var(--fp-muted); }
.fp-event__meta span { display: inline-flex; gap: 6px; align-items: center; }
.fp-event__meta .fp-ico { width: 15px; height: 15px; vertical-align: 0; }
.fp-pills { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.fp-pill { display: inline-block; padding: 4px 12px; border-radius: 22px; background: var(--fp-sage-light); color: var(--fp-ink); font-size: 12px; line-height: 1.5; }
.fp-pill--ok { background: #DDE8D3; } .fp-pill--few { background: #FBE3C6; } .fp-pill--none { background: #EBDCD5; } .fp-pill--closed { background: #E3E3DE; }
.fp-event__cta { padding: 12px 16px; min-height: 46px; font-size: 13px; white-space: nowrap; }
.fp-event__cta::after { margin-left: 14px; width: 15px; height: 15px; }
.fp-event--past { opacity: .78; }
@media (max-width: 860px) {
	.fp-event { grid-template-columns: 72px minmax(0, 1fr); gap: 14px 16px; }
	.fp-event__img { display: none; }
	.fp-event__cta { grid-column: 2; justify-self: start; }
}
.fp-events-empty { padding: 28px; border: 1px dashed var(--fp-control); border-radius: var(--fp-r); background: var(--fp-paper); }
.fp-events-empty p { margin: 0 0 6px; }
.fp-filter { display: grid; gap: 14px; margin: 0 0 26px; }
.fp-filter__row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fp-filter__label { font-size: 12px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--fp-muted); margin-right: 6px; min-width: 110px; }
.fp-filter a { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 18px; border-radius: 24px; border: 1px solid var(--fp-control); color: var(--fp-ink); font-size: 13px; text-decoration: none; background: transparent; }
.fp-filter a:hover { background: var(--fp-paper); }
.fp-filter a[aria-current="true"] { background: var(--fp-forest); border-color: var(--fp-forest); color: var(--fp-white); }
.fp-events-count { margin: 0 0 4px; font-size: 14px; color: var(--fp-muted); }
.fp-events-archive { margin-top: 56px; }
.fp-events-archive h2 { font-size: 30px; }
/* Mini kalendarz */
.fp-cal { border: 1px solid var(--fp-line); border-radius: var(--fp-r); padding: 24px; background: var(--fp-paper); }
.fp-cal__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.fp-cal__head h3 { margin: 0; font-size: 22px; text-transform: capitalize; }
.fp-cal__head a { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 50%; color: var(--fp-ink); text-decoration: none; font-size: 20px; }
.fp-cal__head a:hover { background: var(--fp-sage-light); }
.fp-cal table { width: 100%; border-collapse: collapse; text-align: center; font-size: 13px; }
.fp-cal th { font-weight: 500; font-size: 11px; color: var(--fp-muted); padding: 6px 0; }
.fp-cal td { padding: 3px; }
.fp-cal td span, .fp-cal td a { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 50%; color: var(--fp-ink); text-decoration: none; }
.fp-cal td a { background: var(--fp-orange); color: var(--fp-orange-ink); font-weight: 600; }
.fp-cal td a:hover { background: var(--fp-forest); color: var(--fp-white); }
.fp-cal td.is-today span { box-shadow: inset 0 0 0 1px var(--fp-ink); }
.fp-cal__note { margin: 14px 0 0; font-size: 12px; color: var(--fp-muted); }

/* The Events Calendar – pojedyncze wydarzenie i widoki */
.tribe-common, .tribe-events, .tribe-tickets { font-family: var(--fp-sans) !important; }
.tribe-events-single-event-title, .tribe-common .tribe-common-h1, .tribe-common .tribe-common-h2, .tribe-common .tribe-common-h3, .tribe-common .tribe-common-h4 { font-family: var(--fp-serif) !important; font-weight: 400 !important; color: var(--fp-ink) !important; }
.tribe-events-single { width: min(90%, 900px); margin: 0 auto; padding: 32px 0 72px; }
.tribe-events-single .tribe-events-event-meta { background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); }
.tribe-events-view { padding-top: 24px; padding-bottom: 64px; }
.fp-event-status { margin: 0 0 16px; }
.fp-event-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 28px; }
.tribe-tickets__rsvp-wrapper, .tribe-tickets__rsvp { border-radius: var(--fp-r) !important; }
.fp-signup { margin-top: 40px; padding: 30px; border-radius: var(--fp-r-lg); background: var(--fp-sage-light); }

/* ==========================================================================
   11. Fluent Forms
   ========================================================================== */
.fp-form, .fluentform { max-width: 100%; }
.elementor .e-con.e-con.fp-formcard { --padding-top: 32px; --padding-right: 32px; --padding-bottom: 32px; --padding-left: 32px; background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); }
@media (max-width: 767px) { .elementor .e-con.e-con.fp-formcard { --padding-top: 22px; --padding-right: 18px; --padding-bottom: 22px; --padding-left: 18px; } }
.fluentform .ff-el-input--label label, .fluentform .ff-el-form-check-label { font-size: 14px !important; font-weight: 500 !important; color: var(--fp-ink) !important; }
.fluentform .ff-el-form-control { min-height: 48px; border: 1px solid var(--fp-control) !important; border-radius: 8px !important; background: var(--fp-white) !important; font: 400 16px/1.5 var(--fp-sans) !important; color: var(--fp-ink) !important; }
.fluentform textarea.ff-el-form-control { min-height: 130px; }
.fluentform .ff-el-form-control:focus { border-color: var(--fp-ink) !important; box-shadow: 0 0 0 2px var(--fp-ink) !important; outline: none; }
.fluentform .ff-el-is-error .ff-el-form-control { border-width: 2px !important; border-color: #A3361B !important; }
.fluentform .error, .fluentform .text-danger { color: #A3361B !important; font-size: 13px; font-weight: 500; }
.fluentform .ff-el-form-check input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--fp-forest); }
.fluentform .ff_submit_btn_wrapper .ff-btn-submit { width: 100%; justify-content: space-between; }
.ff-message-success { border: 0 !important; border-radius: 10px; background: var(--fp-sage-light) !important; color: var(--fp-ink) !important; box-shadow: none !important; }

/* ==========================================================================
   12. Treści bez Elementora (polityki, wpisy, 404, wyszukiwanie)
   ========================================================================== */
.fp-page { width: min(90%, 820px); margin: 0 auto; padding: 32px 0 80px; }
.fp-page h1 { margin: 16px 0 24px; }
.fp-page h2 { font-size: 30px; margin: 36px 0 12px; }
.fp-page h3 { font-size: 23px; margin: 28px 0 8px; }
.fp-page ul, .fp-page ol { padding-left: 1.3em; }
.fp-legal details { border-top: 1px solid var(--fp-line); padding: 6px 0; }
.fp-legal summary { cursor: pointer; padding: 12px 0; font-family: var(--fp-serif); font-size: 20px; }
.fp-search { display: flex; gap: 8px; max-width: 560px; margin: 0 0 32px; }
.fp-search input { flex: 1; min-height: 48px; padding: 10px 14px; border: 1px solid var(--fp-control); border-radius: 8px; font: 16px var(--fp-sans); background: var(--fp-white); }
.fp-results { list-style: none; margin: 0; padding: 0; }
.fp-results li { border-top: 1px solid var(--fp-line); padding: 18px 0; }
.fp-results a { font-family: var(--fp-serif); font-size: 22px; color: var(--fp-ink); }

/* v3.0.2 – zabezpieczenie przed stylami motywu nadrzędnego (Solace) */
body .fp-header .fp-nav__list, body .fp-header .fp-nav__list li, body .fp-header .fp-nav__list .sub-menu { list-style: none; margin-left: 0; }
body .fp-header .fp-nav__list li::marker { content: ""; }
body .fp-header a.fp-nav__cta, body .fp-header a.fp-nav__cta:visited { color: #fff; }
body .fp-header a.fp-nav__cta:hover, body .fp-header a.fp-nav__cta:focus-visible { color: #fff; background: var(--fp-forest); }

/* v3.1 – treści rozszerzone */
.fp-todo { display: none !important; }
body.logged-in .fp-todo { display: block !important; }
body.logged-in .fp-todo::before { content: "Notatka dla redakcji (niewidoczna dla odwiedzających)"; display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--fp-sage-ink); margin-bottom: 4px; }
.fp-quotes { display: grid; gap: 16px; }
.fp-quote { margin: 0; padding: 22px 24px; background: var(--fp-paper); border: 1px solid var(--fp-line); border-left: 3px solid var(--fp-sage); border-radius: var(--fp-r); }
.fp-quote p { margin: 0 0 10px; font-family: var(--fp-serif); font-style: italic; font-size: 18px; line-height: 1.5; color: var(--fp-ink); }
.fp-quote cite { font-style: normal; font-size: 13px; color: var(--fp-muted); }
.fp-quote cite::before { content: "— "; }
.fp-prayer { padding: 30px 32px; background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); }
.fp-prayer h3 { margin: 0 0 14px; font-family: var(--fp-serif); font-weight: 400; font-size: 22px; color: var(--fp-sage-ink); }
.fp-prayer p { font-family: var(--fp-serif); font-style: italic; font-size: 17px; line-height: 1.65; color: var(--fp-ink); margin: 0 0 12px; }
.fp-prayer p:last-child { margin-bottom: 0; }
@media (max-width: 767px) { .fp-prayer { padding: 22px 20px; } .fp-prayer p { font-size: 16px; } }
ul.fp-plan { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
ul.fp-plan li { display: grid; grid-template-columns: 88px 1fr; gap: 12px; font-size: 15px; line-height: 1.5; }
ul.fp-plan li b { font-weight: 600; color: var(--fp-sage-ink); font-variant-numeric: tabular-nums; }
ul.fp-plan li:not(:has(b)) span { grid-column: 2; }
@media (max-width: 480px) { ul.fp-plan li { grid-template-columns: 1fr; gap: 0; } ul.fp-plan li:not(:has(b)) span { grid-column: 1; } }
ol.fp-numlist { margin: 0; padding: 0; list-style: none; counter-reset: n; display: grid; gap: 0; }
ol.fp-numlist li { counter-increment: n; display: grid; grid-template-columns: 40px 1fr; gap: 10px; padding: 11px 0; border-top: 1px solid var(--fp-line); font-size: 15px; line-height: 1.5; }
ol.fp-numlist li::before { content: counter(n); font-family: var(--fp-serif); font-size: 20px; line-height: 1.2; color: var(--fp-sage); }
.fp-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--fp-line); border-radius: var(--fp-r); background: var(--fp-paper); }
table.fp-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
table.fp-table th, table.fp-table td { text-align: left; vertical-align: top; padding: 14px 18px; border-bottom: 1px solid var(--fp-line); }
table.fp-table thead th { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--fp-sage-ink); background: var(--fp-sage-light); }
table.fp-table tbody th { font-family: var(--fp-serif); font-weight: 400; font-size: 18px; color: var(--fp-ink); width: 22%; }
table.fp-table tbody tr:last-child > * { border-bottom: 0; }
.fp-facts dd a { color: var(--fp-sage-ink); }
/* v3.1.1 – ukryte podmenu nie może przechwytywać kursora (rozwijanie megamenu nad hero) */
@media (min-width: 1181px) {
	.fp-nav__list .sub-menu { pointer-events: none; }
	.fp-nav__list li:hover > .sub-menu, .fp-nav__list li:focus-within > .sub-menu, .fp-nav__list li.is-open > .sub-menu,
	.fp-nav__list li:hover > .sub-menu .sub-menu, .fp-nav__list li:focus-within > .sub-menu .sub-menu, .fp-nav__list li.is-open > .sub-menu .sub-menu { pointer-events: auto; }
}

/* v3.2 – sekcja „Najbliższe terminy” na stronie głównej */
.fp-split-events.e-con-full, .fp-split-events > .e-con-inner { display: grid !important; grid-template-columns: minmax(0, 1.75fr) minmax(300px, 1fr); gap: 48px; align-items: start; }
.elementor .e-con.e-con.fp-split-events, .elementor .e-con.e-con.fp-events-col { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.fp-split-events > *, .fp-split-events > .e-con-inner > * { width: auto !important; min-width: 0; }
@media (max-width: 1024px) { .fp-split-events.e-con-full, .fp-split-events > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
.fp-events { container-type: inline-size; }
.fp-event__date { text-align: center; }
/* Lista w wąskim kontenerze: obraz i data obok siebie, treść i przycisk pod spodem */
@container (max-width: 640px) {
	.fp-event { grid-template-columns: 96px minmax(0, 1fr); grid-template-areas: "img body" "img cta"; gap: 10px 18px; align-items: start; }
	.fp-event > .fp-event__img, .fp-event > img, .fp-event > a:first-child { grid-area: img; }
	.fp-event > .fp-event__img, .fp-event > img { display: block; width: 96px; height: 96px; }
	.fp-event__date { display: none; }
	.fp-event > div { grid-area: body; }
	.fp-event__cta { grid-area: cta; justify-self: start; }
	.fp-event__title { font-size: 21px; }
}
@container (max-width: 380px) {
	.fp-event { grid-template-columns: minmax(0, 1fr); grid-template-areas: "body" "cta"; }
	.fp-event > .fp-event__img, .fp-event > img { display: none; }
}
/* Kalendarz: reset obramowań tabel z motywu nadrzędnego */
.fp-cal table, .fp-cal thead, .fp-cal tbody, .fp-cal tr, .fp-cal th, .fp-cal td { border: 0 !important; background: transparent; }
.fp-cal table { margin: 0; table-layout: fixed; }
.fp-cal th { text-align: center; padding: 0 0 8px; text-transform: none; letter-spacing: 0; }
.fp-cal td { text-align: center; height: 44px; vertical-align: middle; }
.fp-cal td span, .fp-cal td a { width: 36px; height: 36px; font-size: 14px; }
.fp-cal td.is-today span { box-shadow: inset 0 0 0 1.5px var(--fp-sage-ink); font-weight: 600; }
.fp-cal__note { display: flex; align-items: center; gap: 8px; padding-top: 14px; border-top: 1px solid var(--fp-line); }
.fp-cal__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--fp-orange); flex: none; }
.fp-cal__next { margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: var(--fp-ink); }
.fp-cal__next a { color: var(--fp-sage-ink); font-weight: 500; }
.fp-cal__jump { font-size: 13px; font-weight: 400 !important; }

/* v3.2 – sekcja „Dlaczego Fundacja?” */
.fp-head__side--wide, .fp-head__side--wide p { max-width: 520px; font-size: 15px; line-height: 1.65; }
ul.fp-why { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
ul.fp-why li { margin: 0; padding: 26px 24px 24px; background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); display: flex; flex-direction: column; gap: 4px; }
ul.fp-why .fp-ico { width: 26px; height: 26px; background-color: var(--fp-sage); margin-bottom: 14px; }
ul.fp-why strong { font-family: var(--fp-serif); font-weight: 400; font-size: 28px; line-height: 1.15; color: var(--fp-ink); }
.fp-why__t { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--fp-sage-ink); font-weight: 600; }
ul.fp-why p { margin: 10px 0 0; font-size: 14px; line-height: 1.6; color: var(--fp-muted); }
.elementor .e-con.e-con.fp-why__foot { --justify-content: space-between; margin-top: 8px; padding-top: 20px; border-top: 1px solid var(--fp-line); }
.fp-why__places { margin: 0; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--fp-muted); }
.fp-why__places .fp-ico { width: 16px; height: 16px; }
@media (max-width: 1024px) { ul.fp-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { ul.fp-why { grid-template-columns: 1fr; } ul.fp-why li { padding: 22px 20px; } }

/* v3.3 – pojedyncze wydarzenie (szablon tribe-events/single-event.php) */
.tribe-events-single.fp-ev { width: min(100% - 48px, 1240px); max-width: none; margin: 0 auto; padding: 28px 0 80px; }
.fp-ev__back { margin: 0 0 22px; }
.fp-ev__back a { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; color: var(--fp-sage-ink); text-decoration: none; }
.fp-ev__back a:hover { text-decoration: underline; }
.fp-ev__back .fp-ico { width: 16px; height: 16px; }
.fp-ev__notice { display: flex; gap: 10px; align-items: center; margin: 0 0 24px; padding: 12px 16px; border-radius: 10px; background: #E3E3DE; font-size: 14px; color: var(--fp-ink); }
.fp-ev__notice .fp-ico { width: 18px; height: 18px; flex: none; }
.fp-ev__notice a { color: var(--fp-ink); font-weight: 600; }
.fp-ev__head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; align-items: center; padding-bottom: 44px; border-bottom: 1px solid var(--fp-line); }
.fp-ev__eyebrow { margin: 0 0 12px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--fp-sage-ink); }
.fp-ev__title { margin: 0 0 24px; font-family: var(--fp-serif); font-weight: 400; font-size: clamp(34px, 4vw, 52px); line-height: 1.1; color: var(--fp-ink); }
ul.fp-ev__facts { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 12px; }
ul.fp-ev__facts li { display: flex; gap: 12px; align-items: flex-start; margin: 0; font-size: 16px; line-height: 1.45; color: var(--fp-ink); }
ul.fp-ev__facts .fp-ico { width: 20px; height: 20px; margin-top: 1px; flex: none; background-color: var(--fp-sage); }
ul.fp-ev__facts small { display: block; font-size: 13px; color: var(--fp-muted); }
ul.fp-ev__facts strong { font-weight: 600; }
.fp-ev__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.fp-ev__actions:empty { display: none; }
.fp-ev__media { margin: 0; }
.fp-ev__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 200px 200px 12px 12px; background: var(--fp-sage-light); }
.fp-ev__body { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 56px; align-items: start; padding-top: 44px; }
.fp-ev__text { font-size: 16px; line-height: 1.7; color: var(--fp-ink); }
.fp-ev__text > *:first-child { margin-top: 0; }
.fp-ev__text h2, .fp-ev__text h3 { font-family: var(--fp-serif); font-weight: 400; color: var(--fp-ink); }
.fp-ev__text a { color: var(--fp-sage-ink); }
.fp-ev__info { margin: 0 0 28px; padding: 20px 22px; border-radius: var(--fp-r); background: #FBE3C6; border: 1px solid #F3C98F; color: var(--fp-ink); }
.fp-ev__info h2 { margin: 0 0 6px; font-family: var(--fp-serif); font-weight: 400; font-size: 22px; }
.fp-ev__info p { margin: 0; font-size: 15px; line-height: 1.6; }
.fp-ev__info a { color: var(--fp-ink); font-weight: 600; }
.fp-ev__aside { position: sticky; top: 110px; }
.fp-ev__card { padding: 26px 26px 22px; background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); }
.fp-ev__card-title { margin: 0 0 6px; font-family: var(--fp-serif); font-weight: 400; font-size: 24px; color: var(--fp-ink); }
.fp-ev__dl { margin: 0; }
.fp-ev__dl > div { padding: 14px 0; border-bottom: 1px solid var(--fp-line); }
.fp-ev__dl > div:last-child { border-bottom: 0; }
.fp-ev__dl dt { margin: 0 0 4px; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--fp-sage-ink); }
.fp-ev__dl dd { margin: 0; font-size: 15px; line-height: 1.55; color: var(--fp-ink); word-break: break-word; }
.fp-ev__dl dd span { font-size: 13px; color: var(--fp-muted); }
.fp-ev__dl dd a { color: var(--fp-sage-ink); }
.fp-ev__dl dd.fp-pills { margin-top: 2px; }
.fp-ev__dl dd a.fp-pill { color: var(--fp-ink); text-decoration: none; }
.fp-ev__dl dd a.fp-pill:hover { background: #D5DEC8; }
.fp-ev__cal { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--fp-line); }
.fp-ev__cal-title { width: 100%; margin: 0; display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--fp-ink); }
.fp-ev__cal-title .fp-ico { width: 16px; height: 16px; }
.fp-ev__cal a { font-size: 14px; color: var(--fp-sage-ink); }
.fp-ev .fp-signup { margin-top: 40px; }
.fp-ev__nav { display: flex; justify-content: space-between; gap: 24px; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--fp-line); font-size: 14px; }
.fp-ev__nav a { color: var(--fp-sage-ink); text-decoration: none; }
.fp-ev__nav a:hover { text-decoration: underline; }
.fp-ev__next { text-align: right; margin-left: auto; }
@media (max-width: 1024px) {
	.fp-ev__head { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.fp-ev__media { order: -1; }
	.fp-ev__media img { aspect-ratio: 16 / 9; border-radius: 120px 120px 12px 12px; }
	.fp-ev__body { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.fp-ev__aside { position: static; order: -1; }
}
@media (max-width: 600px) {
	.tribe-events-single.fp-ev { width: calc(100% - 32px); padding-top: 18px; }
	.fp-ev__media img { border-radius: 80px 80px 10px 10px; }
	.fp-ev__actions .fp-button { width: 100%; justify-content: space-between; }
	.fp-ev__nav { flex-direction: column; }
	.fp-ev__next { text-align: left; margin-left: 0; }
}
/* v3.3.1 – dopracowanie strony wydarzenia */
.fp-ev .fp-ev__eyebrow { font-size: 12px !important; font-weight: 600 !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
.fp-ev .fp-ev__dl dd { margin: 0 !important; padding: 0 !important; }
.fp-ev .fp-ev__content .tribe-events-c-subscribe-dropdown__container, .fp-ev .fp-ev__content .tribe-events-cal-links { display: none !important; }
.fp-signup .tribe-tickets__tickets-item-extra-price, .fp-signup .tribe-tickets__tickets-footer-total { display: none !important; }
.fp-signup .tribe-tickets__tickets-wrapper, .fp-signup .tribe-common.event-tickets { margin-top: 20px; }
.fp-signup .tribe-tickets__tickets-form { background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); }

/* v3.4 – kolory menu: zmiana tylko po najechaniu albo na bieżącej stronie (bez podświetlania „rodzica”) */
:root { --fp-nav-hover: #344633; --fp-nav-accent: #EF922F; --fp-nav-sub-hover: #FBEFE0; }
body .fp-header .fp-nav__list a { background: transparent; transition: color .15s ease, background-color .15s ease; }
body .fp-header .fp-nav__list > .current-menu-ancestor > a, body .fp-header .fp-nav__list > .current-page-ancestor > a { background: transparent; color: var(--fp-ink); font-weight: 500; }
@media (min-width: 1181px) {
	body .fp-header .fp-nav__list > li > a { position: relative; }
	body .fp-header .fp-nav__list > li > a::before { content: ""; position: absolute; left: 11px; right: 11px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--fp-nav-accent); transform: scaleX(0); transform-origin: left center; transition: transform .2s ease; }
	body .fp-header .fp-nav__list > li > a:hover, body .fp-header .fp-nav__list > li > a:focus-visible, body .fp-header .fp-nav__list > li:hover > a { background: transparent; color: var(--fp-nav-hover); }
	body .fp-header .fp-nav__list > li > a:hover::before, body .fp-header .fp-nav__list > li > a:focus-visible::before, body .fp-header .fp-nav__list > li:hover > a::before { transform: scaleX(1); }
	body .fp-header .fp-nav__list > .current-menu-item > a { background: transparent; color: var(--fp-nav-hover); font-weight: 600; }
	body .fp-header .fp-nav__list > .current-menu-item > a::before { transform: scaleX(1); }
	body .fp-header .fp-nav__list > li.menu-item-has-children > a::before { right: 24px; }
}
/* Podmenu i megamenu */
body .fp-header .fp-nav .fp-nav__list li .sub-menu a:hover, body .fp-header .fp-nav .fp-nav__list li .sub-menu a:focus-visible { background: var(--fp-nav-sub-hover); color: var(--fp-nav-hover); }
body .fp-header .fp-nav .fp-nav__list li .sub-menu .current-menu-item > a { background: transparent; color: var(--fp-nav-hover); font-weight: 600; box-shadow: inset 3px 0 0 var(--fp-nav-accent); }
body .fp-header .fp-nav .fp-nav__list li .sub-menu .current-menu-item > a:hover { background: var(--fp-nav-sub-hover); }
body .fp-header .fp-nav .fp-nav__list li .sub-menu .current-menu-ancestor > a { background: transparent; color: inherit; }
/* Klawiatura */
body .fp-header .fp-nav__list a:focus-visible { outline: 2px solid var(--fp-nav-hover); outline-offset: 2px; }
/* Menu mobilne */
@media (max-width: 1180px) {
	body .fp-header .fp-nav__list > li > a:hover { background: transparent; color: var(--fp-nav-hover); }
	body .fp-header .fp-nav__list .current-menu-item > a { color: var(--fp-nav-hover); font-weight: 600; box-shadow: inset 3px 0 0 var(--fp-nav-accent); padding-left: 12px; }
}

/* v3.4.2 – Solace koloruje każdy odwiedzony/kliknięty link na niebiesko (#3662FF, body a:visited / a:focus).
   1) kolor linków motywu nadrzędnego = zieleń z palety FPIOR,
   2) w menu stan „odwiedzony” i „kliknięty” nie zmienia koloru – tylko hover i bieżąca strona. */
:root, body { --sol-color-link-button-initial: #55684C; --sol-color-link-button-hover: #344633; --wp--preset--color--link-button-initial: #55684C; }
body .fp-header .fp-nav .fp-nav__list a,
body .fp-header .fp-nav .fp-nav__list a:visited,
body .fp-header .fp-nav .fp-nav__list a:focus,
body .fp-header .fp-nav .fp-nav__list a:active { color: var(--fp-ink); opacity: 1; }
body .fp-header .fp-nav .fp-nav__list li.fp-mega > .sub-menu > li > .sub-menu a,
body .fp-header .fp-nav .fp-nav__list li.fp-mega > .sub-menu > li > .sub-menu a:visited,
body .fp-header .fp-nav .fp-nav__list li.fp-mega > .sub-menu > li > .sub-menu a:focus { color: var(--fp-muted); }
/* hover i bieżąca strona – wygrywają z powyższym */
body .fp-header .fp-nav .fp-nav__list li > a:hover,
body .fp-header .fp-nav .fp-nav__list li > a:focus-visible,
body .fp-header .fp-nav .fp-nav__list > li:hover > a,
body .fp-header .fp-nav .fp-nav__list li.current-menu-item > a,
body .fp-header .fp-nav .fp-nav__list li.current-menu-item > a:visited,
body .fp-header .fp-nav .fp-nav__list li.current-menu-item > a:focus { color: var(--fp-nav-hover); }
/* rodzic bieżącej strony nie jest wyróżniany */
body .fp-header .fp-nav .fp-nav__list li.current-menu-ancestor:not(:hover) > a,
body .fp-header .fp-nav .fp-nav__list li.current-page-ancestor:not(:hover) > a { color: var(--fp-ink); }
/* topbar, stopka i przycisk CTA */
body .fp-topbar a, body .fp-topbar a:visited, body .fp-topbar a:focus { color: inherit; }
body .fp-footer a:visited, body .fp-footer a:focus { color: inherit; }
body .fp-header a.fp-nav__cta:focus { color: #fff; }

/* v3.5 – sekcja książki na stronie głównej */
.elementor .e-con.e-con.fp-sec--book { background: var(--fp-sage-pale); }
.fp-bookband.e-con-full, .fp-bookband > .e-con-inner { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr) !important; gap: 72px !important; align-items: center !important; }
.fp-book--home { margin: 0; text-align: center; }
.fp-book--home img { max-width: 300px; border-radius: 3px 8px 8px 3px; box-shadow: -6px 0 0 #3b4a38 inset, 22px 26px 0 #DCE3CF, 0 18px 40px rgba(41, 45, 41, .18); transform: rotate(-2deg); transition: transform .3s ease; }
.fp-book--home img:hover { transform: rotate(0deg) translateY(-4px); }
@media (max-width: 1024px) { .fp-bookband.e-con-full, .fp-bookband > .e-con-inner { grid-template-columns: minmax(0, 1fr) !important; gap: 40px !important; } .fp-book--home img { max-width: 220px; } }
@media (prefers-reduced-motion: reduce) { .fp-book--home img, .fp-book--home img:hover { transform: none; transition: none; } }

/* v3.6 – logo: znak graficzny + nazwa jako tekst (zamiast pomniejszonego obrazka z napisami) */
.fp-brand { display: inline-flex; align-items: center; text-decoration: none; color: var(--fp-ink); flex: none; }
.fp-brand img.fp-lockup__mark { width: auto; }
.fp-lockup { display: inline-flex; align-items: center; gap: 14px; }
.fp-lockup__mark { display: block; height: 64px; width: auto; flex: none; }
.fp-lockup__text { display: flex; flex-direction: column; line-height: 1.1; padding-left: 14px; border-left: 2px solid #3E8E3E; }
.fp-lockup__kicker { font-family: var(--fp-sans); font-size: 11px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: #356F32; }
.fp-lockup__name { margin: 3px 0 4px; font-family: var(--fp-serif); font-size: 19px; font-weight: 500; letter-spacing: .005em; color: var(--fp-ink); white-space: nowrap; }
.fp-lockup__city { font-family: var(--fp-sans); font-size: 11px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: #9A520B; }
.fp-brand:hover .fp-lockup__name { color: var(--fp-forest); }
.fp-brand:focus-visible { outline: 2px solid var(--fp-forest); outline-offset: 4px; border-radius: 6px; }
/* stopka */
.fp-footer__brand { margin: 0 0 16px; }
.fp-lockup--footer .fp-lockup__mark { height: 76px; }
.fp-lockup--footer .fp-lockup__name { font-size: 20px; white-space: normal; max-width: 220px; }
/* węższe ekrany */
@media (max-width: 1280px) and (min-width: 1181px) { .fp-lockup__name { font-size: 17px; } .fp-lockup__mark { height: 56px; } .fp-lockup { gap: 10px; } .fp-lockup__text { padding-left: 10px; } }
@media (max-width: 1180px) { .fp-lockup__mark { height: 56px; } }
@media (max-width: 480px) {
	.fp-lockup { gap: 10px; }
	.fp-lockup__mark { height: 48px; }
	.fp-lockup__text { padding-left: 10px; }
	.fp-lockup__name { font-size: 15px; white-space: normal; max-width: 175px; }
	.fp-lockup__kicker, .fp-lockup__city { font-size: 10px; letter-spacing: .22em; }
}
/* v3.6.1 – rozmiar znaku i miejsce dla menu */
.fp-brand img.fp-lockup__mark { width: auto; height: 60px; }
.fp-brand .fp-lockup--footer img.fp-lockup__mark, .fp-lockup--footer img.fp-lockup__mark { height: 76px; width: auto; }
body .fp-header .fp-nav__list > li > a { white-space: nowrap; }
@media (max-width: 1366px) and (min-width: 1181px) {
	.fp-brand img.fp-lockup__mark { height: 52px; }
	.fp-lockup { gap: 10px; }
	.fp-lockup__text { padding-left: 10px; }
	.fp-lockup__name { font-size: 16px; }
	.fp-lockup__kicker, .fp-lockup__city { font-size: 10px; letter-spacing: .22em; }
	.fp-nav { gap: 14px; }
	body .fp-header .fp-nav__list > li > a { padding-left: 8px; padding-right: 8px; font-size: 13.5px; }
	body .fp-header .fp-nav__list > li > a::before { left: 8px; right: 8px; }
	body .fp-header .fp-nav__list > li.menu-item-has-children > a::before { right: 20px; }
}
@media (max-width: 1180px) { .fp-brand img.fp-lockup__mark { height: 54px; } }
@media (max-width: 480px) { .fp-brand img.fp-lockup__mark { height: 46px; } }

/* v3.6.2 – mniejsze odstępy między sekcjami */
:root { --fp-sec: 56px; }
@media (max-width: 1024px) { :root { --fp-sec: 44px; } }
@media (max-width: 767px)  { :root { --fp-sec: 32px; } }
.elementor .e-con.e-con.fp-sec--tight { --padding-top: 24px; --padding-bottom: 24px; }
.elementor .e-con.e-con.fp-sec--hero { --padding-top: 20px; --padding-bottom: 32px; }
.elementor .e-con.e-con.fp-sec--book { --padding-top: 64px; --padding-bottom: 64px; }
@media (max-width: 767px) { .elementor .e-con.e-con.fp-sec--book { --padding-top: 40px; --padding-bottom: 40px; } }

/* v3.7 – ikony mediów społecznościowych (menu „Media społecznościowe”) */
ul.fp-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
ul.fp-social li { margin: 0; }
ul.fp-social a { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; border-radius: 8px; }
ul.fp-social .fp-ico { width: 18px; height: 18px; background-color: currentColor; }
/* górny pasek: same ikony */
.fp-social--topbar { margin-left: 10px; padding-left: 14px; border-left: 1px solid var(--fp-line); }
.fp-social--topbar a { width: 32px; height: 32px; justify-content: center; }
.fp-social--topbar a:hover { background: var(--fp-sage-light); color: var(--fp-forest); }
/* stopka: ikona + nazwa serwisu */
ul.fp-social--footer { margin-top: 14px; gap: 6px 8px; }
.fp-social--footer a { padding: 6px 12px 6px 8px; border: 1px solid #C9D0BE; background: var(--fp-paper); font-size: 13px; color: var(--fp-ink); }
.fp-social--footer a:hover { border-color: var(--fp-forest); color: var(--fp-forest); text-decoration: none; }
.fp-social--footer .fp-ico { width: 17px; height: 17px; }
body .fp-footer ul.fp-social a:visited { color: var(--fp-ink); }
body .fp-topbar ul.fp-social a:visited { color: inherit; }
ul.fp-social a:focus-visible { outline: 2px solid var(--fp-forest); outline-offset: 2px; }

/* v3.7.1 – megamenu nie znika przy ruchu myszy po skosie */
@media (min-width: 1181px) {
	/* zamykanie z opóźnieniem (otwieranie natychmiast) */
	.fp-nav__list .sub-menu { pointer-events: auto; transition: opacity .15s ease .2s, transform .15s ease .2s, visibility 0s linear .35s; }
	.fp-nav__list li:hover > .sub-menu, .fp-nav__list li:focus-within > .sub-menu, .fp-nav__list li.is-open > .sub-menu { transition: opacity .15s ease 0s, transform .15s ease 0s, visibility 0s linear 0s; }
	.fp-nav__list > li.fp-mega > .sub-menu > li > .sub-menu { transition: none; }
	/* niewidzialny mostek między pozycją a panelem – tylko gdy menu jest otwarte */
	.fp-nav__list > li.menu-item-has-children:hover::after { content: ""; position: absolute; top: 100%; left: -24px; right: -24px; height: 16px; }
	.fp-nav__list > li.fp-mega:hover::after { left: 50%; right: auto; width: min(860px, 80vw); transform: translateX(-50%); }
	.fp-nav__list > li.fp-mega > .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
}

/* ===== v3.7.2 – strona Wsparcie: skróty do sekcji ===== */
.fp-jump { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 0 auto; }
.fp-jump a { display: inline-flex; align-items: center; padding: 9px 18px; border: 1px solid #D9D3C4; border-radius: 999px; background: #fff; color: #344633; font-weight: 600; font-size: .95rem; text-decoration: none; transition: background .15s, border-color .15s, color .15s; }
.fp-jump a:visited { color: #344633; }
.fp-jump a:hover, .fp-jump a:focus-visible { background: #FBEFE0; border-color: #EF922F; color: #344633; }
#procent, #darowizna, #fanimani, #inne { scroll-margin-top: 110px; }
html { scroll-behavior: smooth; }
@media (max-width: 600px) { .fp-jump a { padding: 8px 14px; font-size: .9rem; } }

/* ===== v3.7.3 – bez kropek (znaczników list) w górnym pasku i stopce ===== */
html body .fp-topbar ul, html body .fp-topbar li,
html body .fp-footer ul, html body .fp-footer li,
html body ul.fp-social, html body ul.fp-social li { list-style: none; }
html body .fp-topbar li::marker, html body .fp-footer li::marker, html body ul.fp-social li::marker { content: ""; }

/* ===== v3.9.2 – opisy numerów telefonu w stopce ===== */
.fp-footer__phone-note { display: block; font-size: 12px; opacity: .75; margin: 0 0 6px; }

/* ===== v3.10 – zwykłe strony (page.php): dokumenty prawne, Complianz ===== */
body .fp-doc { background: var(--fp-cream); }
body .fp-doc__in { max-width: var(--fp-max); margin: 0 auto; padding: 0 var(--fp-gutter); box-sizing: content-box; }
body .fp-doc__hero { padding: 44px 0 36px; border-bottom: 1px solid var(--fp-line); background: linear-gradient(180deg, var(--fp-paper), var(--fp-cream)); }
body .fp-doc__hero .fp-eyebrow { margin: 18px 0 10px; }
body .fp-doc .fp-doc__title { font-family: var(--fp-serif); font-weight: 500; font-size: clamp(32px, 4.2vw, 52px); line-height: 1.12; color: var(--fp-ink); margin: 0 0 14px; letter-spacing: -.01em; }
body .fp-doc__meta { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; color: var(--fp-muted); }
body .fp-doc__meta .fp-ico { width: 16px; height: 16px; background-color: var(--fp-sage); }

body .fp-doc__body { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 56px; padding-top: 48px; padding-bottom: var(--fp-sec); align-items: start; }
body .fp-doc:not(.fp-doc--legal) .fp-doc__body, body .fp-doc__body:not(:has(.fp-doc__aside)) { grid-template-columns: minmax(0, 1fr); }
body .fp-doc__aside { position: sticky; top: 110px; display: grid; gap: 18px; }
body .fp-doc__nav, body .fp-doc__help { background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: var(--fp-r); padding: 18px; }
body .fp-doc__nav-title { margin: 0 0 10px; font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--fp-sage-ink); font-weight: 600; }
body .fp-doc__nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
body .fp-doc__nav li { margin: 0; list-style: none; }
body .fp-doc__nav li::marker { content: ""; }
body .fp-doc__nav a { display: block; padding: 8px 10px; border-radius: 8px; color: var(--fp-ink); text-decoration: none; font-size: 15px; line-height: 1.35; }
body .fp-doc__nav a:visited { color: var(--fp-ink); }
body .fp-doc__nav a:hover { background: var(--fp-sage-light); }
body .fp-doc__nav a[aria-current="page"] { background: var(--fp-sage-light); color: var(--fp-forest); font-weight: 600; box-shadow: inset 3px 0 0 var(--fp-orange); }
body .fp-doc__help p:last-child { margin: 0; font-size: 14px; line-height: 1.6; color: var(--fp-muted); }
body .fp-doc__help a { color: var(--fp-sage-ink); }

/* treść dokumentu */
body .fp-prose { max-width: 780px; font-family: var(--fp-sans); font-size: 17px; line-height: 1.7; color: var(--fp-ink); }
body .fp-doc__body:not(:has(.fp-doc__aside)) .fp-prose { margin: 0 auto; }
body .fp-prose > :first-child { margin-top: 0; }
body .fp-prose h2, body .fp-prose .cmplz-document h2 { font-family: var(--fp-serif); font-weight: 500; font-size: clamp(24px, 2.4vw, 30px); line-height: 1.25; color: var(--fp-ink); margin: 2.2em 0 .6em; padding-top: 1.2em; border-top: 1px solid var(--fp-line); }
body .fp-prose > h2:first-child { border-top: 0; padding-top: 0; }
body .fp-prose h3, body .fp-prose .cmplz-document h3 { font-family: var(--fp-serif); font-weight: 500; font-size: 21px; line-height: 1.3; margin: 1.6em 0 .5em; color: var(--fp-ink); }
body .fp-prose h4 { font-size: 17px; font-weight: 600; margin: 1.4em 0 .4em; }
body .fp-prose p, body .fp-prose li { color: var(--fp-ink); }
body .fp-prose p { margin: 0 0 1em; }
body .fp-prose ul, body .fp-prose ol { margin: 0 0 1.2em; padding-left: 1.3em; }
body .fp-prose ul { list-style: disc; }
body .fp-prose li { margin: .35em 0; }
body .fp-prose li::marker { color: var(--fp-sage); }
body .fp-prose a { color: var(--fp-sage-ink); text-decoration: underline; text-underline-offset: 3px; word-break: break-word; }
body .fp-prose a:visited { color: var(--fp-sage-ink); }
body .fp-prose a:hover { color: var(--fp-forest); }
body .fp-prose strong { font-weight: 600; }
body .fp-prose em:first-child:last-child, body .fp-prose p > i:only-child { color: var(--fp-muted); }
body .fp-prose table { width: 100%; border-collapse: collapse; margin: 1em 0 1.6em; font-size: 15px; background: var(--fp-paper); border: 1px solid var(--fp-line); border-radius: 10px; overflow: hidden; display: block; overflow-x: auto; }
body .fp-prose th, body .fp-prose td { padding: 10px 14px; border-bottom: 1px solid var(--fp-line); text-align: left; vertical-align: top; }
body .fp-prose th { background: var(--fp-sage-light); font-weight: 600; }
body .fp-prose blockquote { margin: 1.4em 0; padding: 14px 20px; border-left: 3px solid var(--fp-orange); background: var(--fp-paper); border-radius: 0 10px 10px 0; }

/* Complianz – dokumenty i rozwijane sekcje */
body .fp-prose .cmplz-document { max-width: none; font-size: inherit; }
body .fp-prose .cmplz-document p, body .fp-prose .cmplz-document li { font-size: inherit; line-height: inherit; }
body .fp-prose .cmplz-document .cmplz-dropdown { border: 1px solid var(--fp-line); border-radius: 10px; background: var(--fp-paper); margin: 0 0 10px; }
body .fp-prose .cmplz-document .cmplz-dropdown summary { padding: 12px 16px; cursor: pointer; }
body .fp-prose .cmplz-document .cmplz-dropdown summary h3 { margin: 0; font-size: 18px; }
body .fp-prose .cmplz-document .cmplz-dropdown > div, body .fp-prose .cmplz-document .cmplz-dropdown .cmplz-service-description { padding: 0 16px 12px; }

@media (max-width: 960px) {
	body .fp-doc__body { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 28px; }
	body .fp-doc__aside { position: static; order: 2; }
	body .fp-doc__hero { padding: 28px 0 24px; }
	body .fp-prose { font-size: 16px; }
}
body .fp-prose .cmplz-document, body .fp-prose .cmplz-document p, body .fp-prose .cmplz-document li, body .fp-prose .cmplz-document td { font-size: 17px !important; line-height: 1.7 !important; color: var(--fp-ink); }
body .fp-prose .cmplz-document h2 { font-size: clamp(24px, 2.4vw, 30px) !important; }
body .fp-prose .cmplz-document h3 { font-size: 21px !important; }
body .fp-prose .fp-todo + h2 { border-top: 0; padding-top: 0; margin-top: 1.4em; }
@media (max-width: 960px) { body .fp-prose .cmplz-document, body .fp-prose .cmplz-document p, body .fp-prose .cmplz-document li { font-size: 16px !important; } }

/* ===== v3.10.4 – „Zapisz się” w nagłówku jako przycisk główny (pomarańczowy, jak w makiecie) ===== */
body .fp-header a.fp-nav__cta, body .fp-header a.fp-nav__cta:visited { background: var(--fp-orange); border-color: var(--fp-orange); color: var(--fp-orange-ink); font-weight: 600; }
body .fp-header a.fp-nav__cta:hover, body .fp-header a.fp-nav__cta:focus-visible, body .fp-header a.fp-nav__cta:focus { background: var(--fp-forest); border-color: var(--fp-forest); color: #fff; }

/* ===== v3.15 – 404, wyszukiwarka ===== */
body .fp-doc__lead { max-width: 680px; margin: 0; font-size: 18px; line-height: 1.6; color: var(--fp-muted); }
body .fp-doc__body--single { grid-template-columns: minmax(0, 1fr) !important; }
body .fp-doc__body--single .fp-prose { margin: 0 auto; }
body .fp-search { display: flex; gap: 10px; margin: 0 0 28px; flex-wrap: wrap; }
body .fp-search input[type=search] { flex: 1 1 260px; min-height: 52px; padding: 12px 16px; border: 1px solid var(--fp-control); border-radius: 10px; background: var(--fp-white); font: inherit; color: var(--fp-ink); }
body .fp-search input[type=search]:focus { outline: 2px solid var(--fp-forest); outline-offset: 1px; }
body .fp-search .fp-button::after { display: none; }
body .fp-prose ul.fp-quicklinks { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 0 0 28px; }
body .fp-prose ul.fp-quicklinks li { margin: 0; }
body .fp-prose ul.fp-quicklinks li::marker { content: ""; }
body .fp-prose ul.fp-quicklinks a { display: block; padding: 14px 16px; border: 1px solid var(--fp-line); border-radius: 10px; background: var(--fp-paper); text-decoration: none; color: var(--fp-ink); font-weight: 500; }
body .fp-prose ul.fp-quicklinks a:hover { border-color: var(--fp-forest); background: var(--fp-sage-light); }
body .fp-prose ul.fp-results-list { list-style: none; padding: 0; margin: 0; }
body .fp-prose ul.fp-results-list li { margin: 0; padding: 18px 0; border-top: 1px solid var(--fp-line); }
body .fp-prose ul.fp-results-list li::marker { content: ""; }
body .fp-prose .fp-results-list h2 { border: 0; padding: 0; margin: 4px 0 6px; font-size: 22px; }
body .fp-prose .fp-results-list h2 a { text-decoration: none; color: var(--fp-ink); }
body .fp-prose .fp-results-list h2 a:hover { color: var(--fp-forest); text-decoration: underline; }
body .fp-results-list__type { margin: 0; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--fp-sage-ink); }
body .fp-prose .fp-results-list p { margin: 0; }
body .fp-prose .nav-links { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px; }
body .fp-prose .nav-links a, body .fp-prose .nav-links span { padding: 8px 12px; border: 1px solid var(--fp-line); border-radius: 8px; text-decoration: none; }

/* ===== v3.17.1 – telefon: pusta przestrzeń pod listą terminów =====
   .fp-events ma container-type: inline-size (karty dopasowują się do szerokości kolumny). W kontenerze Elementora
   (flex, wrap) przeglądarka liczyła wysokość listy przy szerokości 0 – stąd ~10 000 px pustego miejsca na telefonie. */
.fp-events { contain-intrinsic-inline-size: 300px; }

/* ===== v3.17.2 – Wydarzenia: „Pokaż więcej” na telefonie ===== */
.fp-events > .fp-event[hidden] { display: none !important; }
.fp-more-wrap { margin: 20px 0 0; text-align: center; }
.fp-more-wrap .fp-more { width: 100%; justify-content: center; }
.fp-more-wrap .fp-more::after { display: none; }
@media (min-width: 768px) { .fp-more-wrap { display: none; } }
