/*
Theme Name: Ruch – motyw stowarzyszenia
Description: Lekki motyw blokowy dla stowarzyszenia promującego ruch i zdrowie. Kolory i fonty w theme.json, komponenty sekcji poniżej.
Version: 1.1.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: ruch
License: GPL-2.0-or-later
*/

/* ===== Podstawy ===== */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; }
::selection { background: var(--wp--preset--color--lime); color: var(--wp--preset--color--ink); }
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--lime);
	outline-offset: 2px;
	border-radius: 6px;
}
.wp-site-blocks { overflow-x: clip; }
main.wp-block-group { margin-top: 0; }

/* Pełnoszerokie sekcje stykają się ze sobą (bez odstępu blockGap) */
.wp-block-post-content > .alignfull { margin-top: 0 !important; margin-bottom: 0 !important; }

/* ===== Nagłówek ===== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent);
	backdrop-filter: saturate(160%) blur(10px);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-title-mark { position: relative; }
.site-title-mark a { display: inline-flex; align-items: center; gap: .6rem; }
.site-title-mark a::before {
	content: "";
	width: 32px; height: 32px; flex: none;
	border-radius: 10px;
	background: var(--wp--preset--color--primary);
}
.site-title-mark a::after {
	content: "";
	position: absolute; left: 7px; top: 50%;
	width: 18px; height: 18px; margin-top: -9px;
	background: var(--wp--preset--color--lime);
	-webkit-mask: var(--icon-activity) center / contain no-repeat;
	mask: var(--icon-activity) center / contain no-repeat;
	pointer-events: none;
}
.site-header .wp-block-navigation a:hover { color: var(--wp--preset--color--primary); }
.site-header .wp-block-button__link { padding: .65em 1.25em; font-size: .95rem; }
@media (max-width: 781px) {
	.site-header .header-cta { display: none; }
}

/* ===== Etykieta nad nagłówkiem ===== */
.eyebrow {
	display: inline-block;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	margin-bottom: .25rem;
}
.is-dark .eyebrow, .hero .eyebrow { color: var(--wp--preset--color--lime); }

/* ===== Hero ===== */
.hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.hero::before,
.hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	pointer-events: none;
}
.hero::before {
	width: min(620px, 80vw); aspect-ratio: 1;
	right: -12%; top: -30%;
	background: radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--wp--preset--color--lime) 55%, transparent), transparent 65%);
	opacity: .55;
}
.hero::after {
	width: min(420px, 60vw); aspect-ratio: 1;
	left: -10%; bottom: -35%;
	background: radial-gradient(circle, color-mix(in srgb, var(--wp--preset--color--primary) 70%, transparent), transparent 70%);
	opacity: .6;
}
.hero .hero-lead { font-size: var(--wp--preset--font-size--large); max-width: 40rem; opacity: .92; margin-left: 0 !important; }
.hero .hero-note { font-size: var(--wp--preset--font-size--small); opacity: .75; }
.hero .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--base);
	border-color: color-mix(in srgb, var(--wp--preset--color--base) 45%, transparent);
	background: transparent;
}
.hero .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--wp--preset--color--lime); color: var(--wp--preset--color--lime); }
.hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--wp--preset--color--lime); color: var(--wp--preset--color--ink); }
.hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #d8f78f; }
.hero--compact h1 { font-size: var(--wp--preset--font-size--xx-large); }

/* Ciemne sekcje */
.is-dark { color: var(--wp--preset--color--base); }
.is-dark a:not(.wp-block-button__link) { color: var(--wp--preset--color--lime); }

