/* JH Galeria — wspólny wygląd widżetów. Kolory zmienisz w jednym miejscu: zmienne poniżej. */
:root {
	--jh-bg: #0E1120;
	--jh-surface: #161A2E;
	--jh-deep: #0B0E1A;
	--jh-line: #262B45;
	--jh-line2: #3A4060;
	--jh-text: #EEE7DA;
	--jh-soft: #D9D2C4;
	--jh-muted: #B5AFA3;
	--jh-accent: #1CC0E9;
	--jh-gold: #F2C14E;
	--jh-display: 'Bebas Neue', 'Oswald', 'Arial Narrow', sans-serif;
	--jh-body: 'Source Serif 4', Georgia, serif;
	--jh-max: 1240px;
}

/* ---- sekcja ---- */
.jh { background: var(--jh-bg); color: var(--jh-text); font-family: var(--jh-body); font-size: 19px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
.jh *, .jh *::before, .jh *::after { box-sizing: border-box; }
.jh--surface { background: var(--jh-surface); border-top: 1px solid var(--jh-line); border-bottom: 1px solid var(--jh-line); }
.jh--accent { background: var(--jh-accent); color: var(--jh-bg); }
.jh__in { max-width: var(--jh-max); margin: 0 auto; padding: 104px 24px; display: flex; flex-direction: column; gap: 40px; }
.jh--pad-compact > .jh__in { padding-top: 56px; padding-bottom: 56px; }
.jh--pad-none > .jh__in { padding-top: 0; padding-bottom: 0; }
.jh a { color: inherit; }
.jh a:hover { color: #fff; }
.jh--accent a:hover { color: var(--jh-bg); }
.jh h1, .jh h2, .jh h3, .jh p, .jh figure, .jh blockquote, .jh ul, .jh ol, .jh dl, .jh dd { margin: 0; }
.jh h1, .jh h2, .jh h3 { color: inherit; font-family: var(--jh-display); font-weight: 400; text-transform: none; letter-spacing: 0.01em; }
.jh img { display: block; max-width: 100%; border: 0; border-radius: 0; box-shadow: none; }
.jh button { font: inherit; border-radius: 0; box-shadow: none; text-shadow: none; text-transform: none; }
.jh a:focus-visible, .jh button:focus-visible { outline: 3px solid var(--jh-accent); outline-offset: 2px; }
.jh [hidden] { display: none !important; }

/* ---- typografia ---- */
.jh-eyebrow { font-family: var(--jh-display); font-size: 18px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--jh-accent); }
.jh--accent .jh-eyebrow { color: var(--jh-bg); }
.jh-h1 { font-size: clamp(56px, 8vw, 120px); line-height: 0.92; }
.jh-h2 { font-size: clamp(38px, 4.4vw, 52px); line-height: 1; }
.jh-h3 { font-size: 30px; line-height: 1.05; }
.jh-lead { font-size: 22px; line-height: 1.55; color: var(--jh-soft); max-width: 40ch; }
.jh--accent .jh-lead { color: var(--jh-bg); }
.jh-text { color: var(--jh-soft); display: flex; flex-direction: column; gap: 18px; }
.jh-text p { margin: 0; }
.jh-text a { color: var(--jh-accent); }
.jh-muted { color: var(--jh-muted); font-size: 16px; }
.jh-cap { font-size: 15px; color: var(--jh-muted); }
.jh-label { font-family: var(--jh-display); font-size: 16px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--jh-muted); }
.jh-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 48px; }
.jh-head .jh-muted, .jh-head .jh-lead { max-width: 46ch; }

