/* ==========================================================================
   AS — Fundacja Andrzeja Suprona
   Uzupełnienie theme.json: elementy, których nie da się opisać presetami.
   ========================================================================== */

:root {
	--as-ink: var(--wp--preset--color--ink);
	--as-paper: var(--wp--preset--color--paper);
	--as-red: var(--wp--preset--color--red);
	--as-orange: var(--wp--preset--color--orange);
	--as-line: var(--wp--preset--color--line);
	--as-ease: cubic-bezier(.2, .7, .2, 1);
	--as-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1.5l3.1 7.1 7.7.7-5.8 5.1 1.7 7.6L12 18l-6.7 4 1.7-7.6L1.2 9.3l7.7-.7z'/%3E%3C/svg%3E");
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3,
.wp-block-post-title {
	font-stretch: 108%;
	text-wrap: balance;
}

p { text-wrap: pretty; }

::selection { background: var(--as-red); color: #fff; }

:where(.wp-site-blocks) > * { margin-block-start: 0; }

.screen-reader-text:focus {
	clip: auto; clip-path: none; height: auto; width: auto;
	position: fixed; top: .5rem; left: .5rem; z-index: 100000;
	background: #fff; color: var(--as-ink); padding: .75rem 1rem;
}

/* --- Typografia display ------------------------------------------------- */

.as-display {
	font-stretch: 125%;
	font-weight: 900;
	text-transform: uppercase;
	line-height: .88;
	letter-spacing: -.02em;
}

.as-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .6em;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-stretch: 112%;
}
.as-eyebrow::before {
	content: "";
	width: .9em; height: .9em;
	background: var(--as-red);
	-webkit-mask: var(--as-star) center / contain no-repeat;
	mask: var(--as-star) center / contain no-repeat;
}
.has-ink-background-color .as-eyebrow::before,
.as-hero .as-eyebrow::before { background: var(--as-orange); }

.as-accent { color: var(--as-red); }
.has-ink-background-color .as-accent { color: var(--as-orange); }

/* --- Nagłówek ----------------------------------------------------------- */

.as-header {
	position: sticky;
	top: 0;
	z-index: 50;
	transition: box-shadow .3s var(--as-ease);
}
.admin-bar .as-header { top: var(--wp-admin--admin-bar--height, 32px); }

.as-brand {
	display: flex;
	align-items: center;
	gap: .8rem;
	color: inherit;
	text-decoration: none;
}
.as-brand:hover { color: inherit; }
.as-brand .as-mark {
	width: 3.1rem;
	height: auto;
	flex: none;
	transition: transform .4s var(--as-ease);
}
.as-brand:hover .as-mark { transform: rotate(-6deg) scale(1.05); }
.as-brand__name {
	display: flex;
	flex-direction: column;
	font-size: .8rem;
	line-height: 1.05;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-stretch: 112%;
}
.as-brand__name strong { font-size: 1.05rem; font-weight: 900; letter-spacing: .02em; }

.as-header .wp-block-navigation-item__content { position: relative; padding-block: .35rem; }
.as-header .wp-block-navigation-item:not(.wp-block-navigation-submenu) > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 3px;
	background: var(--as-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s var(--as-ease);
}
.as-header .wp-block-navigation-item__content:hover::after,
.as-header .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.as-header .wp-block-navigation-item__content:hover { color: var(--as-red); }

.as-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--as-ink) !important;
	color: #fff !important;
	padding: 2rem;
}
.as-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	font-size: 1.75rem;
	font-stretch: 120%;
	font-weight: 900;
	gap: 1rem;
}

/* --- Hero --------------------------------------------------------------- */

.as-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.as-hero::before {
	/* Wielkie gwiazdy z logotypu w tle. */
	content: "";
	position: absolute;
	right: -8vw;
	top: -10vw;
	width: 46vw;
	aspect-ratio: 1;
	background: rgba(255, 255, 255, .035);
	-webkit-mask: var(--as-star) center / contain no-repeat;
	mask: var(--as-star) center / contain no-repeat;
	z-index: -1;
}
.as-hero h1 { margin: 0; }
.as-hero h1 .as-accent { display: inline-block; }

