/*
Theme Name:   Maria Sosnowska Artist
Theme URI:    https://twojawizytowkaonline.pl/
Description:  Motyw potomny GeneratePress dla artystki Marii Sosnowskiej – czerń i złoto, galeria obrazów w 4 układach (Wystawa, Passe-partout, Salon, Pasaż) z powiększeniem i przyciskiem zapytania, sekcje O mnie, Warsztaty, Wystawy, Kontakt, panel ustawień (Wygląd → Maria Sosnowska).
Author:       Twoja Wizytówka Online
Author URI:   https://twojawizytowkaonline.pl/
Template:     generatepress
Version:      1.1.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  maria-sosnowska
*/

/* =========================================================
   Czcionki (pliki motywu, bez Google Fonts) – licencja SIL OFL
   ========================================================= */
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("assets/fonts/cormorant.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 300 700; font-display: swap; src: url("assets/fonts/cormorant-italic.woff2") format("woff2"); }
@font-face { font-family: "Jost"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("assets/fonts/jost.woff2") format("woff2"); }

:root {
	--msa-serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
	--msa-sans: "Jost", "Helvetica Neue", Arial, sans-serif;
	--msa-track: .22em;
}
body.msa-fonts,
.msa-fonts button, .msa-fonts input, .msa-fonts select, .msa-fonts textarea,
.msa-fonts .main-navigation { font-family: var(--msa-sans); }
.msa-fonts h1, .msa-fonts h2, .msa-fonts h3, .msa-fonts h4 { font-family: var(--msa-serif); }
body.msa { line-height: 1.7; font-weight: 300; font-size: 17px; background: var(--base-3); color: var(--contrast); -webkit-font-smoothing: antialiased; }
.msa strong, .msa b { font-weight: 500; }
html { scroll-behavior: smooth; }
.msa [id] { scroll-margin-top: 100px; }
.msa ::selection { background: var(--accent); color: var(--base-3); }
.msa a { text-underline-offset: 3px; }

/* =========================================================
   Nagłówek GeneratePress
   ========================================================= */
.msa .site-header { background: var(--base-3); }
.msa-compact-header .inside-header { padding-top: 14px; padding-bottom: 14px; }
.msa .site-header .header-image,
.msa .site-logo img { height: var(--msa-logo-h, 64px); width: auto; max-width: none; }
.msa-sticky-header .site-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--base-3) 90%, transparent);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--base);
}
.admin-bar.msa-sticky-header .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar.msa-sticky-header .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar.msa-sticky-header .site-header { top: 0; } }
.msa .main-navigation, .msa .main-navigation ul ul { background: transparent; }
.msa .main-navigation .main-nav ul li a {
	font-weight: 400; font-size: .78rem; letter-spacing: var(--msa-track); text-transform: uppercase; color: var(--contrast);
}
.msa .main-navigation .main-nav ul li a:hover,
.msa .main-navigation .main-nav ul li[class*="current-menu-"] > a:hover { color: var(--accent); }
.msa .main-navigation .menu-toggle { color: var(--contrast); background: transparent; }
@media (max-width: 768px) {
	.msa .site-logo img, .msa .site-header .header-image { height: var(--msa-logo-h-m, 48px); }
	.msa .main-navigation.toggled .main-nav ul { background: var(--base-3); }
}

/* Przycisk w nagłówku */
.msa-btn, .msa-btn:visited {
	display: inline-flex; align-items: center; justify-content: center; position: relative; overflow: hidden; isolation: isolate;
	padding: 13px 24px; border-radius: 0; border: 1px solid var(--accent);
	background: transparent; color: var(--accent);
	font-weight: 400; font-size: .76rem; letter-spacing: var(--msa-track); text-transform: uppercase; line-height: 1.2; text-decoration: none;
	transition: background-color .3s ease, color .3s ease;
}
.msa-btn:hover, .msa-btn:focus-visible { background: var(--accent); color: var(--base-3); }
.main-navigation .menu-bar-items { display: flex; align-items: center; align-self: center; }
.main-navigation .menu-bar-items .msa-header-cta {
	height: var(--msa-menu-h, 60px); display: flex !important; align-items: center !important; padding: 0 0 0 18px; margin: 0 !important;
}
.main-navigation .menu-bar-items .msa-header-cta > a.msa-btn,
.main-navigation .main-nav ul li.msa-menu-item-cta > a.msa-btn {
	padding: 12px 22px !important; line-height: 1.2 !important; height: auto; margin: 0 !important;
	background: transparent !important; color: var(--accent) !important; white-space: nowrap;
}
.main-navigation .menu-bar-items .msa-header-cta > a.msa-btn:hover,
.main-navigation .main-nav ul li.msa-menu-item-cta > a.msa-btn:hover { background: var(--accent) !important; color: var(--base-3) !important; }
.main-navigation .main-nav ul li.msa-menu-item-cta { display: flex; align-items: center; margin-left: 12px; min-height: var(--msa-menu-h, 60px); }
.main-navigation.toggled .main-nav ul li.msa-menu-item-cta { padding: 12px 20px; margin: 0; min-height: 0; }
@media (max-width: 768px) {
	.main-navigation .menu-bar-items .msa-header-cta { padding-left: 6px; }
	.main-navigation .menu-bar-items .msa-header-cta > a.msa-btn { padding: 9px 14px !important; font-size: .68rem; }
}
.msa-btn--shine::before, .msa-btn--shine-hover::before {
	content: ""; position: absolute; top: 0; bottom: 0; left: -75%; width: 50%;
	background: linear-gradient(100deg, transparent 0%, rgba(255,255,255,.45) 50%, transparent 100%);
	transform: skewX(-20deg); pointer-events: none; z-index: 1;
}
.msa-btn--shine::before { animation: msa-shine 4s ease-in-out infinite; }
.msa-btn--shine:hover::before, .msa-btn--shine-hover:hover::before { animation: msa-shine-once .8s ease-out; }
@keyframes msa-shine { 0% { left: -75%; } 30%, 100% { left: 130%; } }
@keyframes msa-shine-once { from { left: -75%; } to { left: 130%; } }