/* ---- przyciski ---- */
.jh-btns { display: flex; flex-wrap: wrap; gap: 14px; }
.jh-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; text-decoration: none; font-family: var(--jh-display); font-size: 20px; letter-spacing: 0.08em; text-transform: uppercase; border: 1.5px solid transparent; transition: background .2s, color .2s, border-color .2s; }
.jh .jh-btn--solid { background: var(--jh-accent); color: var(--jh-bg); }
.jh .jh-btn--solid:hover { background: #fff; color: var(--jh-bg); }
.jh .jh-btn--ghost { border-color: currentColor; color: inherit; }
.jh .jh-btn--ghost:hover { border-color: var(--jh-accent); color: var(--jh-accent); }
.jh .jh-btn--dark { background: var(--jh-bg); color: var(--jh-text); }
.jh .jh-btn--dark:hover { background: #000; color: #fff; }
.jh-link { font-family: var(--jh-display); font-size: 19px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--jh-accent) !important; text-decoration: none; padding: 10px 0; }
.jh-play { fill: var(--jh-accent); flex: 0 0 auto; }

/* ---- nagłówek ---- */
.jh-header { background: #fff; border-bottom: 3px solid var(--jh-accent); font-family: var(--jh-display); }
.jh-header__in { max-width: var(--jh-max); margin: 0 auto; padding: 12px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 32px; }
.jh-header__logo img { display: block; height: 92px; width: auto; max-width: 100%; }
@media (max-width: 700px) { .jh-header__logo img { height: 64px; } }
.jh-header nav { display: flex; flex-wrap: wrap; gap: 0 26px; }
.jh-header nav a { padding: 12px 0; font-size: 21px; letter-spacing: 0.06em; color: #555; text-decoration: none; border-bottom: 2px solid transparent; }
.jh-header nav a:hover { color: #111; }
.jh-header nav a.is-current { color: #111; border-bottom-color: var(--jh-accent); }

/* ---- hero ---- */
.jh-hero-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 56px; align-items: center; }
.jh-hero-split__text { display: flex; flex-direction: column; gap: 26px; }
.jh-hero-split > .jh-label { align-self: end; justify-self: end; }
.jh-hero-split figure { display: flex; flex-direction: column; gap: 12px; }
.jh-hero-split figure img { width: 100%; object-fit: cover; }
.jh-hero-cover { position: relative; background: #05060D; overflow: hidden; }
.jh-hero-cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jh-hero-cover__in { position: relative; max-width: var(--jh-max); margin: 0 auto; padding: 0 24px 64px; min-height: inherit; display: flex; flex-direction: column; justify-content: flex-end; gap: 18px; }
.jh-hero-cover .jh-h1 { font-size: clamp(72px, 12vw, 180px); line-height: 0.85; letter-spacing: 0.04em; }
.jh-hero-cover__sub { font-family: var(--jh-display); font-size: clamp(26px, 3vw, 40px); line-height: 1.05; letter-spacing: 0.06em; }
.jh-hero-cover .jh-lead { color: var(--jh-text); max-width: 36ch; }

/* ---- cytat ---- */
.jh-quote { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 48px; align-items: end; }
.jh-quote blockquote { font-style: italic; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.15; border: 0; padding: 0; background: none; quotes: none; }
.jh-quote blockquote::before, .jh-quote blockquote::after { content: none; }
.jh-quote__side { display: flex; flex-direction: column; gap: 16px; font-size: 18px; color: var(--jh-soft); }

/* ---- tekst + obraz ---- */
.jh-ti { display: flex; flex-wrap: wrap; gap: 48px 72px; align-items: flex-start; }
.jh-ti--right { flex-direction: row-reverse; }
.jh-ti--center { align-items: center; }
.jh-ti__media { flex: 1 1 320px; display: flex; flex-direction: column; gap: 24px; }
.jh-ti__media img { width: 100%; object-fit: cover; }
.jh-ti__body { flex: 999 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 22px; max-width: 70ch; }
.jh-ti__lead { font-size: 26px; line-height: 1.45; }
.jh-facts { display: grid; grid-template-columns: auto 1fr; gap: 10px 20px; font-size: 16px; }
.jh-facts dt { font-family: var(--jh-display); font-size: 15px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--jh-muted); padding-top: 3px; }

/* ---- kafelki ---- */
.jh-cards { display: grid; gap: 28px; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--jh-card-min, 260px)), 1fr)); }
.jh-card { display: flex; flex-direction: column; gap: 14px; text-decoration: none; color: inherit; }
.jh-cards--boxed .jh-card { background: var(--jh-bg); padding-bottom: 24px; }
.jh--dark .jh-cards--boxed .jh-card { background: var(--jh-surface); }
.jh-cards--boxed .jh-card > :not(img) { padding: 0 22px; }
.jh-card img { width: 100%; object-fit: cover; }
.jh-card__no { font-family: var(--jh-display); font-size: 44px; line-height: 1; color: var(--jh-accent); }
.jh-cards--boxed .jh-card__no { font-size: 16px; letter-spacing: 0.18em; }
.jh-card__title { font-family: var(--jh-display); font-size: 28px; line-height: 1.05; color: var(--jh-text); }
.jh-card__text { color: var(--jh-soft); font-size: 17px; }

/* ---- galeria ---- */
.jh-gal { display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--jh-gal-min, 300px)), 1fr)); align-items: start; }
.jh-gal--masonry { display: block; columns: var(--jh-cols, 3) var(--jh-gal-min, 300px); column-gap: 24px; }
.jh-gal--masonry figure { break-inside: avoid; margin-bottom: 24px !important; }
.jh-gal figure { display: flex; flex-direction: column; gap: 10px; }
.jh-gal img { width: 100%; object-fit: cover; }
.jh-gal--masonry img { height: auto; }
.jh-gal--feature { grid-template-columns: 2fr 1fr; }
.jh-gal--feature figure:first-child { grid-row: span 2; }
.jh-gal--feature figure:first-child img { height: 100%; min-height: 320px; }
@media (max-width: 700px) { .jh-gal--feature { grid-template-columns: 1fr; } .jh-gal--feature figure:first-child { grid-row: auto; } }

/* ---- kronika ---- */
.jh-tl { display: flex; flex-direction: column; }
.jh-tl__item { display: flex; flex-wrap: wrap; gap: 24px 56px; padding: 56px 0; border-top: 1px solid var(--jh-line); }
.jh-tl__item:last-child { border-bottom: 1px solid var(--jh-line); }
.jh-tl__text { flex: 1 1 280px; display: flex; flex-direction: column; gap: 12px; }
.jh-tl__label { font-family: var(--jh-display); font-size: 18px; letter-spacing: 0.2em; color: var(--jh-accent); }
.jh-tl__text .jh-text { font-size: 18px; }
.jh-tl__imgs { flex: 999 1 560px; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.jh-tl__imgs img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.jh-tl__imgs img:first-child { grid-column: span 2; }
.jh-tl__imgs--one img:first-child, .jh-tl__imgs img:only-child { grid-column: span 2; }

/* ---- liczby ---- */
.jh-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 32px; }
.jh-stat { display: flex; flex-direction: column; gap: 4px; }
.jh-stat__v { font-family: var(--jh-display); font-size: 60px; line-height: 1; }
.jh-stat--hl .jh-stat__v { color: var(--jh-accent); }
.jh-stat__l { color: var(--jh-muted); font-size: 16px; }

