/* MJN – motyw: nagłówek, stopka, style bloków. Kolory z palety (theme.json / warianty). */
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
::selection { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--contrast); }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }
.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--dark); color: var(--wp--preset--color--on-dark); padding: 1rem 1.5rem; z-index: 100000; }
img { height: auto; }

/* ---------------------------------------------------------------- Nagłówek */
.mjn-site-header { position: sticky; top: 0; z-index: 50; background: var(--wp--preset--color--base); border-bottom: 1px solid transparent; transition: box-shadow .3s, border-color .3s; }
.admin-bar .mjn-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .mjn-site-header { top: 0; } }
.mjn-scrolled .mjn-site-header { border-bottom-color: var(--wp--preset--color--border); box-shadow: 0 6px 24px rgba(20, 20, 20, .06); }
.mjn-site-header .wp-block-site-logo img { transition: width .3s; }
.mjn-site-header .wp-block-site-logo { flex-shrink: 0; }
.mjn-site-header .wp-block-navigation__submenu-container { border: 1px solid var(--wp--preset--color--border) !important; box-shadow: 0 14px 34px rgba(20, 20, 20, .1); padding: .5rem 0; min-width: 240px !important; background: var(--wp--preset--color--base) !important; }
.mjn-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem 1.2rem !important; text-transform: none; letter-spacing: .02em; font-size: .95rem; color: var(--wp--preset--color--contrast); }
.mjn-site-header .wp-block-navigation-item__content { padding-block: .6rem; }
.mjn-site-header .wp-block-navigation .current-menu-item > a, .mjn-site-header .wp-block-navigation [aria-current="page"] { color: var(--wp--preset--color--accent-strong); }
.mjn-site-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; background: var(--wp--preset--color--base) !important; }
.mjn-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.05rem; padding: .5rem 0; }
.mjn-site-header .wp-block-navigation__responsive-container-open, .mjn-site-header .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
@media (max-width: 1100px) and (min-width: 600px) { .mjn-site-header .wp-block-site-logo img { width: 190px !important; } }
@media (max-width: 599px) { .mjn-site-header .wp-block-site-logo img { width: 168px !important; } }