.as-hero__media { position: relative; margin: 0; }
.as-hero__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	clip-path: polygon(12% 0, 100% 0, 88% 100%, 0 100%);
}
.as-hero__media::after {
	content: "";
	position: absolute;
	inset: 8% -4% -4% 10%;
	background: var(--as-red);
	clip-path: polygon(12% 0, 100% 0, 88% 100%, 0 100%);
	z-index: -1;
}

.as-badge {
	position: absolute;
	left: -2.5rem;
	bottom: 2rem;
	width: 9.5rem;
	height: 9.5rem;
	border-radius: 50%;
	background: var(--as-orange);
	color: var(--as-ink);
	display: grid;
	place-items: center;
	z-index: 2;
}
.as-badge svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: as-spin 18s linear infinite; }
.as-badge text { font: 800 10.5px/1 Archivo, sans-serif; letter-spacing: .2em; text-transform: uppercase; font-stretch: 112%; }
.as-badge .as-mark { width: 3.2rem; position: relative; }

@keyframes as-spin { to { transform: rotate(360deg); } }

.as-scroll-cue { font-weight: 700; }

/* --- Pasek (ticker) ----------------------------------------------------- */

.as-ticker {
	overflow: hidden;
	background: var(--as-red);
	color: #fff;
	transform: rotate(-1.5deg);
	margin-block: -1.25rem !important;
	position: relative;
	z-index: 3;
	border-block: 3px solid var(--as-ink);
}
.as-ticker__track {
	display: flex;
	width: max-content;
	animation: as-marquee 40s linear infinite;
}
.as-ticker__track span {
	display: flex;
	align-items: center;
	gap: 1.75rem;
	padding: 1rem 1.75rem 1rem 0;
	font-weight: 900;
	font-stretch: 125%;
	text-transform: uppercase;
	font-size: clamp(1rem, 2.2vw, 1.6rem);
	white-space: nowrap;
}
.as-ticker__track span::after {
	content: "";
	width: 1em; height: 1em;
	background: var(--as-orange);
	-webkit-mask: var(--as-star) center / contain no-repeat;
	mask: var(--as-star) center / contain no-repeat;
}
@keyframes as-marquee { to { transform: translateX(-50%); } }

/* --- Liczby ------------------------------------------------------------- */

.as-stats { counter-reset: stat; }
.as-stat {
	border-top: 3px solid var(--as-ink);
	padding-top: 1rem;
}
.as-stat__num {
	font-size: clamp(3.25rem, 7vw, 6rem);
	font-weight: 900;
	font-stretch: 125%;
	line-height: .9;
	letter-spacing: -.03em;
	margin: 0;
}
.as-stat__num em { font-style: normal; color: var(--as-red); }
.as-stat__label { font-weight: 600; margin-top: .5rem; max-width: 22ch; }

/* --- Karty wpisów ------------------------------------------------------- */

.as-card {
	position: relative;
	height: 100%;
	gap: .65rem !important;
}
.as-card .wp-block-post-featured-image {
	overflow: hidden;
	margin: 0 0 .5rem;
	background: var(--as-ink);
	width: 100%;
}
.as-card .wp-block-post-featured-image img {
	transition: transform .6s var(--as-ease), opacity .3s;
}
.as-card:hover .wp-block-post-featured-image img { transform: scale(1.06); opacity: .9; }
.as-card .wp-block-post-title { margin: 0; }
.as-card .wp-block-post-title a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size .35s var(--as-ease); }
.as-card:hover .wp-block-post-title a { background-size: 100% 2px; }
.as-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.as-card .wp-block-post-terms { position: relative; z-index: 2; }

.as-card--no-image .wp-block-post-featured-image { display: none; }

/* Brak zdjęcia wyróżniającego — placeholder z gwiazdą. */
.as-card:not(:has(.wp-block-post-featured-image img))::before {
	content: "";
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--as-ink) var(--as-star) center / 18% no-repeat;
	margin-bottom: .5rem;
}