/* =========================================================
   Stopka
   ========================================================= */
.msa .site-info { background: var(--dark); color: var(--contrast-3); border-top: 1px solid var(--base); }
.msa .inside-site-info { padding-top: 44px; padding-bottom: 40px; }
.msa .copyright-bar { width: 100%; }
.msa-footer { display: grid; gap: 26px; width: 100%; font-size: .9rem; }
.msa-footer-row { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; text-align: left; }
.msa-footer-row .msa-footer-text { flex: 1 1 260px; letter-spacing: .04em; }
.msa-footer-logo { height: var(--msa-logo-f, 54px); width: auto; display: block; }
.msa-footer-bottom {
	display: flex; justify-content: space-between; align-items: center; gap: 10px 24px; flex-wrap: wrap;
	padding-top: 20px; border-top: 1px solid var(--base);
	font-size: .8rem; letter-spacing: .06em; color: var(--contrast-2);
}
.msa-footer-bottom a { color: var(--contrast-3); text-decoration: none; }
.msa-footer-bottom a:hover { color: var(--accent); }
.msa-footer-links { display: inline-flex; gap: 10px; flex-wrap: wrap; }
.msa-footer-links:empty { display: none; }
.msa-footer-credit a { font-weight: 500; color: var(--contrast); }
@media (max-width: 560px) {
	.msa-footer-row, .msa-footer-bottom { flex-direction: column; align-items: flex-start; }
	.msa-footer-row .msa-footer-text { flex: 0 0 auto; }
}
.msa-social { display: flex; gap: 10px; list-style: none; margin: 0; padding: 0; }
.msa-social li { margin: 0; }
.msa-social a {
	display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
	border: 1px solid var(--base); color: var(--contrast-3);
	transition: border-color .3s ease, color .3s ease, background-color .3s ease;
}
.msa-social .msa-ico { width: 18px; height: 18px; }
.msa-social a:hover, .msa-social a:focus-visible { border-color: var(--accent); color: var(--accent); }

/* Stopka zawsze na dole ekranu */
body.msa {
	display: flex; flex-direction: column;
	min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
	min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
}
body.msa > .site, body.msa > #page { flex: 1 0 auto; width: 100%; }
body.msa > .site-header, body.msa > .site-footer, body.msa > #site-navigation { flex-shrink: 0; width: 100%; }

/* =========================================================
   Szablon „strona z sekcjami” i kontener
   ========================================================= */
.msa-landing-page .site.grid-container,
.msa-landing-page #page { max-width: none; padding: 0; }
.msa-landing-page .site-content { display: block; padding: 0; }
.msa-landing, .msa-landing .entry-content { margin: 0; padding: 0; }
.msa-landing .entry-content > * { margin-top: 0; margin-bottom: 0; }
.msa-landing .entry-content > .alignfull { margin-left: 0; margin-right: 0; width: 100%; max-width: none; }
.msa .inside-article { background: transparent; }