/* ---------------------------------------------------------------- Hero i sekcje */
.mjn-hero { position: relative; }
.wp-block-cover.mjn-hero .wp-block-cover__inner-container { width: 100% !important; max-width: none !important; }
.mjn-hero .wp-block-cover__inner-container > .alignwide { margin-inline: auto !important; max-width: var(--wp--style--global--wide-size); }
.mjn-hero h1 { color: #fff; text-shadow: 0 2px 30px rgba(0, 0, 0, .25); max-width: 16ch; }
.mjn-hero .mjn-block--property-search { margin-top: clamp(1.5rem, 4vw, 3rem); }
.mjn-hero .mjn-search { max-width: 1100px; }
.is-style-mjn-eyebrow { font-size: .78rem !important; letter-spacing: .3em; text-transform: uppercase; color: var(--wp--preset--color--accent-strong); font-weight: 500; }
.has-dark-background-color .is-style-mjn-eyebrow, .wp-block-cover .is-style-mjn-eyebrow { color: var(--wp--preset--color--accent-soft); }
.is-style-mjn-lead { font-size: var(--wp--preset--font-size--large) !important; line-height: 1.55; color: var(--wp--preset--color--muted); }
.has-dark-background-color .is-style-mjn-lead { color: color-mix(in srgb, var(--wp--preset--color--on-dark) 82%, transparent); }
.is-style-mjn-rule { padding-bottom: .6em; position: relative; }
.is-style-mjn-rule::after { content: ""; position: absolute; left: 0; bottom: 0; width: 64px; height: 1px; background: var(--wp--preset--color--accent); }
.has-text-align-center.is-style-mjn-rule::after { left: calc(50% - 32px); }
.wp-block-group.is-style-mjn-card { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--border); padding: clamp(1.25rem, 3vw, 2.25rem); }
.wp-block-group.is-style-mjn-framed { border: 1px solid var(--wp--preset--color--accent); padding: clamp(1.5rem, 4vw, 3rem); }
.wp-block-image.is-style-mjn-frame { position: relative; }
.wp-block-image.is-style-mjn-frame::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 1px solid var(--wp--preset--color--accent); z-index: -1; }
.wp-block-image.is-style-mjn-frame { isolation: isolate; margin-right: 18px; margin-bottom: 18px !important; }
.wp-block-button.is-style-mjn-light .wp-block-button__link { background: rgba(255, 255, 255, .95); color: #1f2124; }
.wp-block-button.is-style-mjn-light .wp-block-button__link:hover { background: var(--wp--preset--color--accent); color: #fff; }
.wp-block-button.is-style-outline .wp-block-button__link { border: 1px solid var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); background: transparent; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--accent-strong); color: var(--wp--preset--color--on-accent); border-color: var(--wp--preset--color--accent-strong); }
.has-dark-background-color .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp--preset--color--on-dark); }
.is-style-mjn-checks { list-style: none; padding-left: 0; }
.is-style-mjn-checks li { position: relative; padding-left: 1.8em; margin: .45em 0; }
.is-style-mjn-checks li::before { content: ""; position: absolute; left: 0; top: .5em; width: .95em; height: .5em; border-left: 1.6px solid var(--wp--preset--color--accent); border-bottom: 1.6px solid var(--wp--preset--color--accent); transform: rotate(-45deg); }
.wp-block-separator.is-style-mjn-short { width: 64px; max-width: 64px; border-top-width: 1px; opacity: 1; margin-left: 0; }
.has-text-align-center + .wp-block-separator.is-style-mjn-short, .wp-block-separator.is-style-mjn-short.aligncenter { margin-left: auto; margin-right: auto; }
.mjn-numbers { counter-reset: mjn; }
.mjn-numbers--cont { counter-reset: none; margin-top: var(--wp--preset--spacing--40) !important; }
.mjn-numbers > .wp-block-column { position: relative; padding-top: 1.5rem; border-top: 1px solid var(--wp--preset--color--border); }
.mjn-numbers > .wp-block-column::before { counter-increment: mjn; content: "0" counter(mjn); font-family: var(--wp--preset--font-family--heading); font-size: 2.8rem; line-height: 1; color: var(--wp--preset--color--accent); display: block; margin-bottom: .6rem; }
.mjn-stat strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: clamp(2.2rem, 4vw, 3.2rem); font-weight: 500; line-height: 1; color: var(--wp--preset--color--accent-strong); }
.has-dark-background-color .mjn-stat strong { color: var(--wp--preset--color--accent); }
.mjn-service-card { height: 100%; transition: border-color .3s, transform .3s, box-shadow .3s; }
.mjn-service-card:hover { border-color: var(--wp--preset--color--accent) !important; transform: translateY(-3px); box-shadow: 0 10px 30px rgba(20, 20, 20, .07); }
.mjn-service-card .wp-block-heading a { color: inherit; text-decoration: none; }
.mjn-service-card .wp-block-heading a::after { content: ""; position: absolute; inset: 0; }
.mjn-service-card { position: relative; }

/* ---------------------------------------------------------------- Treść (blog, strony) */
.wp-block-post-content > * + h2 { margin-top: 2.2em; }
.wp-block-post-content a { text-underline-offset: .18em; }
.mjn-post-card { height: 100%; }
.mjn-post-card .wp-block-post-featured-image img { aspect-ratio: 3 / 2; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.mjn-post-card .wp-block-post-featured-image { overflow: hidden; }
.mjn-post-card:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.mjn-post-card .wp-block-post-title a { text-decoration: none; color: inherit; }
.wp-block-query-pagination { gap: .5rem; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border: 1px solid var(--wp--preset--color--border); text-decoration: none; }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.mjn-page-header { border-bottom: 1px solid var(--wp--preset--color--border); }

/* ---------------------------------------------------------------- Stopka */
.mjn-site-footer a { color: inherit; text-decoration: none; }
.mjn-site-footer a:hover { color: var(--wp--preset--color--accent); text-decoration: underline; }
.mjn-site-footer .wp-block-navigation { --navigation-layout-direction: column; }
.mjn-site-footer .wp-block-navigation .wp-block-navigation-item__content { padding: .3rem 0; text-transform: none; letter-spacing: .01em; font-size: .95rem; font-weight: 400; color: color-mix(in srgb, var(--wp--preset--color--on-dark) 82%, transparent); }
.mjn-site-footer h2, .mjn-site-footer h3 { color: var(--wp--preset--color--on-dark); }
.mjn-site-footer .mjn-contact__list a { font-size: 1rem; }
.mjn-site-footer .mjn-contact__label { color: var(--wp--preset--color--accent); }
.mjn-site-footer .mjn-contact__list { gap: .8rem; }
.mjn-footer-bottom { border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--on-dark) 16%, transparent); }
.mjn-site-footer .wp-block-site-logo img { max-width: 240px; }