/* ---- lista ---- */
.jh-list-wrap { display: flex; flex-wrap: wrap; gap: 32px 72px; }
.jh-list-wrap > header { flex: 1 1 300px; display: flex; flex-direction: column; gap: 16px; }
.jh-list { flex: 999 1 560px; min-width: 0; list-style: none; padding: 0; display: flex; flex-direction: column; }
.jh-list li { border-top: 1px solid var(--jh-line); }
.jh-list li:last-child { border-bottom: 1px solid var(--jh-line); }
.jh-list__row { display: grid; grid-template-columns: 120px 1fr auto; gap: 24px; align-items: center; min-height: 56px; padding: 14px 0; text-decoration: none; color: inherit; }
.jh-list--nolabel .jh-list__row { grid-template-columns: 1fr auto; }
.jh-list__label { font-family: var(--jh-display); font-size: 24px; color: var(--jh-accent); }
.jh-list__text { font-size: 20px; }

/* ---- wideo ---- */
.jh-feat { display: flex; flex-wrap: wrap; align-items: center; gap: 32px 56px; padding: 48px; background: var(--jh-surface); border: 1px solid var(--jh-line); text-decoration: none; color: inherit; }
.jh-feat__btn { flex: 0 0 auto; width: 112px; height: 112px; border-radius: 50%; background: var(--jh-accent); display: flex; align-items: center; justify-content: center; }
.jh-feat__btn svg { fill: var(--jh-bg); }
.jh-feat__txt { flex: 1 1 420px; display: flex; flex-direction: column; gap: 8px; }
.jh-feat__title { font-family: var(--jh-display); font-size: clamp(40px, 5vw, 72px); line-height: 1; }
.jh-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.jh-tile { display: flex; flex-direction: column; justify-content: space-between; gap: 28px; min-height: 150px; padding: 22px; background: var(--jh-surface); border: 1px solid var(--jh-line); text-decoration: none; color: inherit; transition: border-color .2s; }
.jh-tile:hover { border-color: var(--jh-accent); }
.jh-tile__top { display: flex; justify-content: space-between; align-items: center; font-family: var(--jh-display); font-size: 17px; letter-spacing: 0.16em; color: var(--jh-muted); }
.jh-tile__title { font-family: var(--jh-display); font-size: 26px; line-height: 1.15; }

/* ---- pasek CTA ---- */
.jh-cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 28px; }
.jh-cta__txt { display: flex; flex-direction: column; gap: 10px; max-width: 640px; }
.jh-cta__txt p { font-size: 20px; }

/* ---- stopka ---- */
.jh-footer { background: var(--jh-deep); color: var(--jh-muted); font-family: var(--jh-body); font-size: 16px; }
.jh-footer__in { max-width: var(--jh-max); margin: 0 auto; padding: 48px 24px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px 48px; }
.jh-footer a { color: var(--jh-muted); }
.jh-footer a:hover { color: #fff; }

/* ---- katalog wektorów ---- */
.jh-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.jh-pill, .jhk-btn, .jhk-zooms button { min-height: 44px; padding: 0 16px; cursor: pointer; font-family: var(--jh-display); font-size: 19px; letter-spacing: 0.06em; border: 1.5px solid var(--jh-line2); background: transparent; color: var(--jh-text); }
.jh-pill[aria-pressed="true"], .jhk-zooms button[aria-pressed="true"], .jhk-opt[aria-pressed="true"] { border-color: var(--jh-accent); background: var(--jh-accent); color: var(--jh-bg); }
.jh-pill:hover, .jhk-btn:hover, .jhk-opt:hover, .jhk-zooms button:hover { border-color: var(--jh-accent); }
.jh-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 24px 20px; }
.jh-cat-card { display: flex; flex-direction: column; gap: 10px; }
.jh-cat-open { display: block; width: 100%; padding: 0; border: 0; background: var(--jh-deep); cursor: zoom-in; overflow: hidden; }
.jh-cat-open img { width: 100%; height: auto; aspect-ratio: 1417 / 1984; object-fit: contain; transition: transform .3s; }
.jh-cat-open:hover img { transform: scale(1.03); }
.jh-cat-card figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.jh-cat-card .t { font-family: var(--jh-display); font-size: 21px; }
.jh-cat-card .c { font-family: var(--jh-display); font-size: 16px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--jh-muted); }