.msa-section { padding-top: var(--msa-section-y, clamp(72px, 9vw, 120px)); padding-bottom: var(--msa-section-y, clamp(72px, 9vw, 120px)); margin: 0; }
.msa-merge-sections .msa-section:not(.has-background) + .msa-section:not(.has-background):not([style*="padding-top"]) { padding-top: 0; }
.msa-container { width: min(1240px, 90%); margin-left: auto; margin-right: auto; }
.msa-container.msa-narrow { width: min(1100px, 90%); }
.msa-container > *, .msa-container > .wp-block-group__inner-container > * { margin-top: 0; margin-bottom: 0; }
.msa-container > * + *, .msa-container > .wp-block-group__inner-container > * + * { margin-top: var(--msa-gap, 22px); }
.msa-section .wp-block-columns { gap: clamp(36px, 6vw, 80px); margin-bottom: 0; }
.msa-mt-lg { margin-top: calc(var(--msa-gap, 22px) * 2.4) !important; }
.msa-band { background: var(--base-2); border-top: 1px solid var(--base); border-bottom: 1px solid var(--base); }
:is(.msa-container, .msa-hero-inner, .msa-section, .msa-stack, .is-style-msa-card, .is-style-msa-soft-box, .msa-landing .entry-content > .wp-block-group) > .wp-block-group__inner-container { display: contents; }

/* =========================================================
   Typografia sekcji
   ========================================================= */
.msa-section h2, .is-style-msa-display {
	font-family: var(--msa-serif); font-weight: 400;
	font-size: clamp(2.6rem, 5.4vw, 4.4rem); line-height: 1; letter-spacing: .06em; text-transform: uppercase;
	color: var(--accent); margin: 0 0 clamp(28px, 4vw, 48px);
}

.msa-section .wp-block-column h2 { font-size: clamp(2.4rem, 4.4vw, 4rem); }
.msa-section h3 { font-family: var(--msa-serif); font-style: italic; font-weight: 400; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.15; }
.is-style-msa-tag {
	color: var(--contrast-2); font-size: .74rem; font-weight: 400; letter-spacing: .32em; text-transform: uppercase; margin-bottom: 0;
}
.is-style-msa-lead {
	font-family: var(--msa-serif); font-style: italic; font-weight: 400;
	font-size: clamp(1.35rem, 2.2vw, 1.75rem); line-height: 1.45; color: var(--contrast); max-width: 720px;
}
.is-style-msa-quote {
	font-family: var(--msa-serif); font-style: italic; font-weight: 400; font-size: clamp(1.3rem, 2vw, 1.6rem); color: var(--accent-3);
	border-left: 1px solid var(--accent); padding-left: 22px;
}
.msa-section p { color: color-mix(in srgb, var(--contrast) 86%, var(--base-3)); }
.msa-muted { color: var(--contrast-2); }
.is-style-msa-card { padding: clamp(26px, 3vw, 38px); border: 1px solid var(--base); background: var(--dark-2); height: 100%; }
.is-style-msa-soft-box { padding: clamp(24px, 3vw, 34px); background: var(--base-2); border: 1px solid var(--base); }
.is-style-msa-card > *, .is-style-msa-soft-box > * { margin-top: 0; margin-bottom: 0; }
.is-style-msa-card > * + *, .is-style-msa-soft-box > * + * { margin-top: 14px; }

/* Lista faktów (Termin / Miejsce / Cena) */
.msa-facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--base); }
.msa-facts li { display: grid; grid-template-columns: minmax(110px, 30%) 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--base); margin: 0; }
.msa-facts li strong { font-weight: 400; font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; color: var(--contrast-2); padding-top: 4px; }

/* =========================================================
   Przyciski
   ========================================================= */
.msa .wp-block-button__link {
	border-radius: 0; padding: 17px 34px; border: 1px solid var(--accent);
	font-weight: 400; font-size: .78rem; letter-spacing: var(--msa-track); text-transform: uppercase; line-height: 1.2; text-decoration: none;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.msa .wp-block-button__link:not(.has-background) { background-color: var(--accent); }
.msa .wp-block-button__link:not(.has-text-color) { color: var(--base-3); }
.msa .wp-block-button:not(.is-style-msa-outline):not(.is-style-outline) .wp-block-button__link:not(.has-background):hover { background-color: var(--accent-3); border-color: var(--accent-3); }
.msa .wp-block-button.is-style-msa-outline .wp-block-button__link,
.msa .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--accent); border-color: var(--accent); }
.msa .wp-block-button.is-style-msa-outline .wp-block-button__link:hover,
.msa .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--accent); color: var(--base-3); }
.msa-section .wp-block-buttons { gap: 14px; }
.wp-block-buttons > .wp-block-button { display: flex; align-items: center; }

/* =========================================================
   Sekcja główna
   ========================================================= */
.msa-hero { text-align: center; padding-top: clamp(60px, 9vw, 120px); padding-bottom: clamp(70px, 10vw, 130px); }
.msa-hero-inner { width: min(900px, 90%); margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 30px; }
.msa-hero-inner > * { margin: 0 !important; }
.msa-hero .msa-hero-logo { width: min(620px, 92%); }
.msa-hero .msa-hero-logo img { width: 100%; height: auto; }
.msa-hero .is-style-msa-lead { max-width: 640px; margin-left: auto; margin-right: auto; }
.msa-hero .wp-block-buttons { justify-content: center; }