/* ---------------------------------------------------------------- 404 / wyszukiwarka */
.mjn-404-code { font-family: var(--wp--preset--font-family--heading); font-size: clamp(5rem, 16vw, 11rem); line-height: 1; color: var(--wp--preset--color--accent); margin: 0; }

@media print { .mjn-site-header, .mjn-site-footer, .wp-block-template-part:has(.mjn-cta) { display: none !important; } }
.has-dark-background-color .mjn-numbers > .wp-block-column { border-top-color: color-mix(in srgb, var(--wp--preset--color--on-dark) 20%, transparent); }

/* Menu „hamburger” już od 1180px (długie pozycje menu nie mieszczą się w jednej linii na tabletach). */
@media (max-width: 1180px) {
	.mjn-site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.mjn-site-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.mjn-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; }
	.mjn-site-header .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 0 1rem !important; min-width: 0 !important; position: static !important; }
}
.mjn-site-header .wp-block-navigation__responsive-container.is-menu-open { --navigation-layout-justification-setting: flex-start; --navigation-layout-justify: flex-start; }
.mjn-site-header .is-menu-open .wp-block-navigation__responsive-container-content, .mjn-site-header .is-menu-open .wp-block-navigation__container, .mjn-site-header .is-menu-open .wp-block-navigation-item, .mjn-site-header .is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; text-align: left; }
.mjn-site-header .is-menu-open .wp-block-navigation__responsive-container-content { padding: 1rem clamp(1rem, 6vw, 4rem); }
.mjn-site-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent-strong); margin-top: .8rem; }
.mjn-hero .wp-block-cover__inner-container > .alignwide > p:not(.is-style-mjn-eyebrow) { max-width: 42rem; }

/* Laptopy i Full HD ze skalowaniem 125–150% (szerokość okna 1181–1439 px): menu zawsze w jednej linii,
   mniejsze logo i odstępy, telefon jako ikona; rozwijane listy zwarte i nie wyższe niż okno. */
.mjn-site-header .wp-block-navigation__container { flex-wrap: nowrap; }
.mjn-site-header .wp-block-navigation-item__content { white-space: nowrap; }
@media (min-width: 1181px) and (max-width: 1439px) {
	.mjn-site-header .wp-block-site-logo img { width: 180px !important; }
	.mjn-site-header .alignwide > .wp-block-group { gap: 1rem !important; }
	.mjn-site-header .wp-block-navigation { --wp--style--block-gap: 1.05rem; gap: 1.05rem; }
	.mjn-site-header .wp-block-navigation__container { gap: 1.05rem !important; }
	.mjn-site-header .wp-block-navigation > .wp-block-navigation__responsive-container .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: .76rem; letter-spacing: .1em; }
	.mjn-header-actions { gap: .5rem; }
	.mjn-header-actions__phone span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.mjn-header-actions__cta { padding: .55em .9em; letter-spacing: .1em; }
}
.mjn-site-header .wp-block-navigation__submenu-container { min-width: 210px !important; padding: .3rem 0; max-height: calc(100vh - var(--wp--custom--header-height, 84px) - 1rem); overflow-y: auto; }
.mjn-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .38rem 1rem !important; font-size: .88rem; line-height: 1.35; }
/* Menu po rozwinięciu (hamburger) – zwarta lista, mieści się na niskich ekranach. */
.mjn-site-header .wp-block-navigation__responsive-container.is-menu-open { padding: .75rem 1rem; overflow-y: auto; }
.mjn-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: .98rem; padding: .3rem 0; }
.mjn-site-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: .9rem; padding: .18rem 0 !important; }
.mjn-site-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { margin-top: .45rem; }
.mjn-site-header .is-menu-open .wp-block-navigation__responsive-container-content { padding: .5rem clamp(1rem, 6vw, 4rem); }
@media (min-width: 600px) and (max-width: 1180px) {
	/* Tablet / wąskie okno: pozycje w dwóch kolumnach zamiast jednej długiej listy. */
	.mjn-site-header .is-menu-open .wp-block-navigation__container { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.5rem; row-gap: 0; width: 100%; }
}