/* Chipy kategorii */
.as-chips,
.wp-block-post-terms.as-chips {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin: 0;
}
.as-chips a {
	display: inline-block;
	padding: .35em .7em;
	background: var(--as-red);
	color: #fff;
	text-decoration: none;
}
.as-chips a:hover { background: var(--as-ink); color: #fff; }
.as-chips .wp-block-post-terms__separator { display: none; }

/* Filtr kategorii na liście aktualności */
.as-filter.wp-block-categories {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}
.as-filter li a {
	display: inline-block;
	padding: .55em 1em;
	border: 2px solid var(--as-ink);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background .2s, color .2s;
}
.as-filter li a:hover,
.as-filter li.current-cat a { background: var(--as-ink); color: #fff; }

/* --- Programy ----------------------------------------------------------- */

.as-program {
	position: relative;
	overflow: hidden;
	min-height: 26rem;
	display: flex !important;
	flex-direction: column;
	justify-content: flex-end;
	color: #fff;
	background: var(--as-ink);
	isolation: isolate;
}
.as-program .wp-block-post-featured-image {
	position: absolute !important;
	inset: 0;
	margin: 0;
	z-index: -2;
}
.as-program .wp-block-post-featured-image img {
	width: 100%; height: 100% !important;
	object-fit: cover;
	
	transition: transform .8s var(--as-ease), filter .4s;
}
.as-program::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(35,47,97,0) 25%, rgba(26,35,73,.94) 85%);
	z-index: -1;
}
.as-program::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 100%; height: 6px;
	background: var(--as-red);
	transform: scaleX(.18);
	transform-origin: left;
	transition: transform .5s var(--as-ease);
}
.as-program:hover::after { transform: scaleX(1); }
.as-program:hover .wp-block-post-featured-image img { transform: scale(1.06); filter: none; }
.as-program .wp-block-post-title {
	font-stretch: 120%;
	text-transform: uppercase;
	font-weight: 900;
	margin: 0;
}
.as-program .wp-block-post-title a { color: #fff; text-decoration: none; }
.as-program .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.as-program .wp-block-post-excerpt { color: rgba(255,255,255,.82); margin: .5rem 0 0; }
.as-program .wp-block-post-excerpt__more-text { display: none; }

.as-programs .wp-block-post-template { gap: 1rem; }
@media (min-width: 900px) {
	/* Pierwszy program — duża karta. */
	.as-programs .wp-block-post-template.is-layout-grid > li:first-child { grid-column: span 2; grid-row: span 2; }
	.as-programs .wp-block-post-template.is-layout-grid > li:first-child .as-program { min-height: 100%; }
	.as-programs .wp-block-post-template.is-layout-grid > li:first-child .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large) !important; }
}

/* --- Andrzej Supron ----------------------------------------------------- */

.as-supron__photo { position: relative; margin: 0; }
.as-supron__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top;  }
.as-supron__photo::before {
	content: "";
	position: absolute;
	inset: -1.25rem 1.25rem 1.25rem -1.25rem;
	border: 3px solid var(--as-red);
	z-index: -1;
}
.as-supron { isolation: isolate; }
.as-medals { list-style: none; padding: 0; margin: 0; display: grid; gap: .25rem; }
.as-medals li {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	padding: .9rem 0;
	border-bottom: 1px solid rgba(255,255,255,.15);
	font-weight: 600;
}
.as-medals strong {
	font-stretch: 125%;
	font-weight: 900;
	font-size: 1.5rem;
	color: var(--as-orange);
	min-width: 4.5ch;
}

/* --- Partnerzy ---------------------------------------------------------- */