/* =========================================================
   Obrazy: łuk i rama
   ========================================================= */
.is-style-msa-arch img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 999px 999px 0 0; display: block; }
.is-style-msa-arch { max-width: 460px; }
.is-style-msa-framed { background: var(--dark-2); padding: 10px; box-shadow: 0 30px 70px rgba(0,0,0,.45); }
.is-style-msa-framed img { display: block; width: 100%; height: auto; border: clamp(18px, 3vw, 34px) solid #f1ede5; box-sizing: border-box; }
.msa-exhibit figcaption, .msa-section .wp-block-image figcaption.wp-element-caption {
	font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; color: var(--contrast-2); text-align: left; margin-top: 14px;
}

/* =========================================================
   GALERIA – wspólne
   Układ: styl galerii z edytora albo ustawienie z panelu (Wygląd → Maria Sosnowska → Galeria).
   ========================================================= */
:is(.wp-block-gallery[class*="is-style-msa-"], [class*="msa-gal-"] .wp-block-gallery:not([class*="is-style-"])) { --msa-gal-gap: clamp(20px, 3vw, 48px); gap: var(--msa-gal-gap) !important; }
:is(.wp-block-gallery[class*="is-style-msa-"], [class*="msa-gal-"] .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image { margin: 0 !important; position: relative; }
:is(.wp-block-gallery[class*="is-style-msa-"], [class*="msa-gal-"] .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image img { display: block; transition: transform calc(var(--msa-speed, .35s) * 2) cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.msa-gal-hidden { display: none !important; }
.msa-gal-appear { animation: msa-gal-in .6s cubic-bezier(.2,.7,.2,1) both; animation-delay: var(--msa-delay, 0s); }
@keyframes msa-gal-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.msa-gal-more { display: flex; justify-content: center; margin-top: 56px; }
.msa .msa-gal-more-btn {
	cursor: pointer; background: transparent; color: var(--accent); border: 1px solid var(--accent); border-radius: 0;
	padding: 16px 32px; font-family: var(--msa-sans); font-size: .76rem; letter-spacing: var(--msa-track); text-transform: uppercase;
	transition: background-color .3s ease, color .3s ease;
}
.msa .msa-gal-more-btn:hover, .msa .msa-gal-more-btn:focus { background: var(--accent); color: var(--base-3); }
.msa-gal-zoom > .wp-block-image { cursor: zoom-in; }
.msa-gal-zoom > .wp-block-image img:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

/* Podpis: „Tytuł | dane” → tytuł kursywą + dane drobnym drukiem (rozkłada skrypt) */
:is(.wp-block-gallery[class*="is-style-msa-"], [class*="msa-gal-"] .wp-block-gallery:not([class*="is-style-"])) figcaption .msa-cap-title { display: block; font-family: var(--msa-serif); font-style: italic; font-size: 1.55rem; line-height: 1.2; color: var(--contrast); letter-spacing: 0; text-transform: none; }
:is(.wp-block-gallery[class*="is-style-msa-"], [class*="msa-gal-"] .wp-block-gallery:not([class*="is-style-"])) figcaption .msa-cap-meta { display: block; margin-top: 6px; font-family: var(--msa-sans); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--contrast-2); }
.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { display: none !important; }

/* ---------- 1. WYSTAWA: jedna duża praca w rzędzie, podpis obok, naprzemiennie ---------- */
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) { display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; gap: clamp(64px, 10vw, 130px) !important; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image {
	width: 100% !important; display: grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(28px, 6vw, 90px); align-items: center;
}
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) img { order: 2; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image img {
	width: auto !important; max-width: 100% !important; height: auto !important; max-height: 78vh; justify-self: center; object-fit: contain !important;
}
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption {
	position: static !important; inset: auto !important; padding: 0 !important; margin: 0 !important; max-height: none !important; overflow: visible !important;
	background: none !important; color: var(--contrast) !important; text-align: left !important; font-size: 1.4rem;
}
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) figcaption { text-align: right !important; order: 1; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption::before { content: counter(msa-work, decimal-leading-zero); counter-increment: msa-work; display: block; font-family: var(--msa-serif); font-size: 1.3rem; color: var(--accent); margin-bottom: 14px; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption::after { content: ""; display: block; width: 40px; height: 1px; background: var(--accent); margin-top: 18px; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) figcaption::after { margin-left: auto; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) { counter-reset: msa-work; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption .msa-cap-title { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.msa-anim-hover :is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:hover img { transform: scale(1.015); }
@media (max-width: 781px) {
	:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image, :is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) { grid-template-columns: 1fr; gap: 20px; }
	:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) img, :is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) figcaption { order: 0; text-align: left !important; }
	:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) figcaption::after { margin-left: 0; }
}

/* ---------- 2. PASSE-PARTOUT: każda praca w jednakowej oprawie ---------- */
:is(.wp-block-gallery.is-style-msa-passe, .msa-gal-passe .wp-block-gallery:not([class*="is-style-"])) { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: clamp(48px, 6vw, 80px) clamp(28px, 4vw, 56px) !important; align-items: start; }
:is(.wp-block-gallery.is-style-msa-passe, .msa-gal-passe .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image { width: auto !important; display: flex !important; flex-direction: column !important; align-items: stretch; }
:is(.wp-block-gallery.is-style-msa-passe, .msa-gal-passe .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image img {
	width: 100% !important; height: auto !important; aspect-ratio: 4 / 5; object-fit: contain !important;
	padding: clamp(26px, 3vw, 40px); box-sizing: border-box; background: var(--msa-mat, #f1ede5);
	border: 10px solid var(--msa-frame, #1d1915); box-shadow: 0 30px 60px rgba(0,0,0,.5);
}
:is(.wp-block-gallery.is-style-msa-passe, .msa-gal-passe .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption {
	position: static !important; inset: auto !important; padding: 0 !important; margin: 22px 0 0 !important; max-height: none !important; overflow: visible !important;
	background: none !important; color: var(--contrast) !important; text-align: left !important;
}
.msa-mat-ciemne { --msa-mat: #161411; --msa-frame: #2b2620; }
.msa-mat-biale { --msa-mat: #ffffff; --msa-frame: #111111; }
.msa-light { --msa-frame: #2a2622; }
.msa-anim-hover :is(.wp-block-gallery.is-style-msa-passe, .msa-gal-passe .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:hover img { transform: translateY(-6px); }

/* ---------- 3. SALON: naturalne proporcje, tytuł po najechaniu ---------- */
:is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) { display: block !important; column-width: 300px; column-gap: var(--msa-gal-gap); }
:is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image { display: block !important; break-inside: avoid; width: 100% !important; margin: 0 0 var(--msa-gal-gap) !important; overflow: hidden; }
:is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image img { width: 100% !important; height: auto !important; object-fit: initial !important; }
:is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption {
	position: absolute !important; inset: auto 0 0 0 !important; margin: 0 !important; max-height: none !important; overflow: visible !important;
	padding: 60px 24px 22px !important; text-align: left !important; color: #f2ede4 !important;
	background: linear-gradient(180deg, transparent, rgba(8,8,8,.88)) !important;
	opacity: 0; transform: translateY(8px); transition: opacity .4s ease, transform .4s ease; pointer-events: none;
}
:is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption .msa-cap-title { color: #f2ede4; }
:is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption .msa-cap-meta { color: #cfc7b9; }
:is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:hover figcaption, :is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:focus-within figcaption { opacity: 1; transform: none; }
.msa-anim-hover :is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:hover img { transform: scale(1.03); }
@media (hover: none) { :is(.wp-block-gallery.is-style-msa-salon, .msa-gal-salon .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption { opacity: 1; transform: none; } }

/* ---------- 4. PASAŻ: przewijany rząd, jednakowa wysokość ---------- */
:is(.wp-block-gallery.is-style-msa-pasaz, .msa-gal-pasaz .wp-block-gallery:not([class*="is-style-"])) {
	display: flex !important; flex-wrap: nowrap !important; gap: 24px !important; overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px;
}
:is(.wp-block-gallery.is-style-msa-pasaz, .msa-gal-pasaz .wp-block-gallery:not([class*="is-style-"]))::-webkit-scrollbar { display: none; }
:is(.wp-block-gallery.is-style-msa-pasaz, .msa-gal-pasaz .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image { flex: 0 0 auto !important; width: auto !important; scroll-snap-align: start; display: flex !important; flex-direction: column !important; }
:is(.wp-block-gallery.is-style-msa-pasaz, .msa-gal-pasaz .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image img { height: clamp(340px, 46vw, 560px) !important; width: auto !important; max-width: 82vw; object-fit: contain !important; background: var(--dark-2); }
:is(.wp-block-gallery.is-style-msa-pasaz, .msa-gal-pasaz .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption {
	position: static !important; inset: auto !important; padding: 0 !important; margin: 18px 0 0 !important; max-height: none !important; overflow: visible !important;
	background: none !important; color: var(--contrast) !important; text-align: left !important; max-width: 420px;
}
.msa-slider-nav { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 28px; }
.msa-slider-nav[hidden] { display: none; }
.msa-slider-count { margin-right: auto; font-family: var(--msa-serif); font-size: 1.4rem; letter-spacing: .08em; color: var(--contrast-2); }
.msa .msa-slider-btn, .msa .msa-lb-btn {
	display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border-radius: 50%; cursor: pointer;
	border: 1px solid var(--accent); background: transparent; color: var(--accent);
	transition: background-color .3s ease, color .3s ease, opacity .3s ease;
}
.msa .msa-slider-btn svg, .msa .msa-lb-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.msa .msa-slider-btn:hover:not(:disabled), .msa .msa-lb-btn:hover { background: var(--accent); color: var(--base-3); }
.msa .msa-slider-btn:focus:not(:hover) { background: transparent; color: var(--accent); }
.msa .msa-slider-btn:disabled { opacity: .3; cursor: default; }

/* =========================================================
   Powiększenie obrazu (lightbox) z panelem danych
   ========================================================= */
.msa-lb-open, .msa-lb-open body { overflow: hidden; }
.msa-lb {
	position: fixed; inset: 0; z-index: 100000; display: grid; grid-template-rows: auto 1fr auto;
	background: #070707; color: #f2ede4; opacity: 0; transition: opacity .3s ease; font-family: var(--msa-sans);
}
.msa-lb[hidden] { display: none; }
.msa-lb.is-open { opacity: 1; }
.msa-lb-top { display: flex; justify-content: space-between; align-items: center; padding: 18px 24px; }
.msa-lb-count { font-family: var(--msa-serif); font-size: 1.35rem; letter-spacing: .1em; color: #a8a093; }
.msa .msa-lb-btn { border-color: rgba(242,237,228,.25); color: #f2ede4; }
.msa .msa-lb-btn:focus:not(:hover) { background: transparent; color: #f2ede4; }
.msa .msa-lb-next { border-color: var(--accent); }
.msa-lb-stage { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(12px, 3vw, 40px); padding: 0 24px; min-height: 0; }
.msa-lb.has-info .msa-lb-stage { grid-template-columns: auto minmax(0, 1fr) minmax(240px, 340px) auto; }
.msa-lb-figure { margin: 0; display: grid; place-items: center; min-height: 0; height: 100%; }
.msa-lb-img {
	max-width: 100%; max-height: calc(100vh - 220px); max-height: calc(100dvh - 220px); width: auto; height: auto;
	box-shadow: 0 40px 90px rgba(0,0,0,.6);
	transform: scale(.97); opacity: 0; transition: transform .45s cubic-bezier(.2,.7,.2,1), opacity .3s ease; user-select: none; -webkit-user-drag: none;
}
.msa-lb.is-open .msa-lb-img { transform: none; opacity: 1; }
.msa-lb .msa-lb-img.is-switching { opacity: 0; transform: scale(.985); }
.msa-lb-info { display: none; flex-direction: column; gap: 18px; }
.msa-lb.has-info .msa-lb-info { display: flex; }
.msa-lb-line { width: 40px; height: 1px; background: var(--accent); }
.msa-lb .msa-lb-title { margin: 0; font-family: var(--msa-serif); font-style: italic; font-weight: 400; font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1.1; color: #f2ede4; letter-spacing: 0; text-transform: none; }
.msa-lb .msa-lb-title::after { display: none; }
.msa-lb-meta { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.msa-lb-meta li { margin: 0; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: #b9b1a4; }
.msa-lb-ask {
	margin-top: 10px; display: inline-flex; justify-content: center; padding: 17px 26px; background: var(--accent); color: #0a0a0a;
	font-size: .76rem; letter-spacing: var(--msa-track); text-transform: uppercase; text-decoration: none; transition: background-color .3s ease;
}
.msa-lb-ask:hover, .msa-lb-ask:focus { background: var(--accent-3); color: #0a0a0a; }
.msa-lb-ask[hidden] { display: none; }
.msa-lb-thumbs { display: flex; gap: 10px; overflow-x: auto; padding: 16px 24px 22px; scrollbar-width: none; justify-content: safe center; }
.msa-lb-thumbs::-webkit-scrollbar { display: none; }
.msa .msa-lb-thumb {
	flex: 0 0 72px; height: 54px; padding: 0; cursor: pointer; border-radius: 0;
	border: 1px solid transparent; background: #1a1a1a center / cover no-repeat; opacity: .4; transition: opacity .25s ease, border-color .25s ease;
}
.msa .msa-lb-thumb:hover { opacity: .8; background-color: #1a1a1a; }
.msa .msa-lb-thumb.is-active { opacity: 1; border-color: var(--accent); }
.msa-lb.is-single .msa-lb-prev, .msa-lb.is-single .msa-lb-next, .msa-lb.is-single .msa-lb-thumbs { visibility: hidden; }
@media (max-width: 900px) {
	.msa-lb { overflow-y: auto; grid-template-rows: auto auto auto; }
	.msa-lb-stage, .msa-lb.has-info .msa-lb-stage { grid-template-columns: 1fr; padding: 0 16px; gap: 22px; }
	.msa .msa-lb-prev, .msa .msa-lb-next { position: absolute; top: 34vh; z-index: 2; width: 44px; height: 44px; background: rgba(0,0,0,.5); transform: translateY(-50%); }
	.msa .msa-lb-prev { left: 22px; }
	.msa .msa-lb-next { right: 22px; }
	.msa-lb-img { max-height: 68vh; }
	.msa-lb-info { padding-bottom: 8px; }
	.msa .msa-lb-thumb { flex-basis: 56px; height: 42px; }
}

/* =========================================================
   Kontakt – kafelki [msa_kontakt]
   ========================================================= */
.msa-contact-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 12px; }
.msa-contact-tile {
	display: flex; align-items: center; gap: 16px; min-width: 0; padding: 22px 20px; border: 1px solid var(--base);
	background: var(--base-3); color: var(--contrast); text-decoration: none; transition: background-color .3s ease, border-color .3s ease;
}
.msa-contact-tile:hover { border-color: var(--accent); }
.msa-contact-tile:hover, .msa-contact-tile:focus-visible { background: var(--base-2); color: var(--contrast); }
.msa-contact-ico { flex: 0 0 auto; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--accent); color: var(--accent); transition: background-color .3s ease, color .3s ease; }
.msa-contact-ico .msa-ico { width: 20px; height: 20px; }
.msa-contact-tile:hover .msa-contact-ico { background: var(--accent); color: var(--base-3); }
.msa-contact-txt { display: grid; min-width: 0; line-height: 1.35; gap: 4px; }
.msa-contact-txt small { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--contrast-2); }
.msa-contact-txt strong { font-weight: 400; font-size: 1.02rem; overflow-wrap: anywhere; }
.msa-contact-arrow { margin-left: auto; color: var(--accent); opacity: 0; transform: translateX(-6px); transition: opacity .3s ease, transform .3s ease; }
.msa-contact-arrow .msa-ico { width: 18px; height: 18px; }
.msa-contact-tile:hover .msa-contact-arrow, .msa-contact-tile:focus-visible .msa-contact-arrow { opacity: 1; transform: none; }
.msa-contact-notes { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 26px; color: var(--contrast-2); font-size: .92rem; }
.msa-contact-notes li { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.msa-contact-notes .msa-ico { width: 18px; height: 18px; color: var(--accent); }

/* =========================================================
   Zwykłe strony (np. polityka prywatności)
   ========================================================= */
.msa:not(.msa-landing-page) .entry-header .entry-title {
	font-family: var(--msa-serif); font-weight: 300; letter-spacing: .06em; text-transform: uppercase; color: var(--accent);
	font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.05;
}
.msa:not(.msa-landing-page) .entry-content h2 { font-family: var(--msa-serif); font-weight: 400; font-size: clamp(1.5rem, 2.6vw, 2rem); margin-top: 2em; color: var(--contrast); }
.msa:not(.msa-landing-page) .entry-content { max-width: 780px; }

/* =========================================================
   Animacje
   ========================================================= */
.msa-anim-hover .main-navigation .main-nav > ul > li:not(.msa-menu-item-cta) > a { position: relative; }
.msa-anim-hover .main-navigation .main-nav > ul > li:not(.msa-menu-item-cta) > a::after {
	content: ""; position: absolute; left: 20px; right: 20px; bottom: calc(50% - 1em); height: 1px; background: var(--accent);
	transform: scaleX(0); transform-origin: left; transition: transform var(--msa-speed, .35s) ease;
}
.msa-anim-hover .main-navigation .main-nav > ul > li:not(.msa-menu-item-cta) > a:hover::after,
.msa-anim-hover .main-navigation .main-nav > ul > li:not(.msa-menu-item-cta) > a:focus-visible::after { transform: scaleX(1); }
.main-navigation.toggled .main-nav > ul > li > a::after { display: none; }
[class*="msa-hover-"] { transition: transform var(--msa-speed, .35s) cubic-bezier(.2,.7,.2,1), box-shadow var(--msa-speed, .35s) ease; }
.msa-hover-lift:hover { transform: translateY(calc(var(--msa-move, 2) * -3px)); }
.msa-hover-glow:hover { box-shadow: 0 0 0 1px var(--accent), 0 18px 50px color-mix(in srgb, var(--accent) 25%, transparent); }
.msa-hover-tilt:hover { transform: rotate(-1.2deg) scale(1.02); }
.msa-hover-pulse:hover { animation: msa-pulse calc(var(--msa-speed, .35s) * 3) ease-in-out infinite; }
.msa-hover-zoom { overflow: hidden; }
.msa-hover-zoom img { transition: transform calc(var(--msa-speed, .35s) * 1.5) ease; }
.msa-hover-zoom:hover img { transform: scale(calc(1 + var(--msa-move, 2) * .02)); }
@keyframes msa-pulse { 50% { transform: scale(1.03); } }
.msa-js [data-msa-reveal] {
	opacity: 0; transition: opacity calc(var(--msa-speed, .35s) * 2.2) ease, transform calc(var(--msa-speed, .35s) * 2.2) cubic-bezier(.2,.7,.2,1);
	transition-delay: var(--msa-delay, 0s); will-change: opacity, transform;
}
.msa-js [data-msa-reveal="up"] { transform: translateY(calc(var(--msa-move, 2) * 14px)); }
.msa-js [data-msa-reveal="left"] { transform: translateX(calc(var(--msa-move, 2) * -18px)); }
.msa-js [data-msa-reveal="right"] { transform: translateX(calc(var(--msa-move, 2) * 18px)); }
.msa-js [data-msa-reveal="zoom"] { transform: scale(calc(1 - var(--msa-move, 2) * .03)); }
.msa-js [data-msa-reveal].is-revealed { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.msa-js [data-msa-reveal] { opacity: 1 !important; transform: none !important; }
}

/* =========================================================
   Dopasowanie do projektu (wersja 1.1)
   ========================================================= */
/* Dane pracy: każda w osobnej linii (w Wystawie z cienkimi kreskami, jak w projekcie) */
.msa-cap-line { display: inline; }
.msa-cap-line + .msa-cap-line::before { content: " · "; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption .msa-cap-title {
	font-style: normal; text-transform: uppercase; letter-spacing: .08em; font-size: clamp(1.7rem, 2.6vw, 2.3rem);
}
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption .msa-cap-meta {
	display: block; margin-top: 22px; max-width: 300px; font-family: var(--msa-serif); font-size: 1.15rem; letter-spacing: .02em; text-transform: none; color: var(--contrast);
}
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) figcaption .msa-cap-meta { margin-left: auto; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) .msa-cap-line { display: block; padding: 8px 0; border-top: 1px solid color-mix(in srgb, var(--contrast) 45%, transparent); }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) .msa-cap-line + .msa-cap-line::before { content: none; }
:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image figcaption::after { display: none; }

/* Start: samo logo, jak w projekcie */
.msa-hero { padding-top: clamp(70px, 10vw, 140px); padding-bottom: clamp(70px, 10vw, 140px); }
.msa-hero .msa-hero-logo { width: min(560px, 86%); }

/* O mnie: tekst wyjustowany jak w projekcie */
#o-mnie .wp-block-column p { text-align: justify; hyphens: auto; }

/* Kontakt: lista + kolaż zdjęć */
.msa-contact-cols { align-items: flex-start; }
.msa-contact-list { margin: 0; display: grid; gap: 30px; }
.msa-contact-list > div { margin: 0; }
.msa-contact-list dt { font-family: var(--msa-sans); font-size: 1.2rem; font-weight: 400; color: var(--contrast); margin: 0 0 4px; }
.msa-contact-list dd { margin: 0; font-size: 1rem; color: var(--contrast-2); overflow-wrap: anywhere; }
.msa-contact-list a { color: var(--contrast-2); text-decoration: none; transition: color .3s ease; }
.msa-contact-list a:hover { color: var(--accent); }
.msa-collage { position: relative; padding-bottom: 22%; }
.msa-collage > *, .msa-collage > .wp-block-group__inner-container > * { margin: 0 !important; }
.msa-collage > .wp-block-group__inner-container { display: contents; }
.msa-collage-main img { display: block; width: 100%; height: auto; border: 1px solid color-mix(in srgb, var(--contrast) 80%, transparent); }
.msa-collage-inset { position: absolute !important; right: 0; bottom: 0; width: 40%; }
.msa-collage-inset img {
	display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%;
	border: 1px solid color-mix(in srgb, var(--contrast) 80%, transparent); border-radius: 999px 999px 0 0;
}
@media (max-width: 781px) {
	.msa-collage { padding-bottom: 30%; }
	.msa-collage-inset { width: 48%; }
}
@media (max-width: 781px) {
	:is(.wp-block-gallery.is-style-msa-wystawa, .msa-gal-wystawa .wp-block-gallery:not([class*="is-style-"])) > .wp-block-image:nth-child(even) figcaption .msa-cap-meta { margin-left: 0; }
}