.jhk-modal { position: fixed; inset: 0; z-index: 999999; background: rgba(5, 6, 13, 0.92); overflow-y: auto; display: flex; align-items: flex-start; justify-content: center; padding: 32px 16px; }
.jhk-panel { position: relative; width: 100%; max-width: 1160px; background: var(--jh-bg); border: 1px solid var(--jh-line); display: flex; flex-wrap: wrap; }
.jhk-left { flex: 1 1 480px; min-width: 0; background: #05060D; padding: 28px; display: flex; flex-direction: column; gap: 18px; align-items: center; }
.jhk-box { position: relative; overflow: hidden; width: min(100%, calc(74vh * 1417 / 1984)); aspect-ratio: 1417 / 1984; cursor: crosshair; touch-action: none; }
.jhk-box.is-off { cursor: default; touch-action: auto; }
.jhk-box > img { width: 100%; height: 100%; object-fit: contain; }
.jhk-lens { position: absolute; pointer-events: none; overflow: hidden; border-radius: 50%; width: 190px; height: 190px; border: 3px solid var(--jh-accent); box-shadow: 0 10px 40px rgba(0, 0, 0, .6); background: #05060D; display: none; }
.jhk-lens img { position: absolute; max-width: none !important; object-fit: contain; }
.jhk-row { width: 100%; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; }
.jhk-hint { font-size: 14px; color: var(--jh-muted); }
.jhk-zooms { display: flex; gap: 6px; }
.jhk-zooms button { min-width: 44px; min-height: 40px; padding: 0 10px; font-size: 18px; }
.jhk-pos { font-family: var(--jh-display); font-size: 18px; letter-spacing: 0.1em; color: var(--jh-muted); }
.jhk-right { flex: 1 1 380px; min-width: 0; padding: 36px 32px 32px; display: flex; flex-direction: column; gap: 22px; }
.jhk-head { display: flex; flex-direction: column; gap: 6px; padding-right: 48px; }
.jhk-cat { font-family: var(--jh-display); font-size: 17px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--jh-accent); }
.jhk-title { font-size: 60px !important; line-height: 0.95; }
.jhk-desc { font-size: 17px; color: var(--jh-muted); }
.jhk fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.jhk legend { padding: 0 0 10px; font-family: var(--jh-display); font-size: 20px; letter-spacing: 0.1em; color: var(--jh-text); }
.jhk-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.jhk-opts--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
.jhk-opt { min-height: 52px; padding: 8px 14px; cursor: pointer; text-align: left; font-family: var(--jh-body); border: 1.5px solid var(--jh-line2); background: transparent; color: var(--jh-text); }
.jhk-opt b { display: block; font-family: var(--jh-display); font-weight: 400; font-size: 22px; line-height: 1.05; }
.jhk-opt small { display: block; font-size: 13px; line-height: 1.3; opacity: .85; }
.jhk-qty { display: flex; align-items: center; gap: 16px; }
.jhk-qty > span { font-family: var(--jh-display); font-size: 20px; letter-spacing: 0.1em; }
.jhk-step { display: flex; align-items: center; border: 1.5px solid var(--jh-line2); }
.jhk-step button { width: 44px; height: 44px; padding: 0; cursor: pointer; background: transparent; border: 0; color: var(--jh-text); font-size: 22px; }
.jhk-q { min-width: 40px; text-align: center; font-family: var(--jh-display); font-size: 24px; }
.jhk-sum { background: var(--jh-surface); border: 1px solid var(--jh-line); padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.jhk-sumrow { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.jhk-summary { font-size: 16px; color: var(--jh-soft); }
.jhk-price { font-family: var(--jh-display); font-size: 30px; color: var(--jh-gold); }
.jhk-cta { width: 100%; min-height: 54px; font-size: 22px; }
.jhk-info { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; color: var(--jh-muted); }
.jhk-close { position: absolute; top: 12px; right: 12px; width: 48px; height: 48px; padding: 0; cursor: pointer; background: var(--jh-bg); border: 1.5px solid var(--jh-line2); display: flex; align-items: center; justify-content: center; }
.jhk-close svg { stroke: var(--jh-text); }

/* ---- okienko obrazu (galeria) ---- */
.jhl-open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; overflow: hidden; }
.jhl-open img { transition: transform .4s; }
.jhl-open:hover img { transform: scale(1.03); }
.jhl-panel { max-width: 1320px; }
.jhl-left { flex: 3 1 560px; }
.jhl-box { position: relative; overflow: hidden; width: 100%; max-height: 76vh; cursor: crosshair; touch-action: none; }
.jhl-img { display: block; width: 100%; height: 100%; object-fit: contain; }
.jhl-right { flex: 2 1 340px; }
.jhl-status { font-family: var(--jh-display); font-size: 17px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--jh-accent); min-height: 1em; }
.jhl-status.is-sold, .jhl-status.is-private { color: var(--jh-muted); }
.jhl-status.is-reserved { color: var(--jh-gold); }
.jhl-meta { font-size: 17px; color: var(--jh-muted); }
.jhl-facts { display: grid; grid-template-columns: auto 1fr; gap: 10px 20px; font-size: 17px; border-top: 1px solid var(--jh-line); border-bottom: 1px solid var(--jh-line); padding: 16px 0; }
.jhl-facts:empty { display: none; }
.jhl-facts dt { font-family: var(--jh-display); font-size: 16px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--jh-muted); padding-top: 2px; }
.jhl-desc { font-size: 18px; }
.jhl-desc:empty { display: none; }
.jhl-buy { display: flex; flex-direction: column; gap: 12px; }
.jhl-price:empty { display: none; }
.jhl-cta { width: 100%; min-height: 54px; font-size: 22px; }
.jhl-note:empty, .jhl-hint:empty { display: none; }
.jhl .jhk-row .jhk-btn { min-width: 56px; font-size: 22px; }