/* ===== Przyciski ===== */
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
	color: var(--wp--preset--color--primary);
}
.wp-block-button .wp-block-button__link { transition: background-color .15s, color .15s, transform .15s; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
.btn-arrow .wp-block-button__link::after {
	content: "";
	display: inline-block;
	width: 1em; height: 1em;
	margin-left: .45em;
	vertical-align: -.15em;
	background: currentColor;
	-webkit-mask: var(--icon-arrow) center / contain no-repeat;
	mask: var(--icon-arrow) center / contain no-repeat;
}

/* ===== Karty ===== */
.card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius);
	padding: clamp(1.4rem, 3vw, 2.2rem);
	height: 100%;
	box-sizing: border-box;
}
.card > :first-child { margin-top: 0; }
.card--mint { background: var(--wp--preset--color--mint); border-color: transparent; }
.card--dark { background: var(--wp--preset--color--forest); border-color: transparent; color: var(--wp--preset--color--base); }
.card--dark a { color: var(--wp--preset--color--lime); }
.card--big { padding: clamp(1.8rem, 4vw, 3rem); }
.card p { color: var(--wp--preset--color--muted); }
.card--dark p { color: color-mix(in srgb, var(--wp--preset--color--base) 82%, transparent); }
.wp-block-column > .card { height: 100%; }
.card--dark .wp-block-button__link { background: var(--wp--preset--color--lime); color: var(--wp--preset--color--ink); }
.card--dark .wp-block-button__link:hover { background: #d8f78f; color: var(--wp--preset--color--ink); }

/* ===== Ikony nad nagłówkami (klasa "ico ico-nazwa") ===== */
.ico { position: relative; padding-top: 72px; }
.ico::before {
	content: "";
	position: absolute; top: 0; left: 0;
	width: 52px; height: 52px;
	border-radius: 14px;
	background: var(--wp--preset--color--mint);
}
.ico::after {
	content: "";
	position: absolute; top: 13px; left: 13px;
	width: 26px; height: 26px;
	background: var(--wp--preset--color--primary);
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-position: center; mask-position: center;
	-webkit-mask-size: contain; mask-size: contain;
}
.card--mint .ico::before { background: var(--wp--preset--color--base); }
.card--dark .ico::before, .is-dark .ico::before { background: color-mix(in srgb, var(--wp--preset--color--base) 12%, transparent); }
.card--dark .ico::after, .is-dark .ico::after { background: var(--wp--preset--color--lime); }

/* ===== Liczby / statystyki ===== */
.stat { border-top: 3px solid var(--wp--preset--color--lime); padding-top: 1.1rem; }
.stat-num {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	line-height: 1;
	letter-spacing: -0.03em;
	margin: 0 0 .5rem;
	color: var(--wp--preset--color--primary);
}
.is-dark .stat-num { color: var(--wp--preset--color--lime); }
.stat p:not(.stat-num) { margin-top: 0; }
.source-note { font-size: var(--wp--preset--font-size--small); opacity: .7; }

/* ===== Kroki ===== */
.steps { counter-reset: step; }
.steps > .wp-block-column { counter-increment: step; position: relative; }
.steps > .wp-block-column::before {
	content: counter(step, decimal-leading-zero);
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	font-size: 1rem;
	color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--lime);
	width: 44px; height: 44px; line-height: 44px;
	text-align: center;
	border-radius: 50%;
	margin-bottom: 1rem;
}
.steps h3 { font-size: var(--wp--preset--font-size--large); margin-top: 0; }
.steps p { color: var(--wp--preset--color--muted); margin-top: .4rem; }

/* ===== Listy z ptaszkiem ===== */
ul.check-list { list-style: none; padding-left: 0; }
ul.check-list li { position: relative; padding-left: 2rem; margin-bottom: .6rem; }
ul.check-list li::before {
	content: "";
	position: absolute; left: 0; top: .2em;
	width: 1.35rem; height: 1.35rem;
	border-radius: 50%;
	background: var(--wp--preset--color--lime);
}
ul.check-list li::after {
	content: "";
	position: absolute; left: .3rem; top: calc(.2em + .3rem);
	width: .75rem; height: .75rem;
	background: var(--wp--preset--color--ink);
	-webkit-mask: var(--icon-check) center / contain no-repeat;
	mask: var(--icon-check) center / contain no-repeat;
}

/* ===== Chipy (dla kogo) ===== */
.chips { gap: .75rem !important; }
.chips > p {
	margin: 0 !important;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	padding: .6rem 1.1rem;
	font-weight: 500;
}
.chips > p strong { color: var(--wp--preset--color--primary); }

/* ===== FAQ (details) ===== */
.wp-block-details summary {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--large);
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 2.5rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	position: absolute; right: 0; top: 50%;
	transform: translateY(-50%);
	width: 1.8rem; height: 1.8rem; line-height: 1.75rem;
	text-align: center;
	border-radius: 50%;
	background: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--body);
	font-weight: 600;
	transition: transform .2s;
}
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details > :not(summary) { color: var(--wp--preset--color--muted); }
.faq-group-title { margin-top: var(--wp--preset--spacing--60) !important; }

/* ===== Pasek CTA ===== */
.cta-band { border-radius: calc(var(--wp--custom--radius) * 1.5); position: relative; overflow: hidden; isolation: isolate; }
.cta-band::after {
	content: "";
	position: absolute; z-index: -1;
	width: 380px; aspect-ratio: 1; right: -120px; top: -160px;
	border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--wp--preset--color--lime) 60%, transparent), transparent 70%);
	opacity: .5;
}
.cta-band .wp-block-button__link { background: var(--wp--preset--color--lime); color: var(--wp--preset--color--ink); }
.cta-band .wp-block-button__link:hover { background: #d8f78f; color: var(--wp--preset--color--ink); }

/* ===== Oś etapów (O nas) ===== */
ul.timeline { list-style: none; padding-left: 0; border-left: 2px solid var(--wp--preset--color--line); margin-left: .5rem; }
ul.timeline li { position: relative; padding: 0 0 1.1rem 1.6rem; }
ul.timeline li::before {
	content: ""; position: absolute; left: -9px; top: .35em;
	width: 16px; height: 16px; border-radius: 50%;
	background: var(--wp--preset--color--base);
	border: 2px solid var(--wp--preset--color--line);
}
ul.timeline li.done::before { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); }
ul.timeline li.now::before { background: var(--wp--preset--color--lime); border-color: var(--wp--preset--color--primary); }