.as-partners {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 2px solid var(--as-ink);
	border-left: 2px solid var(--as-ink);
}
.as-partners > * {
	margin: 0 !important;
	padding: 2rem 1.5rem;
	border-right: 2px solid var(--as-ink);
	border-bottom: 2px solid var(--as-ink);
	font-weight: 900;
	font-stretch: 118%;
	text-transform: uppercase;
	line-height: 1.1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 9rem;
	transition: background .25s, color .25s;
}
.as-partners > *:hover { background: var(--as-ink); color: #fff; }
.as-partners small { display: block; font-weight: 600; font-stretch: 100%; text-transform: none; font-size: .8rem; color: var(--wp--preset--color--stone); margin-top: .75rem; }
.as-partners > *:hover small { color: rgba(255,255,255,.7); }

/* --- CTA ---------------------------------------------------------------- */

.as-cta { position: relative; overflow: hidden; isolation: isolate; }
.as-cta::after {
	content: "";
	position: absolute;
	right: -4rem; bottom: -6rem;
	width: 26rem; aspect-ratio: 1;
	background: rgba(0,0,0,.12);
	-webkit-mask: var(--as-star) center / contain no-repeat;
	mask: var(--as-star) center / contain no-repeat;
	z-index: -1;
	transform: rotate(14deg);
}
.as-cta .wp-block-button__link { background: var(--as-ink); }
.as-cta .wp-block-button__link:hover { background: #fff; color: var(--as-ink); }
.as-cta a:not(.wp-block-button__link) { color: #fff; }

/* Przyciski: wariant obrysowany */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 2px solid currentColor;
	color: inherit;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--as-ink); border-color: #fff; }
.wp-block-button__link { transition: background .2s, color .2s, transform .2s var(--as-ease); }
.wp-block-button__link:active { transform: translateY(1px); }

/* Strzałka w linkach-akcjach */
.as-arrow a, a.as-arrow {
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
}
.as-arrow a::after, a.as-arrow::after { content: " →"; display: inline-block; transition: transform .25s var(--as-ease); }
.as-arrow a:hover::after, a.as-arrow:hover::after { transform: translateX(.3em); }

/* --- Nagłówek podstron -------------------------------------------------- */

.as-page-hero { position: relative; overflow: hidden; isolation: isolate; }
.as-page-hero::after {
	content: "";
	position: absolute;
	right: clamp(-6rem, -4vw, -2rem);
	bottom: -30%;
	width: clamp(12rem, 30vw, 26rem);
	aspect-ratio: 1;
	background: rgba(255,255,255,.04);
	-webkit-mask: var(--as-star) center / contain no-repeat;
	mask: var(--as-star) center / contain no-repeat;
	z-index: -1;
}
.as-page-hero h1 { margin: 0; font-stretch: 125%; text-transform: uppercase; font-weight: 900; line-height: .95; }
.as-page-hero .wp-block-post-excerpt { color: rgba(255,255,255,.8); font-size: var(--wp--preset--font-size--large); }
.as-page-hero .wp-block-post-excerpt__excerpt { max-width: 46ch; }
.as-page-hero .wp-block-post-excerpt__more-text { display: none; }
.as-page-hero .as-chips a { background: var(--as-orange); color: var(--as-ink); }



/* Wpis: zdjęcie wyróżniające zachodzi na nagłówek */
.as-single-figure { margin-top: calc(-1 * var(--wp--preset--spacing--60)) !important; position: relative; z-index: 2; }
.as-single-figure img { width: 100%; max-height: 78vh; object-fit: cover; }

/* --- Treść wpisów i stron ---------------------------------------------- */

.entry-content > * + * { margin-block-start: 1.25em; }
.entry-content > h2, .entry-content > h3 { margin-block-start: 2em; }
.entry-content > h2 { font-stretch: 115%; }
.entry-content a:not(.wp-block-button__link) { text-decoration-thickness: 2px; text-underline-offset: .2em; text-decoration-color: var(--as-red); }
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image img { transition: transform .5s var(--as-ease); }
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image:hover img { transform: scale(1.04); }
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image { overflow: hidden; }
.entry-content video { width: 100%; background: #000; }

.entry-content ol.as-goals,
ol.as-goals {
	list-style: none;
	counter-reset: goal;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
	gap: 1px;
	background: var(--as-line);
	border: 1px solid var(--as-line);
}
ol.as-goals li {
	counter-increment: goal;
	background: var(--as-paper);
	padding: 1.5rem 1.25rem;
	margin: 0;
}
ol.as-goals li::before {
	content: counter(goal, decimal-leading-zero);
	display: block;
	font-weight: 900;
	font-stretch: 125%;
	font-size: 1.75rem;
	color: var(--as-red);
	line-height: 1;
	margin-bottom: .6rem;
}

/* Link do zewnętrznego wideo/wpisu (zamiast osadzeń śledzących) */
.as-external-link {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	padding: 1rem 1.4rem;
	background: var(--as-ink);
	color: #fff !important;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none !important;
}
.as-external-link::before {
	content: "";
	width: 0; height: 0;
	border-left: .7em solid var(--as-red);
	border-block: .45em solid transparent;
}
.as-external-link:hover { background: var(--as-red); }
.as-external-link:hover::before { border-left-color: #fff; }

/* YouTube — odtwarzacz po kliknięciu */
.as-video-facade { aspect-ratio: 16 / 9; background: var(--as-ink); position: relative; }
.as-video-facade iframe { width: 100%; height: 100%; border: 0; }
.as-video-facade__btn {
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	position: absolute; inset: 0;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: .75rem;
	color: #fff;
	text-align: center;
	padding: 1rem;
}
.as-video-facade__play {
	width: 5rem; height: 5rem;
	border-radius: 50%;
	background: var(--as-red);
	display: grid; place-items: center;
	transition: transform .25s var(--as-ease);
}
.as-video-facade__play::after { content: ""; border-left: 1.4rem solid #fff; border-block: .85rem solid transparent; margin-left: .3rem; }
.as-video-facade__btn:hover .as-video-facade__play,
.as-video-facade__btn:focus-visible .as-video-facade__play { transform: scale(1.1); }
.as-video-facade__label { font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.as-video-facade__note { font-size: .8rem; opacity: .7; }

/* Dokumenty (blok Plik) */
.wp-block-file {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1.1rem 1.25rem;
	background: #fff;
	border-left: 4px solid var(--as-red);
	font-weight: 700;
}
.wp-block-file .wp-block-file__button { border-radius: 0; background: var(--as-ink); font-weight: 800; text-transform: uppercase; font-size: .75rem; letter-spacing: .08em; padding: .7em 1.1em; }

/* Kontakt */
.as-contact-card { border-top: 3px solid var(--as-ink); padding-top: 1.25rem; }
.as-contact-card p { margin: 0; }
.as-big-link a { font-size: clamp(1.4rem, 3.4vw, 2.6rem); font-weight: 900; font-stretch: 115%; text-decoration: none; word-break: break-word; }
.as-big-link a:hover { color: var(--as-red); }

/* Paginacja */
.wp-block-query-pagination { font-weight: 800; gap: .5rem; }
.wp-block-query-pagination-numbers .page-numbers {
	display: inline-grid; place-items: center;
	min-width: 2.75rem; height: 2.75rem;
	border: 2px solid var(--as-ink);
	text-decoration: none;
}
.wp-block-query-pagination-numbers .page-numbers.current { background: var(--as-ink); color: #fff; }

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

.as-footer a { color: inherit; text-decoration: none; }
.as-footer a:hover { color: var(--as-orange); }
.as-footer .as-mark { width: 4.5rem; height: auto; }
.as-footer h2 {
	font-size: .75rem !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--as-orange);
	font-stretch: 112%;
}
.as-footer ul:not(.wp-block-social-links) { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.as-footer__claim {
	font-size: clamp(2.5rem, 9.2vw, 9.5rem);
	font-weight: 900;
	font-stretch: 125%;
	text-transform: uppercase;
	line-height: .82;
	letter-spacing: -.03em;
	margin: 0;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255,255,255,.35);
}
.as-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); font-size: .8rem; color: rgba(255,255,255,.65); }

/* Ikony społecznościowe */
.as-footer .wp-block-social-links .wp-social-link { background: transparent !important; border: 1px solid rgba(255,255,255,.3); }
.as-footer .wp-block-social-links .wp-social-link:hover { background: var(--as-red) !important; border-color: var(--as-red); transform: none; }

/* --- Pojawianie się przy przewijaniu (tylko gdy przeglądarka wspiera) ---- */

@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.as-reveal > *,
		.as-programs .wp-block-post-template > li,
		.as-news .wp-block-post-template > li {
			animation: as-rise linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 40%;
		}
	}
}
@keyframes as-rise { from { opacity: 0; transform: translateY(2.5rem); } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

/* --- Mobile ------------------------------------------------------------- */

@media (max-width: 781px) {
	.as-hero__media { margin-top: 1rem; }
	.as-badge { left: auto; right: -.5rem; bottom: -1.5rem; width: 7.5rem; height: 7.5rem; }
	.as-badge .as-mark { width: 2.5rem; }
	.as-brand__name { display: none; }
	.as-supron__photo::before { inset: -.75rem .75rem .75rem -.75rem; }
}

/* Informacja o finansowaniu ze środków publicznych */
.as-funding {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
	border-top: 1px solid var(--as-line);
	padding-top: 1rem;
}
.wp-block-quote cite { display: block; margin-top: .75rem; font-size: var(--wp--preset--font-size--small); font-style: normal; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--as-red); }

/* Nagłówki display nie mogą łamać słów w środku. */
.as-display { overflow-wrap: normal; word-break: normal; hyphens: manual; }
.as-hero h1.as-display { font-size: clamp(2.6rem, 6.2vw, 7rem) !important; }

/* Poprawki skali po podglądzie */
.as-hero h1.as-display { font-size: clamp(2.6rem, 5.6vw, 6.5rem) !important; }
.as-supron h2.as-display { font-size: clamp(2.6rem, 5.4vw, 6rem) !important; }
.as-stat__num { font-size: clamp(2.5rem, 4.4vw, 4.5rem); font-stretch: 112%; white-space: nowrap; }
.as-program .wp-block-post-title { font-size: clamp(1.3rem, 1.9vw, 1.75rem) !important; overflow-wrap: normal; hyphens: auto; }
@media (min-width: 900px) {
	.as-programs .wp-block-post-template.is-layout-grid > li:first-child { grid-column: auto; grid-row: span 2; }
	.as-programs .wp-block-post-template.is-layout-grid > li:first-child .wp-block-post-title { font-size: clamp(2rem, 3.2vw, 3.25rem) !important; }
}

@media (max-width: 900px) { .as-partners { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .as-partners { grid-template-columns: 1fr; } }

/* Dekoracje (obrócony pasek, gwiazdy) nie mogą powodować poziomego przewijania. */
html, body { overflow-x: clip; }
.wp-site-blocks { overflow-x: clip; }
.as-page-hero h1, .as-page-hero .wp-block-query-title { font-size: clamp(2.1rem, 8.4vw, 8.5rem) !important; overflow-wrap: normal; }
.as-page-hero.as-program-hero h1 { font-size: clamp(2.4rem, 7.4vw, 7.5rem) !important; }

/* Nagłówek jasny z kolorowym logo */
.as-header { border-bottom: 1px solid var(--as-line); }
.as-header.has-white-background-color .as-brand__name { color: var(--as-ink); }
.as-supron .wp-block-quote { font-style: italic; }

/* Hero: zmieniające się zdjęcia */
.as-slides {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	clip-path: polygon(12% 0, 100% 0, 88% 100%, 0 100%);
	background: var(--as-ink);
}
.as-slides .as-slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	animation: as-slide 24s infinite both;
}
.as-slides .as-slide:first-child { opacity: 1; }
@keyframes as-slide {
	0% { opacity: 0; transform: scale(1.08); }
	4% { opacity: 1; }
	25% { opacity: 1; }
	29% { opacity: 0; transform: scale(1); }
	100% { opacity: 0; }
}

/* Liczby na całą szerokość */
.as-stats.is-layout-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.as-stat__label { max-width: 28ch; }
@media (max-width: 900px) { .as-stats.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 480px) { .as-stats.is-layout-grid { grid-template-columns: 1fr !important; } }

/* --- Poprawki 2 -------------------------------------------------------- */

/* Nadtytuł jako blok — wyrównuje się do kontenera (inline-flex gubił marginesy auto). */
.as-eyebrow { display: flex; }

/* Nagłówki podstron: mniejsza skala */
.as-page-hero h1, .as-page-hero .wp-block-query-title { font-size: clamp(2.2rem, 5vw, 4.75rem) !important; }
.as-page-hero.as-program-hero h1 { font-size: clamp(2.4rem, 6.4vw, 6.5rem) !important; }

/* Kategorie: subtelne etykiety zamiast bloków */
.as-chips a,
.wp-block-post-terms.as-chips a {
	background: none;
	color: var(--as-red);
	padding: 0;
	letter-spacing: .12em;
}
.as-chips a:hover { background: none; color: var(--as-ink); text-decoration: underline; }
.as-page-hero .as-chips a { background: none; color: var(--as-orange); }
.as-page-hero .as-chips a:hover { color: #fff; }

/* Ikony społecznościowe w nagłówku */
.as-header-social .wp-social-link { transition: transform .2s var(--as-ease); }
.as-header-social .wp-social-link:hover { transform: translateY(-2px); color: var(--as-red) !important; }
.as-header-social .wp-social-link svg { width: 1.25rem; height: 1.25rem; }

/* Stopka */
.as-footer ul:not(.wp-block-social-links) { margin-top: 1rem; }
.as-footer__claim { font-size: clamp(2rem, 7.6vw, 8rem); white-space: nowrap; }

/* O Fundacji */
.as-collage { position: relative; padding: 0 0 3rem 3rem; }
.as-collage figure { margin: 0; }
.as-collage__main img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.as-collage__small {
	position: absolute !important;
	left: 0; bottom: 0;
	width: 46%;
	border: 6px solid var(--as-ink);
	box-shadow: 0 1.5rem 3rem rgba(0,0,0,.3);
}
.as-collage__small img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.as-collage::after {
	content: "";
	position: absolute;
	right: -1.5rem; top: -1.5rem;
	width: 5rem; aspect-ratio: 1;
	background: var(--as-orange);
	-webkit-mask: var(--as-star) center / contain no-repeat;
	mask: var(--as-star) center / contain no-repeat;
}

.as-values { counter-reset: none; }
.as-value { border-top: 3px solid var(--as-red); padding-top: 1.25rem; }
.as-value h3 { font-stretch: 115%; text-transform: uppercase; margin: 0 0 .5rem; }
.as-value p { margin: 0; color: var(--wp--preset--color--stone); }

.as-photo-frame { position: relative; margin: 0; }
.as-photo-frame img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.as-photo-frame::before {
	content: "";
	position: absolute;
	inset: 1.25rem -1.25rem -1.25rem 1.25rem;
	background: var(--as-orange);
	z-index: -1;
}

/* Cele statutowe jedno pod drugim */
ol.as-goals.as-goals--list {
	grid-template-columns: 1fr;
	gap: 0;
	background: none;
	border: 0;
	border-top: 2px solid var(--as-ink);
}
ol.as-goals.as-goals--list li {
	display: grid;
	grid-template-columns: 4rem 1fr;
	align-items: baseline;
	padding: 1rem 0;
	background: none;
	border-bottom: 1px solid var(--as-line);
}
ol.as-goals.as-goals--list li::before { margin: 0; font-size: 1.35rem; }
@media (min-width: 782px) { .as-sticky { position: sticky; top: 7rem; } }

.as-board h3 { font-size: var(--wp--preset--font-size--medium) !important; margin: 0; }
.as-board p { margin: .25rem 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--stone); }
.as-program-hero .wp-block-cover__inner-container { width: 100%; max-width: 1320px; margin-inline: auto !important; }
.as-program-hero .wp-block-cover__inner-container > * { margin-left: 0 !important; }
.as-program-hero .wp-block-post-excerpt__excerpt { max-width: 46ch; }

/* --- Poprawki 3 -------------------------------------------------------- */

/* Hero: kwadratowy kadr, 5 zdjęć po 6 s */
.as-slides { aspect-ratio: 1; }
.as-slides .as-slide { animation-duration: 30s; animation-name: as-slide5; }
@keyframes as-slide5 {
	0% { opacity: 0; transform: scale(1.08); }
	3.4% { opacity: 1; }
	20% { opacity: 1; }
	23.4% { opacity: 0; transform: scale(1); }
	100% { opacity: 0; }
}

/* Pasek pod hero: obrót o 1,5° podnosi/obniża końce o ~1,3vw — zakładka musi to pokryć. */
.as-ticker {
	margin-top: calc(-1.5rem - 1.4vw) !important;
	margin-bottom: calc(-1.5rem - 1.4vw) !important;
	width: calc(100% + 4rem) !important;
	max-width: none !important;
	margin-left: -2rem !important;
}

/* O Fundacji: pas zdjęć */
.as-photo-row { display: grid; grid-template-columns: 3fr 2fr; gap: 1rem; }
.as-photo-row figure { margin: 0 !important; }
.as-photo-row img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.as-photo-row__b img { object-position: 45% 50%; }
.as-photo-caption { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--stone); margin-top: .75rem !important; }
@media (max-width: 700px) { .as-photo-row { grid-template-columns: 1fr; } }
.as-hero h1.as-display { font-size: clamp(2.6rem, 5.2vw, 5.5rem) !important; }

/* O Fundacji: kompaktowy blok o prezesie */
.as-supron--compact .as-supron__photo img { aspect-ratio: 4 / 5; }
.as-supron--compact .as-supron__photo::before { inset: -.75rem .75rem .75rem -.75rem; }
.as-medals--inline { display: flex; flex-wrap: wrap; gap: 0 2rem; }
.as-medals--inline li { border-bottom: 0; padding: .25rem 0; }

/* Partnerzy: 12 kafli w 4 kolumnach */
@media (min-width: 1100px) { .as-partners { grid-template-columns: repeat(4, 1fr); } }
/* Strona główna: 9 kafli w 3 kolumnach; strona Partnerzy: 24 kafle w 4. */
@media (min-width: 1100px) {
	.as-partners { grid-template-columns: repeat(3, 1fr); }
	.as-partners.as-partners--all { grid-template-columns: repeat(4, 1fr); }
}

/* Przełącznik animacji (WCAG 2.2.2) */
.as-motion-toggle {
	position: absolute;
	right: 0;
	bottom: -2.75rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .4rem .7rem;
	background: transparent;
	border: 1px solid rgba(255,255,255,.35);
	color: #fff;
	font: inherit;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}
.as-motion-toggle::before { content: ""; width: .55rem; height: .7rem; border-inline: 3px solid currentColor; box-sizing: border-box; }
.as-motion-toggle[aria-pressed="true"]::before { width: 0; height: 0; border: 0; border-left: .6rem solid currentColor; border-block: .38rem solid transparent; }
.as-motion-toggle:hover, .as-motion-toggle:focus-visible { border-color: var(--as-orange); color: var(--as-orange); }
.as-paused .as-ticker__track,
.as-paused .as-slides .as-slide,
.as-paused .as-badge svg { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) { .as-motion-toggle { display: none; } }

/* Stopka: dolny pasek */
.as-footer__bottom a { text-decoration: underline; text-underline-offset: .2em; }
/* Przycisk animacji poniżej czerwonej ramki zdjęcia (ramka wystaje ~4% pod obraz). */
.as-motion-toggle { bottom: -4.25rem; }
/* Prawa krawędź przycisku = dolny prawy róg skośnej ramki (10% + 88% × 94% szerokości ≈ 92,7%). */
.as-motion-toggle { right: 7.5%; }
/* Przycisk animacji: subtelny, bez ramki. */
.as-motion-toggle {
	border: 0;
	padding: .4rem 0;
	font-weight: 500;
	letter-spacing: .06em;
	color: rgba(255,255,255,.6);
}
.as-motion-toggle:hover, .as-motion-toggle:focus-visible { color: #fff; }
.as-motion-toggle:focus-visible { outline: 2px solid var(--as-orange); outline-offset: 3px; }
.as-motion-toggle::before { border-inline-width: 2px; }

/* Oś czasu (historia programu) */
.entry-content ul.as-timeline { list-style: none; padding: 0; border-left: 2px solid var(--as-line); }
ul.as-timeline li { position: relative; padding: 0 0 1.5rem 1.75rem; }
ul.as-timeline li::before {
	content: "";
	position: absolute;
	left: -.45rem; top: .35rem;
	width: .8rem; height: .8rem;
	background: var(--as-red);
	-webkit-mask: var(--as-star) center / contain no-repeat;
	mask: var(--as-star) center / contain no-repeat;
}
ul.as-timeline strong {
	display: block;
	font-size: 1.5rem;
	font-weight: 900;
	font-stretch: 120%;
	line-height: 1;
	margin-bottom: .35rem;
	color: var(--as-red);
}

/* Mozaika zdjęć na stronach programów */
.as-mosaic {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: repeat(2, clamp(9rem, 16vw, 15rem));
	gap: .5rem;
	margin-block: var(--wp--preset--spacing--50) !important;
}
.as-mosaic figure { margin: 0 !important; overflow: hidden; }
.as-mosaic figure:first-child { grid-row: span 2; }
.as-mosaic img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .6s var(--as-ease); }
.as-mosaic figure:hover img { transform: scale(1.05); }
@media (max-width: 700px) {
	.as-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: 8rem; }
	.as-mosaic figure:first-child { grid-column: span 2; grid-row: auto; height: 14rem; }
}

/* Medale: rok zawsze w jednej linii (na mobile łamał się „1979”). */
.as-medals strong { white-space: nowrap; flex: none; min-width: 0; }
@media (max-width: 600px) {
	.as-medals li { gap: .75rem; }
	.as-medals strong { font-size: 1.2rem; }
}