/* ---- dopasowanie do Elementora: zero odstępów między widżetami JH ---- */
.elementor-widget[class*="elementor-widget-jh-"] { margin: 0 !important; margin-block-end: 0 !important; padding: 0 !important; }
.elementor-widget[class*="elementor-widget-jh-"] > .elementor-widget-container { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.elementor-widget-wrap:has(> .elementor-widget[class*="elementor-widget-jh-"]),
.e-con:has(> .elementor-widget[class*="elementor-widget-jh-"]),
.e-con-inner:has(> .elementor-widget[class*="elementor-widget-jh-"]) { --widgets-spacing: 0px !important; --widgets-spacing-row: 0px !important; --kit-widget-spacing: 0px !important; gap: 0 !important; row-gap: 0 !important; padding: 0 !important; }
.elementor-column:has(.elementor-widget[class*="elementor-widget-jh-"]) > .elementor-widget-wrap { padding: 0 !important; }
.elementor-section:has(.elementor-widget[class*="elementor-widget-jh-"]) > .elementor-container { max-width: none !important; }
/* Bebas Neue ma tylko wersaliki — znaki w indeksie górnym zostają czytelne */
.jh-stat__v sup { font-size: 0.5em; }

/* czytelność tekstu na zdjęciu w hero */
.jh-hero-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 6, 13, 0.72) 0%, rgba(5, 6, 13, 0.35) 45%, rgba(5, 6, 13, 0) 75%), linear-gradient(0deg, rgba(5, 6, 13, 0.55) 0%, rgba(5, 6, 13, 0) 45%); pointer-events: none; }
.jh-hero-cover__in { z-index: 1; text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45); }
.jh-hero-cover .jh-btn { text-shadow: none; }

/* ---- okienko wideo ---- */
.jh-tile__thumb { display: block; margin: -22px -22px 0; aspect-ratio: 16 / 9; overflow: hidden; background: #05060D; }
.jh-tile__thumb img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .2s, transform .4s; }
.jh-tile:hover .jh-tile__thumb img { opacity: 1; transform: scale(1.04); }
.jhv-panel { position: relative; width: 100%; max-width: 1320px; background: var(--jh-bg); border: 1px solid var(--jh-line); display: flex; flex-wrap: wrap; }
.jhv-player { flex: 3 1 640px; min-width: 0; background: #000; display: flex; align-items: center; }
.jhv-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; }
.jhv-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.jhv-info { flex: 1 1 320px; min-width: 0; padding: 40px 28px 28px; display: flex; flex-direction: column; gap: 18px; }
.jhv-head { display: flex; flex-direction: column; gap: 6px; padding-right: 48px; }
.jhv-meta { font-family: var(--jh-display); font-size: 17px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--jh-accent); min-height: 1em; }
.jhv-title { font-size: clamp(34px, 3.4vw, 48px) !important; }
.jhv-desc { font-size: 17px; max-height: 46vh; overflow-y: auto; }
.jhv-desc:empty { display: none; }
.jhv-foot { margin-top: auto; display: flex; flex-direction: column; gap: 14px; }
.jhv-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.jhv-nav[hidden] { display: none; }
.jhv .jhk-btn { min-width: 56px; font-size: 22px; }