/* ===== Blog ===== */
.post-grid .wp-block-post {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius);
	padding: 1.5rem;
	display: flex; flex-direction: column; gap: .6rem;
	transition: border-color .15s, transform .15s;
}
.post-grid .wp-block-post:hover { border-color: var(--wp--preset--color--primary); transform: translateY(-2px); }
.post-grid .wp-block-post-title { font-size: var(--wp--preset--font-size--large); margin: 0; }
.post-grid .wp-block-post-excerpt { color: var(--wp--preset--color--muted); font-size: .95rem; }
.post-grid .wp-block-post-date { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.empty-posts { color: var(--wp--preset--color--muted); }

/* Wpis – treść */
.entry-content h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.5rem; }
.entry-content h3 { font-size: var(--wp--preset--font-size--large); margin-top: 2rem; }
.post-meta { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.post-meta a { color: inherit; }

/* ===== Stopka ===== */
.site-footer { font-size: .95rem; }
.site-footer a { color: color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent); text-decoration: none; }
.site-footer a:hover { color: var(--wp--preset--color--lime); }
.site-footer p { color: color-mix(in srgb, var(--wp--preset--color--base) 80%, transparent); }
.site-footer h4 { font-size: 1rem; letter-spacing: 0; margin-bottom: .75rem; color: var(--wp--preset--color--lime); }
.site-footer .footer-links { list-style: none; padding: 0; margin: 0; }
.site-footer .footer-links li { margin-bottom: .45rem; }
.site-footer .legal { font-size: .8rem; opacity: .65; }
.site-footer .wp-block-site-title a { color: var(--wp--preset--color--base); }

/* ===== Formularz listy założycielskiej ===== */
.lz-form { display: grid; gap: 1.1rem; }
.lz-form .lz-row { display: grid; gap: 1.1rem; grid-template-columns: 1fr 1fr; align-items: end; }
@media (max-width: 640px) { .lz-form .lz-row { grid-template-columns: 1fr; } }
.lz-form label.lz-label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: .35rem; }
.lz-form .lz-req { color: var(--wp--preset--color--primary); }
.lz-form .lz-hint { font-weight: 400; color: var(--wp--preset--color--muted); font-size: .85rem; }
.lz-form input[type="text"],
.lz-form input[type="email"],
.lz-form input[type="tel"],
.lz-form select,
.lz-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	padding: .8rem 1rem;
	border: 1.5px solid var(--wp--preset--color--line);
	border-radius: 12px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	transition: border-color .15s;
}
.lz-form input:focus, .lz-form select:focus, .lz-form textarea:focus { border-color: var(--wp--preset--color--primary); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--primary) 18%, transparent); }
.lz-form fieldset { border: 0; padding: 0; margin: 0; }
.lz-form legend { font-weight: 600; font-size: .95rem; margin-bottom: .5rem; padding: 0; }
.lz-form .lz-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.lz-form .lz-option { position: relative; }
.lz-form .lz-option input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.lz-form .lz-option span {
	display: inline-block;
	padding: .55rem 1rem;
	border: 1.5px solid var(--wp--preset--color--line);
	border-radius: 999px;
	font-size: .92rem;
	cursor: pointer;
	transition: all .15s;
	background: var(--wp--preset--color--base);
}
.lz-form .lz-option input:checked + span { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.lz-form .lz-option input:focus-visible + span { outline: 3px solid var(--wp--preset--color--lime); outline-offset: 2px; }
.lz-form .lz-consent { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; font-size: .88rem; color: var(--wp--preset--color--muted); }
.lz-form .lz-consent input { width: 1.15rem; height: 1.15rem; margin-top: .15rem; accent-color: var(--wp--preset--color--primary); }
.lz-form .lz-consent strong { color: var(--wp--preset--color--ink); }
.lz-form .lz-admin-note { font-size: .8rem; color: var(--wp--preset--color--muted); }
.lz-form button {
	justify-self: start;
	font: inherit; font-weight: 600;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border: 0; border-radius: 999px;
	padding: .95em 1.8em;
	cursor: pointer;
	transition: background-color .15s, transform .15s;
}
.lz-form button:hover { background: var(--wp--preset--color--primary-dark); transform: translateY(-1px); }
.lz-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.lz-msg { border-radius: 14px; padding: 1.1rem 1.3rem; margin-bottom: 1.5rem; }
.lz-msg--ok { background: var(--wp--preset--color--mint); border: 1.5px solid var(--wp--preset--color--primary); }
.lz-msg--err { background: #fff1f0; border: 1.5px solid #d9534f; }
.lz-msg strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 1.15rem; margin-bottom: .2rem; }

/* ===== Drobiazgi ===== */
.small-print { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.is-dark .small-print { color: color-mix(in srgb, var(--wp--preset--color--base) 70%, transparent); }
.lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--muted); }
.is-dark .lead { color: color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent); }
.section-head > * { max-width: 46rem; }
.section-head.is-centered { text-align: center; }
.section-head.is-centered > * { margin-left: auto !important; margin-right: auto !important; }