/* ===== Slider z paralaksą (jh-slider) ===== */
.jhp { position: relative; height: var(--jhp-h, 760px); min-height: 520px; overflow: hidden; background: #05060D; color: var(--jh-text); isolation: isolate; --jhp-py: 0px; --jhp-ty: 0px; --jhp-fade: 1; --jhp-dir: 1; }
.jhp--full { height: 100vh; height: 100svh; }
.jhp-track { position: absolute; inset: 0; }
.jhp-slide { position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity 1.1s ease, visibility 0s linear 1.1s; }
.jhp-slide.is-active { opacity: 1; visibility: visible; z-index: 2; transition: opacity 1.1s ease, visibility 0s; }
.jhp-slide.is-leaving { visibility: visible; z-index: 1; opacity: 1; }
.jhp-media { position: absolute; left: 0; right: 0; top: -12%; height: 124%; transform: translate3d(0, var(--jhp-py), 0); will-change: transform; overflow: hidden; }
.jhp-media img { width: 100%; height: 100%; object-fit: cover; display: block; transform: translate3d(calc(var(--jhp-dir) * 4%), 0, 0) scale(1.08); transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.jhp-slide.is-active .jhp-media img { transform: translate3d(0, 0, 0) scale(1.02); }
.jhp-slide.is-leaving .jhp-media img { transform: translate3d(calc(var(--jhp-dir) * -3%), 0, 0) scale(1.04); }
.jhp--kb .jhp-slide.is-active .jhp-media img { animation: jhp-kb 14s ease-out forwards; }
@keyframes jhp-kb { from { transform: translate3d(0, 0, 0) scale(1.02); } to { transform: translate3d(-1.5%, -1%, 0) scale(1.12); } }
.jhp-shade { position: absolute; inset: 0; z-index: 3; pointer-events: none; background: linear-gradient(90deg, rgba(5, 6, 13, calc(var(--jhp-ov) + .3)) 0%, rgba(5, 6, 13, var(--jhp-ov)) 40%, rgba(5, 6, 13, 0) 78%), linear-gradient(0deg, rgba(5, 6, 13, .8) 0%, rgba(5, 6, 13, 0) 50%); }
.jhp-text { position: absolute; inset: 0; z-index: 4; display: flex; align-items: flex-end; pointer-events: none; transform: translate3d(0, var(--jhp-ty), 0); opacity: var(--jhp-fade); }
.jhp-text__in { width: 100%; max-width: var(--jh-max); margin: 0 auto; padding: 120px 24px 104px; display: flex; flex-direction: column; gap: 18px; text-shadow: 0 2px 18px rgba(0, 0, 0, .45); pointer-events: auto; }
.jhp-text__in > * { margin: 0; }
.jhp .jhp-title { font-size: clamp(64px, 9.5vw, 150px); line-height: .85; letter-spacing: .04em; }
.jhp .jh-lead { color: var(--jh-text); max-width: 36ch; }
.jhp .jh-btn { text-shadow: none; }
.jhp.is-ready .jhp-text__in > * { animation: jhp-in .9s cubic-bezier(.2, .7, .2, 1) both; }
.jhp.is-ready .jhp-text__in > *:nth-child(2) { animation-delay: .08s; }
.jhp.is-ready .jhp-text__in > *:nth-child(3) { animation-delay: .16s; }
.jhp.is-ready .jhp-text__in > *:nth-child(4) { animation-delay: .24s; }
.jhp.is-ready .jhp-text__in > *:nth-child(5) { animation-delay: .32s; }
@keyframes jhp-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.jhp-cap { position: absolute; right: 24px; bottom: 84px; z-index: 5; font-family: var(--jh-display); font-size: 15px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .85); opacity: 0; transform: translateY(8px); transition: opacity .6s ease .5s, transform .6s ease .5s; white-space: nowrap; text-align: right; }
.jhp-slide.is-active .jhp-cap { opacity: 1; transform: none; }
.jhp-cap a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--jh-accent); }
.jhp-cap a:hover { color: var(--jh-accent); }
.jhp-ui { position: absolute; right: 24px; bottom: 24px; z-index: 6; display: flex; align-items: center; gap: 10px; }
.jhp-ui button { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); background: rgba(5, 6, 13, .45); color: #fff; display: grid; place-items: center; cursor: pointer; padding: 0; backdrop-filter: blur(6px); transition: border-color .2s, background .2s; }
.jhp-ui button:hover, .jhp-ui button:focus-visible { border-color: var(--jh-accent); background: rgba(28, 192, 233, .2); outline: none; }
.jhp-ui svg { stroke: currentColor; fill: none; }
.jhp-ui .jhp-pause svg path { fill: currentColor; stroke: none; }
.jhp-pause .i-play, .jhp.is-paused .jhp-pause .i-pause { display: none; }
.jhp.is-paused .jhp-pause .i-play { display: inline; }
.jhp-count { font-family: var(--jh-display); font-size: 18px; letter-spacing: .1em; color: rgba(255, 255, 255, .7); min-width: 64px; text-align: center; }
.jhp-count b { color: #fff; font-weight: 400; }
.jhp-bar { position: absolute; left: 0; right: 0; bottom: -10px; height: 2px; background: rgba(255, 255, 255, .15); overflow: hidden; }
.jhp-bar i { display: block; height: 100%; background: var(--jh-accent); transform: scaleX(0); transform-origin: left; }
@media (max-width: 767px) {
	.jhp { height: auto; min-height: 88svh; }
	.jhp-text { position: relative; min-height: 88svh; }
	.jhp-text__in { padding: 72px 20px 132px; }
	.jhp .jhp-title { font-size: clamp(64px, 20vw, 110px); }
	.jhp-cap { left: 20px; right: auto; bottom: 80px; text-align: left; font-size: 13px; white-space: normal; max-width: calc(100% - 40px); }
	.jhp-ui { right: auto; left: 20px; bottom: 22px; }
	.jhp-shade { background: linear-gradient(0deg, rgba(5, 6, 13, .92) 0%, rgba(5, 6, 13, calc(var(--jhp-ov) + .1)) 55%, rgba(5, 6, 13, .2) 100%); }
}
@media (prefers-reduced-motion: reduce) {
	.jhp-slide, .jhp-media img, .jhp-cap { transition: none !important; animation: none !important; }
	.jhp-media { transform: none; }
	.jhp.is-ready .jhp-text__in > * { animation: none; }
}

/* ===== Cała praca / pełny ekran (jh-viewer) ===== */
.jhk-views { justify-content: flex-start; }
.jhk-views .jhk-btn { display: inline-flex; align-items: center; gap: 10px; }
.jhk-views .jhk-btn[hidden] { display: none; }
.jhk-box, .jhl-box { cursor: zoom-in; }
html.jhw-lock { overflow: hidden !important; }
.jhw { position: fixed; inset: 0; z-index: 1000001; background: #030409; color: #fff; overscroll-behavior: contain; }
.jhw[hidden] { display: none; }
.jhw-stage { position: absolute; inset: 0; overflow: hidden; touch-action: none; cursor: zoom-in; user-select: none; }
.jhw.is-zoomed .jhw-stage { cursor: grab; }
.jhw.is-grab .jhw-stage { cursor: grabbing; }
.jhw-img { position: absolute; left: 0; top: 0; max-width: none !important; transform-origin: 0 0; will-change: transform; image-rendering: auto; box-shadow: 0 20px 80px rgba(0, 0, 0, .6); }
.jhw.is-loading .jhw-img { opacity: 0; }
.jhw.is-loading .jhw-stage::after { content: ""; position: absolute; left: 50%; top: 50%; width: 36px; height: 36px; margin: -18px; border: 3px solid rgba(255, 255, 255, .2); border-top-color: var(--jh-accent); border-radius: 50%; animation: jhw-spin .8s linear infinite; }
@keyframes jhw-spin { to { transform: rotate(360deg); } }
.jhw-top { position: absolute; left: 0; right: 0; top: 0; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 16px; background: linear-gradient(180deg, rgba(3, 4, 9, .85), rgba(3, 4, 9, 0)); pointer-events: none; }
.jhw-top > * { pointer-events: auto; }
.jhw-name { display: flex; align-items: baseline; gap: 14px; min-width: 0; font-family: var(--jh-display); letter-spacing: .08em; }
.jhw-pos { color: var(--jh-accent); font-size: 18px; }
.jhw-title { font-weight: 400; font-size: 24px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jhw-tools { display: flex; align-items: center; gap: 6px; }
.jhw button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255, 255, 255, .25); border-radius: 50%; background: rgba(5, 6, 13, .55); color: #fff; cursor: pointer; backdrop-filter: blur(6px); }
.jhw button:hover, .jhw button:focus-visible { border-color: var(--jh-accent); color: var(--jh-accent); outline: none; }
.jhw-close { margin-left: 8px; }
.jhw-pct { min-width: 56px; text-align: center; font-family: var(--jh-display); font-size: 17px; letter-spacing: .06em; color: rgba(255, 255, 255, .75); }
.jhw .jhw-nav { position: absolute; top: 50%; width: 52px; height: 52px; margin-top: -26px; }
.jhw-prev { left: 16px; }
.jhw-next { right: 16px; }
.jhw.is-single .jhw-nav, .jhw.is-single .jhw-pos { display: none; }
.jhw-help { position: absolute; left: 0; right: 0; bottom: 12px; margin: 0; text-align: center; font-size: 13px; color: rgba(255, 255, 255, .5); pointer-events: none; }
.jhw.is-zoomed .jhw-help { opacity: 0; transition: opacity .3s; }
@media (max-width: 640px) {
	.jhw-top { flex-direction: column; align-items: stretch; gap: 8px; }
	.jhw-tools { justify-content: space-between; }
	.jhw .jhw-nav { top: auto; bottom: 40px; margin: 0; }
	.jhw-help { display: none; }
}

/* ===== Słowa — teksty (jh-texts) ===== */
.jht { display: flex; flex-direction: column; gap: 28px; }
.jht-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px 48px; }
.jht-head .jh-lead { max-width: 46ch; }
.jht-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--jh-line); }
.jht-bar .jh-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.jht-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.jht-search { position: relative; display: flex; align-items: center; }
.jht-search svg { position: absolute; left: 14px; color: var(--jh-muted); pointer-events: none; }
.jht-search input, .jht-sort { min-height: 44px; border: 1.5px solid var(--jh-line2, #3A4060); background: transparent; color: var(--jh-text); font: inherit; font-size: 17px; border-radius: 0; }
.jht-search input { width: 240px; padding: 0 14px 0 42px; }
.jht-search input:focus, .jht-sort:focus { outline: none; border-color: var(--jh-accent); }
.jht-sortl { display: flex; align-items: center; gap: 10px; font-family: var(--jh-display); font-size: 17px; letter-spacing: .1em; text-transform: uppercase; color: var(--jh-muted); }
.jht-sort { padding: 0 12px; cursor: pointer; }
.jht-sort option { background: var(--jh-bg); color: var(--jh-text); }
.jht-count { margin: -12px 0 0; font-size: 15px; color: var(--jh-muted); }
.jht-count:empty { display: none; }
.jht-grid { list-style: none; margin: 0; padding: 0; columns: 3 320px; column-gap: 24px; }
.jht-card { break-inside: avoid; margin: 0 0 24px; }
.jht-card[hidden] { display: none; }
.jht-card article { background: var(--jh-surface); border: 1px solid var(--jh-line); padding: 28px 28px 22px; display: flex; flex-direction: column; gap: 14px; transition: border-color .2s; }
.jht-card article:hover { border-color: var(--jh-accent); }
.jht-meta { display: block; font-family: var(--jh-display); font-size: 16px; letter-spacing: .16em; text-transform: uppercase; color: var(--jh-accent); }
.jht-title { margin: 4px 0 0; font-size: 34px !important; line-height: 1; }
.jht.is-js .jht-card .jht-title { cursor: pointer; }
.jht-poem { font-size: 18px; line-height: 1.6; color: var(--jh-text); }
.jht-poem p { margin: 0 0 1em; }
.jht-poem p:last-child { margin-bottom: 0; }
.jht.is-js .jht-card:not(.is-short) .jht-poem { max-height: 14.5em; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent); mask-image: linear-gradient(180deg, #000 60%, transparent); }
.jht-note { margin: 0; font-size: 15px; font-style: italic; color: var(--jh-muted); }
.jht.is-js .jht-card .jht-note { display: none; }
.jht-card footer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 4px; }
.jht-tag { font-family: var(--jh-display); font-size: 15px; letter-spacing: .12em; text-transform: uppercase; color: var(--jh-muted); border: 1px solid var(--jh-line); padding: 3px 10px; }
.jht-listen { display: inline-flex; align-items: center; gap: 8px; color: var(--jh-text); font-family: var(--jh-display); font-size: 17px; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.jht-listen:hover { color: var(--jh-accent); }
.jht-read { margin-left: auto; background: none; border: 0; padding: 6px 0; cursor: pointer; color: var(--jh-accent); font-family: var(--jh-display); font-size: 18px; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1.5px solid transparent; }
.jht-read:hover, .jht-read:focus-visible { border-bottom-color: var(--jh-accent); outline: none; }
.jht-read[hidden] { display: none; }
.jht-empty { font-size: 18px; color: var(--jh-muted); }
.jht-empty[hidden] { display: none; }

.jht-modal { align-items: flex-start; }
.jht-reader { position: relative; width: 100%; max-width: 760px; background: var(--jh-bg); border: 1px solid var(--jh-line); padding: 24px clamp(20px, 6vw, 72px) 32px; }
.jht-rtop { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-bottom: 8px; padding-right: 52px; }
.jht-rtop .jhk-close { top: 14px; right: 14px; }
.jht-size { display: flex; gap: 4px; margin-right: auto; }
.jht-size button, .jht-copy { min-height: 38px; padding: 0 12px; cursor: pointer; background: transparent; color: var(--jh-text); border: 1.5px solid var(--jh-line2, #3A4060); font-family: var(--jh-display); font-size: 17px; letter-spacing: .06em; }
.jht-size button:hover, .jht-copy:hover { border-color: var(--jh-accent); }
.jht-rbody { --jht-size: 1; padding: 20px 0 28px; display: flex; flex-direction: column; gap: 16px; }
.jht-rbody header { display: flex; flex-direction: column; gap: 6px; }
.jht-rbody .jht-title { font-size: clamp(44px, 6vw, 68px) !important; line-height: .95; margin: 0; }
.jht-rbody .jht-poem { font-size: calc(21px * var(--jht-size)); line-height: 1.7; margin-top: 12px; }
.jht-rbody .jht-poem p { margin-bottom: 1.3em; }
.jht-rbody .jht-note { margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--jh-line); font-size: 16px; }
.jht-rbody footer { display: flex; gap: 14px; align-items: center; }
.jht-rnav { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 20px; border-top: 1px solid var(--jh-line); }
.jht-rnav[hidden] { display: none; }
@media (max-width: 640px) {
	.jht-tools, .jht-search, .jht-search input { width: 100%; }
	.jht-sortl { width: 100%; justify-content: space-between; }
	.jht-card article { padding: 22px 20px 18px; }
	.jht-rnav .jhk-btn { padding: 0 12px; font-size: 16px; }
}
.jht .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
/* szkice tekstów — widoczne tylko po zalogowaniu */
.jht-card.is-draft article { border-style: dashed; border-color: #E8B931; }
.jht-badge { align-self: flex-start; display: inline-block; margin-bottom: 6px; padding: 3px 10px; background: #E8B931; color: #14161F; font-family: var(--jh-display); font-size: 15px; letter-spacing: .12em; text-transform: uppercase; }
.jht-review { font-size: 14px; line-height: 1.5; color: #F1DFA6; background: rgba(232, 185, 49, .08); border-left: 3px solid #E8B931; padding: 10px 12px; }
.jht-review b { display: block; font-family: var(--jh-display); font-weight: 400; font-size: 15px; letter-spacing: .12em; text-transform: uppercase; color: #E8B931; margin-bottom: 4px; }
.jht-pill-draft { border-color: #E8B931 !important; color: #E8B931 !important; }
.jht-pill-draft[aria-pressed="true"] { background: #E8B931 !important; color: #14161F !important; }
.jht-draftinfo { margin: -8px 0 0; padding: 10px 14px; font-size: 15px; color: #F1DFA6; border: 1px dashed #E8B931; }
.jhk-desc p { margin: 0 0 .8em; }
.jhk-desc p:last-child { margin-bottom: 0; }
.jhk-desc.is-verse { font-size: 18px; line-height: 1.6; color: var(--jh-soft); }
.jhk-desc:empty { display: none; }
/* Słowa — nagłówek z ilustracją */
.jht-head__txt { display: flex; flex-direction: column; gap: 14px; }
.jht-head--ill { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 420px); align-items: center; gap: 40px 64px; }
.jht-head--ill .jh-h2 { font-size: clamp(64px, 9vw, 140px) !important; line-height: .9; }
.jht-ill { margin: 0; position: relative; }
.jht-ill img { display: block; width: 100%; height: auto; border: 1px solid var(--jh-line); box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.jht-ill figcaption { margin-top: 10px; font-size: 14px; color: var(--jh-muted); font-style: italic; }
@media (max-width: 860px) { .jht-head--ill { grid-template-columns: 1fr; } .jht-ill { max-width: 420px; } }
.jhp-film { display: inline-flex; align-items: center; gap: 10px; }
.jhp-film .jh-play { fill: currentColor; width: 18px; height: 18px; }
/* katalog: oryginał sygnowany / plik do druku */
.jhk-mode { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.jhk-mode button { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 14px; cursor: pointer; text-align: left; background: transparent; color: var(--jh-text); border: 1.5px solid var(--jh-line2); }
.jhk-mode button b { font-family: var(--jh-display); font-weight: 400; font-size: 21px; letter-spacing: .04em; }
.jhk-mode button small { font-size: 13px; color: var(--jh-muted); }
.jhk-mode button:hover { border-color: var(--jh-accent); }
.jhk-mode button[aria-pressed="true"] { border-color: var(--jh-accent); background: rgba(28, 192, 233, .12); box-shadow: inset 0 -3px 0 var(--jh-accent); }
.jhk-mode button:disabled { opacity: .45; cursor: not-allowed; }
.jhk-modenote { display: flex; flex-direction: column; gap: 6px; font-size: 15px; line-height: 1.5; color: var(--jh-soft); }
.jhk-modenote p { margin: 0; }
.jhk-edition { font-family: var(--jh-display); font-size: 18px !important; letter-spacing: .1em; text-transform: uppercase; color: var(--jh-accent); }
.jhk-edition:empty { display: none; }
.jhk-edition.is-low { color: #E8B931; }
.jhk-modal.is-dig .jhk-only-orig, .jhk-modal:not(.is-dig) .jhk-only-dig { display: none; }
