:root {
    --hm-color-primary-strong: var(--hm-color-primary-dk, #075f6a);
    --hm-color-secondary: var(--global-palette2, #23515a);
    --hm-color-success: #19764b;
    --hm-color-warning: #9a5d00;
    --hm-color-danger: #b42318;
    --hm-color-surface-soft: color-mix(in srgb, var(--hm-color-surface, #f5f7f7) 72%, #fff);
    --hm-font-heading: var(--hm-font-head, inherit);
    --hm-font-body: var(--hm-font-base, inherit);
    --hm-space-1: .375rem;
    --hm-space-2: .625rem;
    --hm-space-3: .875rem;
    --hm-space-4: 1.25rem;
    --hm-space-5: 1.75rem;
    --hm-space-6: 2.5rem;
    --hm-space-7: 3.75rem;
    --hm-space-8: 5.5rem;
    --hm-radius-md: var(--hm-ui-radius, 16px);
    --hm-radius-lg: 24px;
    --hm-radius-pill: 999px;
    --hm-shadow-sm: 0 1px 2px rgba(15, 42, 46, .07), 0 7px 22px rgba(15, 42, 46, .07);
    --hm-shadow-md: 0 10px 34px rgba(15, 42, 46, .11);
    --hm-shadow-lg: 0 22px 70px rgba(15, 42, 46, .14);
    --hm-content: min(100% - 2rem, 760px);
    /* 0.57.3: poszerzone sekcje "wide" - procentowo wzgledem viewportu zamiast
       sztywnego px cap, wiec na duzych monitorach naprawde wykorzystuja szerokosc
       ekranu (wczesniej sztywne 1240px dawalo ogromne puste marginesy na 2K/4K). */
    --hm-wide: min(92%, 1800px);
    --hm-transition-fast: 160ms;
    --hm-transition-normal: 280ms;
    --hm-ease-standard: cubic-bezier(.2, .8, .2, 1);
}

.hm-block,
.hm-block * {
    box-sizing: border-box;
}

.hm-block {
    font-family: var(--hm-font-body, inherit);
    color: var(--hm-color-ink, #1f2a2e);
}

.hm-block :where(h1, h2, h3, h4, h5, h6) {
    font-family: var(--hm-font-heading, inherit);
    color: inherit;
    text-wrap: balance;
}

.hm-block :where(p, ul, ol) {
    text-wrap: pretty;
}

.hm-width-content > .hm-section__inner,
.hm-width-content > .hm-hero__inner {
    width: var(--hm-content);
    margin-inline: auto;
}

.hm-width-wide > .hm-section__inner,
.hm-width-wide > .hm-hero__inner {
    width: var(--hm-wide);
    margin-inline: auto;
}

.hm-width-full > .hm-section__inner,
.hm-width-full > .hm-hero__inner {
    width: 100%;
}

/* 0.69.0: skala odstepow pionowych sekcji. Kazda klasa ustawia wylacznie
   zmienne CSS, wiec caly rytm strony jest w jednym miejscu, a presety
   sa responsywne same z siebie (clamp z jednostka vw). Domyslny "md" jest
   wyraznie ciasniejszy niz stary sztywny clamp(2.75rem, 6vw, 6.5rem) -
   poprzednie zachowanie odpowiada dzis presetowi "xl". */
.hm-section {
    position: relative;
    display: flex;
    width: 100%;
    min-height: var(--hm-block-min-h-desktop, auto);
    --hm-pad: clamp(1.75rem, 3.2vw, 3rem);
    --hm-pad-t: var(--hm-pad);
    --hm-pad-b: var(--hm-pad);
    padding-top: var(--hm-pad-t);
    padding-bottom: var(--hm-pad-b);
    isolation: isolate;
}

.hm-space-none { --hm-pad: 0px; }
.hm-space-xs { --hm-pad: clamp(.5rem, 1.2vw, 1rem); }
.hm-space-sm { --hm-pad: clamp(1rem, 2vw, 1.75rem); }
.hm-space-md { --hm-pad: clamp(1.75rem, 3.2vw, 3rem); }
.hm-space-lg { --hm-pad: clamp(2.5rem, 4.6vw, 4.5rem); }
.hm-space-xl { --hm-pad: clamp(3.25rem, 6vw, 6.5rem); }

.hm-space-t-none { --hm-pad-t: 0px; }
.hm-space-t-xs { --hm-pad-t: clamp(.5rem, 1.2vw, 1rem); }
.hm-space-t-sm { --hm-pad-t: clamp(1rem, 2vw, 1.75rem); }
.hm-space-t-md { --hm-pad-t: clamp(1.75rem, 3.2vw, 3rem); }
.hm-space-t-lg { --hm-pad-t: clamp(2.5rem, 4.6vw, 4.5rem); }
.hm-space-t-xl { --hm-pad-t: clamp(3.25rem, 6vw, 6.5rem); }

.hm-space-b-none { --hm-pad-b: 0px; }
.hm-space-b-xs { --hm-pad-b: clamp(.5rem, 1.2vw, 1rem); }
.hm-space-b-sm { --hm-pad-b: clamp(1rem, 2vw, 1.75rem); }
.hm-space-b-md { --hm-pad-b: clamp(1.75rem, 3.2vw, 3rem); }
.hm-space-b-lg { --hm-pad-b: clamp(2.5rem, 4.6vw, 4.5rem); }
.hm-space-b-xl { --hm-pad-b: clamp(3.25rem, 6vw, 6.5rem); }

.hm-section__inner {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.hm-valign-top { align-items: flex-start; }
.hm-valign-center { align-items: center; }
.hm-valign-bottom { align-items: flex-end; }

.hm-eyebrow {
    margin: 0 0 var(--hm-space-3);
    color: var(--hm-color-primary, #0c7d8d);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.25;
    text-transform: uppercase;
}

/* 0.67.0: w hero nadtytul renderuje sie jako pelna plakietka (czerwone tlo,
   bialy tekst), a nie sam kolorowy tekst - zgodnie z makieta. Selektor jest
   celowo zawezony do hero, wiec zwykle uzycie .hm-eyebrow w sekcjach i
   page-header (sam kolorowy tekst) pozostaje bez zmian.
   0.67.2: dolozono !important do tla/koloru (zapisany wczesniej w tresci
   akapit moze miec wlasna kolorystyke z palety Kadence).
   0.67.3: to nie byl problem specyficznosci/!important - !important
   dzialal poprawnie (widac to w devtools), ale zmienna --hm-color-accent
   NIE jest niezalezna: Halmo_Kadence_Bridge mapuje ja na motyw jako
   var(--hm-color-accent-ov,var(--global-palette3,#f2714e)), a na tej
   stronie paleta Kadence ma --global-palette3 ustawione na ciemny
   granat/atrament, wiec plakietka dziedziczyla ten kolor zamiast czerwieni
   marki. Uzywamy wiec dedykowanego tokenu, ktory NIE przechodzi przez
   mapowanie palety motywu - domyslnie zawsze czerwony, niezaleznie od
   ustawien Kadence na danej instalacji. */
.hm-hero__inner .hm-eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    margin: 0;
    padding: .5rem 1.05rem;
    border-radius: 8px;
    background: var(--hm-color-badge, #e63b3b) !important;
    color: #fff !important;
    font-size: clamp(.72rem, .68rem + .2vw, .82rem);
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.3;
    text-align: left;
    text-transform: uppercase;
    white-space: normal;
}

.hm-lead {
    max-width: 66ch;
    font-size: clamp(1.05rem, 1.5vw, 1.25rem);
    line-height: 1.65;
    color: var(--hm-color-muted, #5b6b70);
}

.hm-section > .hm-section__inner > h2:not([style*="color"]) {
    color: var(--hm-color-ink, #1f2a2e);
}
.hm-section > .hm-section__inner > h2 {
    margin-block: 0 var(--hm-space-5);
    font-size: clamp(1.55rem, 2.6vw, 2.15rem);
    line-height: 1.16;
    letter-spacing: -.022em;
}
.hm-section > .hm-section__inner > .hm-eyebrow + h2 { margin-top: 0; }
.hm-section > .hm-section__inner > h2::after {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    margin-top: var(--hm-space-3);
    border-radius: var(--hm-radius-pill);
    background: var(--hm-color-primary, #0c7d8d);
}
.hm-block.is-style-dark.hm-section > .hm-section__inner > h2::after { background: currentColor; opacity: .85; }

.hm-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr);
    min-height: var(--hm-block-min-h-desktop, 520px);
    overflow: clip;
    border-radius: inherit;
    background: var(--hm-color-surface-soft, #f5f7f7);
    isolation: isolate;
}

.hm-hero__inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    gap: clamp(.6rem, 1.4vw, 1rem);
    padding: clamp(2.5rem, 6vw, 6.5rem) clamp(1.25rem, 4vw, 4rem);
}

/* 0.67.2: poprzednia proba (margin-block: 0 bez !important) nie wygrywala
   z marginesami narzucanymi przez style motywu Kadence na naglowkach/
   akapitach - efekt byl identyczny jak przed poprawka. To DOKLADNIE ten sam
   problem i to samo rozwiazanie, co juz zastosowano w page-header (patrz
   komentarz "Kadence i style motywu nie moga dodawac wlasnych marginesow"
   przy .hm-page-header__meta/.hm-page-header__content ponizej) - marginesy
   w kontenerze flex nie zwijaja sie, wiec kazdy narzucony margines po prostu
   dolicza sie do "gap". Wymuszamy zerowy margines pionowy z !important. */
.hm-hero__inner > * { margin-block: 0 !important; }
.hm-hero__inner h1,
.hm-hero__inner h2 {
    max-width: 16ch;
    font-size: var(--hm-title-size-desktop, clamp(2.35rem, 5vw, 5.25rem));
    line-height: .98;
    letter-spacing: -.045em;
}
.hm-hero__inner .hm-lead,
.hm-hero__inner > p:not(.hm-eyebrow) {
    font-size: var(--hm-text-size-desktop, clamp(1.05rem, 1.45vw, 1.24rem));
}

.hm-hero__media {
    position: relative;
    z-index: 0;
    grid-column: 2;
    grid-row: 1;
    min-height: 420px;
    background-position: center;
    background-size: cover;
    overflow: hidden;
}

.hm-hero__media--placeholder {
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--hm-color-accent, #f2714e) 24%, transparent) 0 13%, transparent 14%),
        linear-gradient(135deg, color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 16%, #fff), color-mix(in srgb, var(--hm-color-surface, #f5f7f7) 86%, #fff));
}

.hm-hero__media--placeholder::before,
.hm-hero__media--placeholder::after,
.hm-hero__media--placeholder span {
    content: "";
    position: absolute;
    border: 1px solid color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 22%, transparent);
    border-radius: 40% 60% 55% 45%;
}
.hm-hero__media--placeholder::before { width: 55%; aspect-ratio: 1; }
.hm-hero__media--placeholder::after { width: 32%; aspect-ratio: 1; transform: translate(45%, -40%); }

.hm-hero__overlay {
    position: absolute;
    z-index: 1;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(var(--hm-overlay-rgb, 5, 24, 27), var(--hm-overlay-opacity, 0)) 0%, transparent 70%);
}

.hm-hero--media-left .hm-hero__media { grid-column: 1; }
.hm-hero--media-left .hm-hero__inner { grid-column: 2; }

/* Full-bleed cinematic hero (layout: center) */
.hm-hero--center {
    display: block;
    min-height: var(--hm-block-min-h-desktop, 600px);
}
.hm-hero--center .hm-hero__media { position: absolute; inset: 0; min-height: 100%; }
.hm-hero--center .hm-hero__overlay {
    background:
        linear-gradient(180deg, rgba(var(--hm-overlay-rgb, 5, 24, 27), .5) 0%, rgba(var(--hm-overlay-rgb, 5, 24, 27), 0) 26%, rgba(var(--hm-overlay-rgb, 5, 24, 27), 0) 52%, rgba(var(--hm-overlay-rgb, 5, 24, 27), .78) 100%),
        radial-gradient(130% 90% at 50% 8%, transparent 42%, rgba(var(--hm-overlay-rgb, 5, 24, 27), .34) 100%),
        rgba(var(--hm-overlay-rgb, 5, 24, 27), var(--hm-overlay-opacity, .42));
}
.hm-hero--center .hm-hero__inner {
    min-height: inherit;
    align-items: center;
    justify-content: center;
    gap: clamp(.6rem, 1.4vw, 1rem);
    text-align: center;
    color: #fff;
    padding-block: clamp(4rem, 12vh, 8rem);
}
.hm-hero--center .hm-hero__inner > * { position: relative; z-index: 3; margin-inline: auto; }
.hm-hero--center .hm-hero__inner h1,
.hm-hero--center .hm-hero__inner h2 {
    max-width: 20ch;
    text-shadow: 0 2px 40px rgba(5, 24, 27, .35);
}
.hm-hero--center .hm-hero__inner .hm-lead,
.hm-hero--center .hm-hero__inner > p:not(.hm-eyebrow) {
    max-width: 60ch;
    color: color-mix(in srgb, #fff 90%, transparent);
}
.hm-hero--center .hm-hero__inner .wp-block-buttons { margin-top: clamp(.5rem, 1.5vw, 1rem) !important; justify-content: center; }

/* Full-bleed hero with the content anchored bottom-left (layout: cover).
   0.67.0: to reprodukuje wzor z czerwonym nadtytulem - zdjecie na cala
   szerokosc, ciemniejsza nakladka u dolu dla czytelnosci, tresc trzymana
   po lewej zamiast wysrodkowana jak w wariancie "center". */
.hm-hero--cover {
    display: block;
    min-height: var(--hm-block-min-h-desktop, 600px);
}
.hm-hero--cover .hm-hero__media { position: absolute; inset: 0; min-height: 100%; }
.hm-hero--cover .hm-hero__overlay {
    background:
        linear-gradient(180deg, rgba(var(--hm-overlay-rgb, 5, 24, 27), .55) 0%, rgba(var(--hm-overlay-rgb, 5, 24, 27), .04) 30%, rgba(var(--hm-overlay-rgb, 5, 24, 27), 0) 48%, rgba(var(--hm-overlay-rgb, 5, 24, 27), .85) 100%),
        radial-gradient(120% 90% at 0% 0%, transparent 46%, rgba(var(--hm-overlay-rgb, 5, 24, 27), .3) 100%),
        rgba(var(--hm-overlay-rgb, 5, 24, 27), var(--hm-overlay-opacity, .3));
}
.hm-hero--cover .hm-hero__inner {
    min-height: inherit;
    align-items: flex-start;
    justify-content: flex-end;
    gap: clamp(.7rem, 1.4vw, 1.05rem);
    text-align: left;
    color: #fff;
    padding-block: clamp(3rem, 10vh, 6rem);
}
.hm-hero--cover .hm-hero__inner > * { position: relative; z-index: 3; margin-inline: 0; }
.hm-hero--cover .hm-hero__inner h1,
.hm-hero--cover .hm-hero__inner h2 {
    max-width: 18ch;
    text-shadow: 0 2px 40px rgba(5, 24, 27, .35);
}
.hm-hero--cover .hm-hero__inner .hm-lead,
.hm-hero--cover .hm-hero__inner > p:not(.hm-eyebrow) {
    max-width: 62ch;
    color: color-mix(in srgb, #fff 92%, transparent);
}
.hm-hero--cover .hm-hero__inner .wp-block-buttons { margin-top: clamp(.5rem, 1.5vw, 1rem) !important; justify-content: flex-start; }

/* Full viewport height */
.hm-hero--full-vh,
.hm-hero--full-vh.hm-hero--center,
.hm-hero--full-vh.hm-hero--cover { min-height: 100vh; min-height: 100svh; }
.hm-hero--full-vh.hm-hero--center .hm-hero__inner,
.hm-hero--full-vh.hm-hero--cover .hm-hero__inner { min-height: 100vh; min-height: 100svh; }

/* Ambient slow zoom on the background photo */
.hm-hero--kenburns .hm-hero__media:not(.hm-hero__media--placeholder) {
    animation: hm-kenburns 22s var(--hm-ease-standard) infinite alternate;
    transform-origin: 50% 42%;
    will-change: transform;
}
@keyframes hm-kenburns {
    from { transform: scale(1.02); }
    to { transform: scale(1.12); }
}

/* Scroll cue */
.hm-hero__scroll {
    position: absolute;
    z-index: 4;
    left: 50%;
    bottom: clamp(1.1rem, 3vh, 2.2rem);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    transform: translateX(-50%);
    border: 1px solid rgba(255, 255, 255, .45);
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    cursor: pointer;
    backdrop-filter: blur(6px);
    transition: background var(--hm-transition-fast) ease, border-color var(--hm-transition-fast) ease, transform var(--hm-transition-fast) ease;
    animation: hm-cue-bob 2.4s ease-in-out infinite;
}
.hm-hero__scroll:hover { background: rgba(255, 255, 255, .2); border-color: rgba(255, 255, 255, .8); }
.hm-hero__scroll:focus-visible { outline: 3px solid rgba(255, 255, 255, .7); outline-offset: 3px; }
.hm-hero__scroll svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hm-hero__scroll-dot { display: none; }
@keyframes hm-cue-bob {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(7px); }
}

/* Staggered intro reveal (on load) */
.hm-hero--intro .hm-hero__inner > * {
    animation: hm-hero-in 900ms var(--hm-ease-standard) both;
}
.hm-hero--intro .hm-hero__inner > *:nth-child(1) { animation-delay: 120ms; }
.hm-hero--intro .hm-hero__inner > *:nth-child(2) { animation-delay: 240ms; }
.hm-hero--intro .hm-hero__inner > *:nth-child(3) { animation-delay: 380ms; }
.hm-hero--intro .hm-hero__inner > *:nth-child(4) { animation-delay: 520ms; }
.hm-hero--intro .hm-hero__inner > *:nth-child(n+5) { animation-delay: 640ms; }
@keyframes hm-hero-in {
    from { opacity: 0; transform: translateY(22px); }
    to { opacity: 1; transform: none; }
}

.hm-card,
.hm-stat,
.hm-notice,
.hm-step,
.hm-timeline-item,
.hm-quote,
.hm-document-item,
.hm-faq-item {
    --hm-card-bg: var(--hm-color-bg, #fff);
    position: relative;
    min-width: 0;
    border: 1px solid var(--hm-color-line, #e3e8ea);
    border-radius: var(--hm-radius-md, 16px);
    background: var(--hm-card-bg);
    box-shadow: var(--hm-shadow-sm);
}

.hm-card {
    display: flex;
    flex-direction: column;
    gap: var(--hm-space-3);
    min-height: 100%;
    padding: clamp(1.15rem, 2.5vw, 1.65rem);
    color: inherit;
    text-decoration: none;
    transition: transform var(--hm-transition-normal) var(--hm-ease-standard), box-shadow var(--hm-transition-normal) var(--hm-ease-standard), border-color var(--hm-transition-fast) ease;
}

.hm-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--hm-space-3);
}

.hm-card__icon,
.hm-stat__icon,
.hm-notice__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--hm-icon-size-desktop, 48px);
    height: var(--hm-icon-size-desktop, 48px);
    border-radius: 13px;
    background: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 10%, #fff);
    color: var(--hm-color-primary, #0c7d8d);
}

.hm-card__icon svg,
.hm-stat__icon svg,
.hm-notice__icon svg,
.hm-document-item__icon svg {
    width: 55%;
    height: 55%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hm-card__badge {
    display: inline-flex;
    padding: .35rem .65rem;
    border-radius: var(--hm-radius-pill);
    background: color-mix(in srgb, var(--hm-color-accent, #f2714e) 14%, #fff);
    color: color-mix(in srgb, var(--hm-color-accent, #f2714e) 76%, #000);
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.hm-card__title,
.hm-notice__title,
.hm-step__title,
.hm-timeline-item__title,
.hm-document-item__title {
    margin: 0;
    font-size: var(--hm-title-size-desktop, clamp(1.15rem, 1.6vw, 1.45rem));
    line-height: 1.18;
    letter-spacing: -.02em;
}

.hm-card__text,
.hm-stat__text,
.hm-notice__text,
.hm-step__text,
.hm-timeline-item__text {
    color: var(--hm-color-muted, #5b6b70);
    font-size: var(--hm-text-size-desktop, 1rem);
    line-height: 1.62;
}
.hm-card__text > :first-child,
.hm-notice__text > :first-child { margin-top: 0; }
.hm-card__text > :last-child,
.hm-notice__text > :last-child { margin-bottom: 0; }

.hm-card__link,
.hm-notice__link,
.hm-step__link,
.hm-document-item__link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    width: fit-content;
    margin-top: auto;
    color: var(--hm-color-primary, #0c7d8d);
    font-weight: 750;
    text-decoration: none;
}

.hm-info-card.hm-icon-left {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
}
.hm-info-card .hm-card__body { display: flex; flex-direction: column; gap: var(--hm-space-3); min-width: 0; }

.hm-stat {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas: "icon value" "icon label" "text text";
    gap: .2rem 1rem;
    padding: clamp(1.1rem, 2.4vw, 1.65rem);
}
.hm-stat__icon { grid-area: icon; }
.hm-stat__value {
    grid-area: value;
    font-family: var(--hm-font-heading, inherit);
    font-size: var(--hm-title-size-desktop, clamp(1.9rem, 4vw, 3.25rem));
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.04em;
}
.hm-stat__value span { font-size: .5em; letter-spacing: 0; }
.hm-stat__value .hm-stat__num { font-size: inherit; letter-spacing: inherit; font-variant-numeric: tabular-nums; }
.hm-stat__label { grid-area: label; font-weight: 750; }
.hm-stat__text { grid-area: text; margin-top: var(--hm-space-2); }

/* ==========================================================================
   0.69.0: Karta kontaktowa - przebudowany wyglad.
   Zalozenia: naglowek (ikona + nazwa dzialu) w jednym rzedzie zamiast ikony
   wiszacej nad tytulem, jedna spojna lista "opis / numer" dla telefonu
   glownego, e-maila i wszystkich numerow dodatkowych (wczesniej byly to trzy
   rozne uklady w jednej karcie), caly wiersz klikalny, numery w tabular-nums
   z wyrownaniem do prawej krawedzi - dzieki temu kilka kart obok siebie
   tworzy czytelna kolumne numerow zamiast przypadkowego rozstrzalu.
   ========================================================================== */
.hm-contact-card {
    gap: 0;
    padding: clamp(1.25rem, 2.2vw, 1.6rem);
}

.hm-contact-card__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--hm-space-3);
}
.hm-contact-card .hm-card__icon {
    width: var(--hm-icon-size-desktop, 40px);
    height: var(--hm-icon-size-desktop, 40px);
    border-radius: 11px;
}
.hm-contact-card__headings { min-width: 0; }

/* 0.70.0: `!important` jest tu konieczne z dokladnie tego samego powodu co w
   hero (0.67.2) i w page-header - Kadence narzuca naglowkom H3 wlasny
   font-size, line-height i text-transform, ktore wygrywaly z regula bloku.
   Efekt bez !important: tytul zostawal wersalikami w rozmiarze motywu, przez
   co dlugie nazwy dzialow nie miescily sie w jednej linii. Zmienne
   --hm-title-size-* nadal dzialaja - suwaki typografii maja pierwszenstwo. */
.hm-contact-card .hm-card__title {
    font-size: var(--hm-title-size-desktop, clamp(1.02rem, 1.05vw, 1.18rem)) !important;
    font-weight: 800;
    line-height: 1.25 !important;
    letter-spacing: -.005em;
    text-wrap: balance;
    /* 0.70.0: `hyphens: auto` dzielilo nazwy w srodku sylab ("DZIAL EKSPLOATA-
       CYJNO-TECHNICZNY"). `manual` lamie wylacznie na istniejacym mysliku, wiec
       "eksploatacyjno-techniczny" dzieli sie w naturalnym miejscu. */
    hyphens: manual;
    overflow-wrap: break-word;
}
.hm-contact-card--case-normal .hm-card__title { text-transform: none !important; }
.hm-contact-card--case-upper .hm-card__title {
    text-transform: uppercase !important;
    letter-spacing: .005em;
    font-size: var(--hm-title-size-desktop, clamp(.94rem, .95vw, 1.06rem)) !important;
}

/* Uklad "stacked": ikona nad nazwa, dzieki czemu tytul dostaje pelna szerokosc
   karty zamiast tracic ~55px na kolumne ikony - dla dlugich nazw dzialow
   ("Dzial eksploatacyjno-techniczny") czesto to wlasnie decyduje o tym, czy
   nazwa miesci sie w jednej linii. */
.hm-contact-card--head-stacked .hm-contact-card__head {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--hm-space-2);
}
.hm-contact-card__role {
    margin-top: .18rem;
    color: var(--hm-color-muted, #5b6b70);
    font-size: .86rem;
    line-height: 1.4;
}

.hm-contact-card__list {
    display: flex;
    flex-direction: column;
    margin: var(--hm-space-4) 0 0;
    padding: 0;
    list-style: none;
}
.hm-contact-card__row { margin: 0; }
.hm-contact-card__row + .hm-contact-card__row { border-top: 1px solid color-mix(in srgb, var(--hm-color-line, #e3e8ea) 70%, transparent); }

.hm-contact-card__row-link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .35rem 1rem;
    padding: .62rem .55rem;
    margin-inline: -.55rem;
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
    transition: background-color var(--hm-transition-fast) ease;
}
.hm-contact-card__row-link:hover,
.hm-contact-card__row-link:focus-visible {
    background: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 6%, transparent);
}
.hm-contact-card__row-link:focus-visible { outline: 2px solid var(--hm-color-primary, #0c7d8d); outline-offset: 1px; }

.hm-contact-card__row-label {
    min-width: 0;
    color: var(--hm-color-muted, #5b6b70);
    font-size: .875rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.hm-contact-card__row-value {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    justify-self: end;
    color: var(--hm-color-primary-strong, #075f6a);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -.01em;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
}
.hm-contact-card__row-link:hover .hm-contact-card__row-text,
.hm-contact-card__row-link:focus-visible .hm-contact-card__row-text { text-decoration: underline; text-underline-offset: 3px; }

.hm-contact-card__row-icon {
    display: inline-flex;
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    color: var(--hm-color-primary, #0c7d8d);
    opacity: .75;
}
.hm-contact-card__row-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.hm-contact-card__row--primary .hm-contact-card__row-value { font-size: 1.08rem; }
.hm-contact-card__row--email .hm-contact-card__row-value {
    font-size: .95rem;
    font-weight: 750;
    white-space: normal;
    overflow-wrap: anywhere;
}

.hm-contact-card__hours {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-top: auto;
    padding-top: var(--hm-space-3);
    border-top: 1px solid var(--hm-color-line, #e3e8ea);
    color: var(--hm-color-muted, #5b6b70);
    font-size: .86rem;
}
.hm-contact-card__list + .hm-contact-card__hours { margin-top: var(--hm-space-4); }
.hm-contact-card__hours-icon {
    display: inline-flex;
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
}
.hm-contact-card__hours-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.hm-contact-card__hours > span:last-child > :first-child { margin-top: 0; }
.hm-contact-card__hours > span:last-child > :last-child { margin-bottom: 0; }

/* Wariant "flat": karta bez ramki i cienia - do uzycia, gdy kilka kontaktow
   stoi na wspolnym, jasnym tle sekcji i pudelka robily sie zbyt ciezkie. */
.hm-contact-card--flat {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
    padding-inline: 0;
}
.hm-contact-card--flat:hover { box-shadow: none; transform: none; }


/* ==========================================================================
   0.70.0: halmo/panel - ramka na dowolne bloki wewnetrzne.
   Dzieli tokeny z .hm-card, wiec opakowany blok (np. halmo/godziny) wyglada
   jak reszta kart na stronie zamiast jak luzny fragment tresci.
   ========================================================================== */
.hm-panel {
    --hm-panel-pad: clamp(1.25rem, 2.4vw, 1.75rem);
    position: relative;
    min-width: 0;
    padding: var(--hm-panel-pad);
    border: 1px solid var(--hm-color-line, #e3e8ea);
    border-radius: var(--hm-radius-md, 16px);
    background: var(--hm-color-bg, #fff);
    box-shadow: var(--hm-shadow-sm);
}

.hm-panel--compact { --hm-panel-pad: clamp(.85rem, 1.6vw, 1.15rem); }
.hm-panel--roomy { --hm-panel-pad: clamp(1.75rem, 3.4vw, 2.75rem); }

/* "Soft" - bez ramki i cienia, delikatne tlo. Dobre, gdy ramka ma tylko
   zgrupowac tresc, a nie wybijac ja z tla sekcji. */
.hm-panel--soft {
    border-color: transparent;
    background: var(--hm-color-surface-soft, #f7f9f9);
    box-shadow: none;
}

/* "Outline" - sama ramka, tlo przezroczyste (przepuszcza tlo sekcji). */
.hm-panel--outline {
    background: transparent;
    box-shadow: none;
}

/* "Accent" - pasek w kolorze marki przy lewej krawedzi. */
.hm-panel--accent {
    border-color: transparent;
    background: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 5%, #fff);
    box-shadow: none;
    border-left: 3px solid var(--hm-color-primary, #0c7d8d);
    border-start-start-radius: 4px;
    border-end-start-radius: 4px;
}

.hm-panel__head {
    display: flex;
    align-items: center;
    gap: var(--hm-space-3);
    margin-bottom: var(--hm-space-4);
    padding-bottom: var(--hm-space-3);
    border-bottom: 1px solid color-mix(in srgb, var(--hm-color-line, #e3e8ea) 70%, transparent);
}

.hm-panel__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--hm-icon-size-desktop, 36px);
    height: var(--hm-icon-size-desktop, 36px);
    border-radius: 10px;
    background: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 10%, #fff);
    color: var(--hm-color-primary, #0c7d8d);
}
.hm-panel__icon svg {
    width: 55%;
    height: 55%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Ten sam mechanizm co przy karcie kontaktowej: Kadence narzuca naglowkom
   wlasny rozmiar i marginesy, wiec tu tez potrzebne jest !important. */
.hm-panel__title {
    margin: 0 !important;
    font-size: var(--hm-title-size-desktop, clamp(1.02rem, 1.1vw, 1.2rem)) !important;
    font-weight: 800;
    line-height: 1.25 !important;
    letter-spacing: -.01em;
    text-transform: none !important;
    text-wrap: balance;
}

.hm-panel__body { min-width: 0; }
.hm-panel__body > :first-child { margin-top: 0; }
.hm-panel__body > :last-child { margin-bottom: 0; }

/* Blok godzin (halmo/godziny) ma wlasne, zewnetrzne marginesy - w ramce sa
   zbedne, bo odstep daje juz padding panelu. */
.hm-panel__body > .halmo-blk--godziny { margin-block: 0; }

.hm-block.is-style-dark.hm-panel {
    border-color: rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .05);
}
.hm-block.is-style-dark .hm-panel__head { border-bottom-color: rgba(255, 255, 255, .14); }

.hm-cta {
    padding: clamp(1.75rem, 4vw, 3.5rem);
    border-radius: var(--hm-radius-lg, 24px);
    background: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 7%, #fff);
    overflow: hidden;
}
.hm-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(1.25rem, 4vw, 3.5rem);
    width: var(--hm-wide);
    max-width: 100%;
    margin-inline: auto;
}
.hm-cta__inner > * { margin-block: 0; }
.hm-cta--center .hm-cta__inner { flex-direction: column; text-align: center; }

.hm-notice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--hm-space-4);
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border-left-width: 4px;
}
.hm-notice--info { border-left-color: var(--hm-color-primary, #0c7d8d); }
.hm-notice--success { border-left-color: var(--hm-color-success, #19764b); }
.hm-notice--warning { border-left-color: var(--hm-color-warning, #9a5d00); }
.hm-notice--important { border-left-color: var(--hm-color-danger, #b42318); }
.hm-notice--success .hm-notice__icon { color: var(--hm-color-success); }
.hm-notice--warning .hm-notice__icon { color: var(--hm-color-warning); }
.hm-notice--important .hm-notice__icon { color: var(--hm-color-danger); }
.hm-notice__body { min-width: 0; }
.hm-notice__title { margin-bottom: .35rem; }
.hm-notice__link { margin-top: .65rem; }

.hm-steps,
.hm-steps__inner {
    list-style: none;
    counter-reset: hm-step;
    display: grid;
    grid-template-columns: repeat(var(--hm-columns-desktop, 4), minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
    margin: 0;
    padding: 0;
}
.hm-steps--vertical,
.hm-steps--vertical .hm-steps__inner { grid-template-columns: minmax(0, 1fr); }
.hm-step {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--hm-space-4);
    padding: clamp(1rem, 2.4vw, 1.5rem);
}
.hm-step__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--hm-color-primary, #0c7d8d);
    color: #fff;
    font-weight: 800;
}
.hm-step__body { min-width: 0; }
.hm-step__title { margin-bottom: .5rem; }
.hm-step__link { margin-top: .75rem; }

.hm-timeline,
.hm-timeline__inner {
    position: relative;
    display: grid;
    gap: var(--hm-space-4);
}
.hm-timeline::before,
.hm-timeline__inner::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 20px;
    width: 2px;
    background: var(--hm-color-line, #e3e8ea);
}
.hm-timeline-item {
    position: relative;
    margin-left: 52px;
    padding: clamp(1rem, 2vw, 1.5rem);
}
.hm-timeline-item__dot {
    position: absolute;
    top: 1.4rem;
    left: -42px;
    width: 16px;
    height: 16px;
    border: 4px solid var(--hm-color-bg, #fff);
    border-radius: 50%;
    background: var(--hm-color-primary, #0c7d8d);
    box-shadow: 0 0 0 2px var(--hm-color-primary, #0c7d8d);
}
.hm-timeline-item__date { display: block; margin-bottom: .45rem; color: var(--hm-color-primary, #0c7d8d); font-size: .82rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.hm-timeline-item__title { margin-bottom: .55rem; }
.hm-timeline--alternating { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hm-timeline--alternating::before { left: 50%; }
.hm-timeline--alternating .hm-timeline-item { margin: 0 2rem 0 0; }
.hm-timeline--alternating .hm-timeline-item:nth-child(even) { grid-column: 2; margin: 0 0 0 2rem; }
.hm-timeline--alternating .hm-timeline-item__dot { left: auto; right: -41px; }
.hm-timeline--alternating .hm-timeline-item:nth-child(even) .hm-timeline-item__dot { right: auto; left: -41px; }

.hm-quote {
    padding: clamp(1.5rem, 4vw, 3rem);
    overflow: hidden;
}
.hm-quote__mark { position: absolute; top: -.35em; right: .1em; color: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 12%, transparent); font-family: Georgia, serif; font-size: 10rem; line-height: 1; }
.hm-quote blockquote { position: relative; z-index: 1; max-width: 34ch; margin: 0; font-family: var(--hm-font-heading, inherit); font-size: var(--hm-title-size-desktop, clamp(1.35rem, 2.8vw, 2.35rem)); font-weight: 700; line-height: 1.25; letter-spacing: -.025em; }
.hm-quote figcaption { display: flex; flex-direction: column; gap: .2rem; margin-top: var(--hm-space-5); color: var(--hm-color-muted, #5b6b70); }
.hm-quote figcaption strong { color: var(--hm-color-ink, #1f2a2e); }

.hm-faq,
.hm-faq__inner { display: grid; gap: .75rem; }
.hm-faq-item { overflow: hidden; box-shadow: none; }
.hm-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; padding: 1rem 1.2rem; cursor: pointer; font-family: var(--hm-font-heading, inherit); font-size: var(--hm-title-size-desktop, 1.08rem); font-weight: 750; list-style: none; }
.hm-faq-item summary::-webkit-details-marker { display: none; }
.hm-faq-item__icon { position: relative; flex: 0 0 auto; width: 22px; height: 22px; }
.hm-faq-item__icon::before,
.hm-faq-item__icon::after { content: ""; position: absolute; top: 50%; left: 50%; width: 14px; height: 2px; background: currentColor; transform: translate(-50%, -50%); transition: transform var(--hm-transition-fast) ease; }
.hm-faq-item__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.hm-faq-item[open] .hm-faq-item__icon::after { transform: translate(-50%, -50%) rotate(0); }
.hm-faq-item__answer { padding: 0 1.2rem 1.2rem; color: var(--hm-color-muted, #5b6b70); line-height: 1.65; }
.hm-faq-item__answer > :first-child { margin-top: 0; }
.hm-faq-item__answer > :last-child { margin-bottom: 0; }

.hm-document-list--grid,
.hm-document-list--grid .hm-document-list__inner {
    display: grid;
    grid-template-columns: repeat(var(--hm-columns-desktop, 2), minmax(0, 1fr));
    gap: 1rem;
}
.hm-document-list--list,
.hm-document-list--list .hm-document-list__inner { display: grid; gap: .75rem; }
.hm-document-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; padding: 1.1rem 1.25rem; box-shadow: none; }
.hm-document-item__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 52px; border-radius: 8px; background: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 10%, #fff); color: var(--hm-color-primary, #0c7d8d); }
.hm-document-item__body { min-width: 0; }
.hm-document-item__meta { display: flex; flex-wrap: wrap; gap: .4rem .75rem; margin-top: .45rem; color: var(--hm-color-muted, #5b6b70); font-size: .82rem; }
.hm-document-item__status { padding: .2rem .5rem; border-radius: var(--hm-radius-pill); background: color-mix(in srgb, var(--hm-color-success) 10%, #fff); color: var(--hm-color-success); font-weight: 750; }
.hm-document-item__status--archive { background: var(--hm-color-surface, #f5f7f7); color: var(--hm-color-muted, #5b6b70); }
.hm-document-item__link { margin-top: .8rem; }

/* =========================================================
   0.67.0 - "Dane formalne i zarzadzanie": dane-spolki (siatka 2 kolumny),
   dane-spolki-fakty/fakt (lista etykieta+wartosc) i
   dane-spolki-akcjonariat/udzialowiec (karta ze struktura akcjonariatu).
   Selektory laczone (np. ".hm-dane-spolki, .hm-dane-spolki__inner") dzialaja
   jednakowo na froncie (jeden element) i w edytorze (osobny wrapper InnerBlocks).
   ========================================================= */
.hm-dane-spolki,
.hm-dane-spolki__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: clamp(1.75rem, 4vw, 3.25rem);
    align-items: start;
}

.hm-dane-spolki-fakty {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.hm-fakt {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding-block: var(--hm-space-4);
    border-bottom: 1px solid var(--hm-color-line, #e3e8ea);
}
.hm-fakt:first-child { padding-top: 0; }
.hm-fakt:last-child { border-bottom: 0; padding-bottom: 0; }
.hm-fakt__label {
    font-size: .85rem;
    color: var(--hm-color-muted, #5b6b70);
}
.hm-fakt__value {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--hm-color-ink, #1f2a2e);
}

.hm-akcjonariat {
    min-width: 0;
    border: 1px solid var(--hm-color-line, #e3e8ea);
    border-radius: var(--hm-radius-md, 16px);
    background: var(--hm-color-bg, #fff);
    box-shadow: var(--hm-shadow-sm);
    overflow: hidden;
}
.hm-akcjonariat__head {
    padding: clamp(1.15rem, 2.2vw, 1.5rem) clamp(1.15rem, 2.2vw, 1.5rem) .9rem;
}
.hm-akcjonariat__title {
    margin: 0 0 .9rem;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -.01em;
    color: var(--hm-color-ink, #1f2a2e);
}
.hm-akcjonariat__cols {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--hm-color-line, #e3e8ea);
    color: var(--hm-color-muted, #5b6b70);
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.hm-akcjonariat__rows {
    display: flex;
    flex-direction: column;
    padding: 0 clamp(1.15rem, 2.2vw, 1.5rem) clamp(1.15rem, 2.2vw, 1.5rem);
}
.hm-udzialowiec {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-block: .85rem;
    border-bottom: 1px solid var(--hm-color-line, #e3e8ea);
}
.hm-udzialowiec:last-child { border-bottom: 0; padding-bottom: 0; }
.hm-udzialowiec__name {
    min-width: 0;
    font-size: .95rem;
    color: var(--hm-color-ink, #1f2a2e);
}
.hm-udzialowiec__percent {
    flex: 0 0 auto;
    font-size: .95rem;
    font-weight: 800;
    color: var(--hm-color-success, #19764b);
}

.hm-block.is-style-soft,
.hm-block .is-style-soft { background: var(--hm-color-surface-soft, #f5f7f7); }
.hm-block.is-style-outline { background: transparent; box-shadow: none; border-color: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 35%, var(--hm-color-line, #e3e8ea)); }
.hm-block.is-style-dark { background: var(--hm-color-ink, #1f2a2e); color: #fff; border-color: transparent; }
.hm-block.is-style-dark :where(.hm-card__text, .hm-stat__text, .hm-notice__text, .hm-step__text, .hm-timeline-item__text, .hm-contact-card__role, .hm-contact-card__hours, .hm-contact-card__row-label) { color: rgba(255, 255, 255, .72); }
.hm-block.is-style-dark .hm-contact-card__row-value { color: #fff; }
.hm-block.is-style-dark .hm-contact-card__row-icon { color: rgba(255, 255, 255, .85); }
.hm-block.is-style-dark .hm-contact-card__row + .hm-contact-card__row { border-top-color: rgba(255, 255, 255, .14); }
.hm-block.is-style-dark .hm-contact-card__hours { border-top-color: rgba(255, 255, 255, .14); }
.hm-block.is-style-dark .hm-contact-card__row-link:hover { background: rgba(255, 255, 255, .08); }
.hm-block.is-style-accent { background: var(--hm-color-primary, #0c7d8d); color: #fff; border-color: transparent; }
.hm-block.is-style-accent :where(.hm-card__text, .hm-stat__text, .hm-notice__text, .hm-step__text) { color: rgba(255, 255, 255, .78); }
.hm-block.is-style-glass { background: color-mix(in srgb, #fff 72%, transparent); backdrop-filter: blur(16px); }
.hm-block.is-style-compact { padding: .9rem 1rem; border-radius: 12px; }

/* Micro-interactions */
.hm-card,
.hm-stat,
.hm-document-item {
    transition: transform var(--hm-transition-normal) var(--hm-ease-standard), box-shadow var(--hm-transition-normal) var(--hm-ease-standard), border-color var(--hm-transition-fast) ease;
}

.hm-interaction-lift { transition: transform var(--hm-transition-normal) var(--hm-ease-standard), box-shadow var(--hm-transition-normal) var(--hm-ease-standard), border-color var(--hm-transition-fast) ease; }
.hm-interaction-lift:hover {
    transform: translateY(-6px);
    box-shadow: var(--hm-shadow-lg);
    border-color: color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 32%, var(--hm-color-line, #e3e8ea));
}

/* Branded top accent that wipes in on hover (action cards) */
.hm-action-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    border-radius: var(--hm-radius-md, 16px) var(--hm-radius-md, 16px) 0 0;
    background: linear-gradient(90deg, var(--hm-color-primary, #0c7d8d), var(--hm-color-accent, #f2714e));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 360ms var(--hm-ease-standard);
    pointer-events: none;
}
.hm-action-card:hover::before,
.hm-action-card:focus-visible::before { transform: scaleX(1); }

/* Icon and link arrow motion on card hover */
.hm-card__icon,
.hm-card__link span,
.hm-card__link svg { transition: transform var(--hm-transition-normal) var(--hm-ease-standard); }
.hm-card:hover .hm-card__link span[aria-hidden] { transform: translateX(5px); }
.hm-action-card:hover .hm-card__icon { transform: translateY(-2px) rotate(-3deg); }
.hm-interaction-icon-shift:hover .hm-card__icon,
.hm-interaction-icon-shift:hover .hm-card__link span { transform: translateX(4px); }

/* Image zoom for heroes with a background photo */
.hm-hero.hm-interaction-image-zoom .hm-hero__media { transition: transform 1200ms var(--hm-ease-standard); will-change: transform; }
.hm-hero.hm-interaction-image-zoom:hover .hm-hero__media:not(.hm-hero__media--placeholder) { transform: scale(1.06); }

/* Buttons inside a hero get a subtle press affordance */
.hm-hero .wp-block-button__link { transition: transform var(--hm-transition-fast) var(--hm-ease-standard), box-shadow var(--hm-transition-fast) ease, filter var(--hm-transition-fast) ease; }
.hm-hero .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(5, 24, 27, .28); }

.hm-block a:focus-visible,
.hm-faq-item summary:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--hm-color-primary, #0c7d8d) 35%, transparent);
    outline-offset: 3px;
}

.hm-animations-ready [data-hm-animation]:not(.is-visible) {
    opacity: 0;
    transition: opacity var(--hm-animation-duration, 500ms) var(--hm-ease-standard) var(--hm-animation-delay, 0ms), transform var(--hm-animation-duration, 500ms) var(--hm-ease-standard) var(--hm-animation-delay, 0ms);
}
.hm-animations-ready [data-hm-animation="fade-up"]:not(.is-visible) { transform: translateY(24px); }
.hm-animations-ready [data-hm-animation="fade-down"]:not(.is-visible) { transform: translateY(-24px); }
.hm-animations-ready [data-hm-animation="slide-left"]:not(.is-visible) { transform: translateX(-28px); }
.hm-animations-ready [data-hm-animation="slide-right"]:not(.is-visible) { transform: translateX(28px); }
.hm-animations-ready [data-hm-animation="scale-in"]:not(.is-visible) { transform: scale(.96); }
.hm-animations-ready [data-hm-animation].is-visible { opacity: 1; transform: none; }

/* Pattern grids: turn wp:columns wrappers into real responsive grids */
.hm-pattern-grid.wp-block-columns {
    display: grid !important;
    align-items: stretch;
    gap: clamp(1rem, 2vw, 1.5rem);
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
}
.hm-pattern-grid.wp-block-columns > .wp-block-column {
    flex-basis: auto !important;
    margin: 0 !important;
    min-width: 0;
}
.hm-pattern-grid.wp-block-columns > .wp-block-column > * { height: 100%; }
.hm-pattern-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hm-pattern-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hm-pattern-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (min-width: 1025px) {
    .hm-hide-desktop { display: none !important; }
}

@media (max-width: 1024px) {
    .hm-pattern-grid--3.wp-block-columns,
    .hm-pattern-grid--4.wp-block-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .hm-hide-tablet { display: none !important; }
    /* 0.69.0: preset odstepow (klasy .hm-space-*) dziala na kazdym breakpoincie
       dzieki clamp; suwak "Padding - tablet" nadal go nadpisuje. */
    .hm-section {
        min-height: var(--hm-block-min-h-tablet, var(--hm-block-min-h-desktop, auto));
        padding-top: var(--hm-block-pad-tablet, var(--hm-pad-t));
        padding-bottom: var(--hm-block-pad-tablet, var(--hm-pad-b));
    }
    .hm-hero { min-height: var(--hm-block-min-h-tablet, var(--hm-block-min-h-desktop, 500px)); }
    .hm-hero__inner h1,
    .hm-hero__inner h2,
    .hm-card__title,
    .hm-stat__value,
    .hm-notice__title,
    .hm-step__title,
    .hm-timeline-item__title,
    .hm-quote blockquote,
    .hm-faq-item summary { font-size: var(--hm-title-size-tablet, var(--hm-title-size-desktop)); }
    :where(.hm-card__text, .hm-stat__text, .hm-notice__text, .hm-step__text, .hm-timeline-item__text) { font-size: var(--hm-text-size-tablet, var(--hm-text-size-desktop)); }
    :where(.hm-card__icon, .hm-stat__icon, .hm-notice__icon) { width: var(--hm-icon-size-tablet, var(--hm-icon-size-desktop, 48px)); height: var(--hm-icon-size-tablet, var(--hm-icon-size-desktop, 48px)); }
    /* 0.69.0: karta kontaktowa ma wlasne, mniejsze bazowe rozmiary - powtarzamy
       je tu z pelnym lancuchem fallbacku, zeby suwaki "tablet" nadal dzialaly. */
    .hm-contact-card .hm-card__icon { width: var(--hm-icon-size-tablet, var(--hm-icon-size-desktop, 40px)); height: var(--hm-icon-size-tablet, var(--hm-icon-size-desktop, 40px)); }
    .hm-contact-card .hm-card__title { font-size: var(--hm-title-size-tablet, var(--hm-title-size-desktop, clamp(1.02rem, 1.05vw, 1.18rem))) !important; }
    .hm-steps, .hm-steps__inner { grid-template-columns: repeat(var(--hm-columns-tablet, 2), minmax(0, 1fr)); }
    .hm-document-list--grid, .hm-document-list--grid .hm-document-list__inner { grid-template-columns: repeat(var(--hm-columns-tablet, 2), minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .hm-hide-mobile { display: none !important; }
    .hm-section {
        min-height: var(--hm-block-min-h-mobile, auto);
        padding-top: var(--hm-block-pad-mobile, var(--hm-pad-t));
        padding-bottom: var(--hm-block-pad-mobile, var(--hm-pad-b));
    }
    .hm-hero,
    .hm-hero--media-left,
    .hm-hero--media-right { display: flex; flex-direction: column; min-height: var(--hm-block-min-h-mobile, auto); }
    .hm-hero__inner,
    .hm-hero--media-left .hm-hero__inner { order: 1; width: 100%; padding: var(--hm-block-pad-mobile, 2.25rem 1.15rem); }
    .hm-hero__media,
    .hm-hero--media-left .hm-hero__media { order: 2; width: 100%; min-height: 260px; }
    .hm-hero--center,
    .hm-hero--cover { display: block; min-height: var(--hm-block-min-h-mobile, 520px); }
    .hm-hero--center .hm-hero__media,
    .hm-hero--cover .hm-hero__media { position: absolute; }
    .hm-hero__inner .hm-eyebrow {
        padding: .42rem .8rem;
        font-size: .7rem;
        letter-spacing: .06em;
    }
    .hm-hero__inner h1,
    .hm-hero__inner h2,
    .hm-card__title,
    .hm-stat__value,
    .hm-notice__title,
    .hm-step__title,
    .hm-timeline-item__title,
    .hm-quote blockquote,
    .hm-faq-item summary { font-size: var(--hm-title-size-mobile, var(--hm-title-size-tablet, var(--hm-title-size-desktop))); }
    :where(.hm-card__text, .hm-stat__text, .hm-notice__text, .hm-step__text, .hm-timeline-item__text) { font-size: var(--hm-text-size-mobile, var(--hm-text-size-tablet, var(--hm-text-size-desktop))); }
    :where(.hm-card__icon, .hm-stat__icon, .hm-notice__icon) { width: var(--hm-icon-size-mobile, var(--hm-icon-size-tablet, var(--hm-icon-size-desktop, 44px))); height: var(--hm-icon-size-mobile, var(--hm-icon-size-tablet, var(--hm-icon-size-desktop, 44px))); }
    .hm-contact-card .hm-card__icon { width: var(--hm-icon-size-mobile, var(--hm-icon-size-tablet, var(--hm-icon-size-desktop, 38px))); height: var(--hm-icon-size-mobile, var(--hm-icon-size-tablet, var(--hm-icon-size-desktop, 38px))); }
    .hm-contact-card .hm-card__title { font-size: var(--hm-title-size-mobile, var(--hm-title-size-tablet, var(--hm-title-size-desktop, 1.05rem))) !important; }
    /* Na waskim ekranie opis i numer nie zmieszcza sie obok siebie - numer
       laduje pod opisem, nadal wyrownany do prawej. */
    .hm-contact-card__row-link { grid-template-columns: minmax(0, 1fr); }
    .hm-contact-card__row-value { justify-self: start; }
    .hm-cta__inner { flex-direction: column; align-items: flex-start; }
    .hm-cta--center .hm-cta__inner { align-items: center; }
    .hm-steps, .hm-steps__inner { grid-template-columns: repeat(var(--hm-columns-mobile, 1), minmax(0, 1fr)); }
    .hm-timeline--alternating { grid-template-columns: 1fr; }
    .hm-timeline--alternating::before { left: 20px; }
    .hm-timeline--alternating .hm-timeline-item,
    .hm-timeline--alternating .hm-timeline-item:nth-child(even) { grid-column: 1; margin: 0 0 0 52px; }
    .hm-timeline--alternating .hm-timeline-item__dot,
    .hm-timeline--alternating .hm-timeline-item:nth-child(even) .hm-timeline-item__dot { left: -42px; right: auto; }
    .hm-document-list--grid, .hm-document-list--grid .hm-document-list__inner { grid-template-columns: repeat(var(--hm-columns-mobile, 1), minmax(0, 1fr)); }
    .hm-document-item { grid-template-columns: 1fr; }
    .hm-notice { grid-template-columns: 1fr; }
    .hm-pattern-grid--2.wp-block-columns,
    .hm-pattern-grid--3.wp-block-columns,
    .hm-pattern-grid--4.wp-block-columns { grid-template-columns: 1fr; }
    .hm-dane-spolki,
    .hm-dane-spolki__inner { grid-template-columns: 1fr; gap: 2rem; }
    .hm-hero__scroll { width: 40px; height: 40px; }
    .hm-hero--center .hm-hero__inner,
    .hm-hero--cover .hm-hero__inner { padding-inline: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
    .hm-block,
    .hm-block *,
    .hm-animations-ready [data-hm-animation] {
        scroll-behavior: auto !important;
        animation: none !important;
        transition-duration: .01ms !important;
        transition-delay: 0ms !important;
    }
    .hm-animations-ready [data-hm-animation] { opacity: 1 !important; transform: none !important; }
}

/* =========================================================
   Page header (halmo/page-header) — dynamic, compact and fast
   0.57.14: tighter content stack, refined aurora, no runtime JS
   ========================================================= */
.hm-page-header {
    --hm-ph-accent: var(--hm-color-accent, #e63b3b);
    --hm-ph-angle: 135deg;
    --hm-ph-effect: .55;
    --hm-ph-auto-text: #1f2933;
    --hm-ph-auto-lead: #5a6870;
    --hm-ph-inner-width: min(92%, 1800px);

    position: relative;
    display: flex;
    box-sizing: border-box;
    width: 100%;
    padding-block: clamp(1.35rem, 2.35vw, 2.15rem);
    overflow: clip;
    isolation: isolate;
    contain: paint;
    border-radius: inherit;
    color: var(--hm-ph-text, var(--hm-ph-auto-text));
}

/* Min-height obejmuje padding; nagłówek nie rośnie przez model content-box. */
.hm-ph-height-compact { min-height: var(--hm-block-min-h-desktop, clamp(184px, 16vw, 226px)); }
.hm-ph-height-standard { min-height: var(--hm-block-min-h-desktop, clamp(224px, 21vw, 292px)); }
.hm-ph-height-roomy { min-height: var(--hm-block-min-h-desktop, clamp(280px, 29vw, 390px)); }
.hm-ph-height-custom { min-height: var(--hm-block-min-h-desktop, 240px); }

.hm-ph-width-content { --hm-ph-inner-width: min(92%, 1200px); }
.hm-ph-width-wide { --hm-ph-inner-width: min(92%, 1800px); }
.hm-ph-width-full { --hm-ph-inner-width: calc(100% - clamp(2rem, 5vw, 6rem)); }

.hm-page-header__bg,
.hm-page-header__overlay {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
}
.hm-page-header__bg { z-index: 0; overflow: hidden; }
.hm-page-header__overlay { z-index: 1; }

.hm-page-header__inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: clamp(.8rem, 1.25vw, 1.15rem);
    width: var(--hm-ph-inner-width);
    min-width: 0;
    margin-inline: auto;
    padding-inline: 0;
}
.hm-page-header__meta,
.hm-page-header__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
}
.hm-page-header__meta { gap: clamp(.38rem, .65vw, .58rem); }
.hm-page-header__content { gap: clamp(.5rem, .8vw, .72rem); }
/* Kadence i style motywu nie mogą dodawać własnych marginesów między H1, p i nav. */
.hm-page-header .hm-page-header__meta > *,
.hm-page-header .hm-page-header__content > * {
    margin-block: 0 !important;
}

.hm-page-header__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .48rem;
    width: fit-content;
    margin: 0;
    color: var(--hm-ph-accent);
    font-size: clamp(.73rem, .7rem + .15vw, .86rem);
    font-weight: 750;
    line-height: 1.25;
    letter-spacing: .095em;
    text-transform: uppercase;
}
.hm-page-header__eyebrow::after {
    content: "";
    width: 2.3rem;
    height: 1px;
    margin-left: .15rem;
    background: currentColor;
    opacity: .55;
}
.hm-ph-align-center .hm-page-header__eyebrow::before,
.hm-ph-align-center .hm-page-header__eyebrow::after { width: 1.45rem; }
.hm-ph-align-center .hm-page-header__eyebrow::before {
    content: "";
    height: 1px;
    background: currentColor;
    opacity: .55;
}
.hm-page-header__eyebrow-icon {
    display: inline-flex;
    width: 1.1em;
    height: 1.1em;
    flex: 0 0 auto;
}
.hm-page-header__eyebrow-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hm-page-header__title {
    max-width: 24ch;
    margin: 0 !important;
    color: var(--hm-ph-text, inherit);
    font-size: var(--hm-title-size-desktop, clamp(2rem, 3.15vw, 3.35rem));
    font-weight: 720;
    line-height: 1.045;
    letter-spacing: -.034em;
    text-wrap: balance;
}
.hm-ph-height-compact .hm-page-header__title {
    font-size: var(--hm-title-size-desktop, clamp(1.9rem, 2.75vw, 2.9rem));
}

.hm-page-header__lead {
    max-width: 68ch;
    margin: 0;
    color: var(--hm-ph-lead, var(--hm-ph-auto-lead));
    font-size: var(--hm-text-size-desktop, clamp(.98rem, .93rem + .2vw, 1.13rem));
    line-height: 1.55;
}
.hm-page-header__lead > :first-child { margin-top: 0; }
.hm-page-header__lead > :last-child { margin-bottom: 0; }

.hm-ph-align-center .hm-page-header__inner,
.hm-ph-align-center .hm-page-header__meta,
.hm-ph-align-center .hm-page-header__content { align-items: center; text-align: center; }
.hm-ph-align-center .hm-page-header__title,
.hm-ph-align-center .hm-page-header__lead { margin-inline: auto; }

.hm-ph-tone-light {
    --hm-ph-auto-text: #fff;
    --hm-ph-auto-lead: rgba(255, 255, 255, .82);
}
.hm-ph-tone-dark {
    --hm-ph-auto-text: #1f2933;
    --hm-ph-auto-lead: #596870;
}

/* Breadcrumbs */
.hm-page-header__crumbs-wrap { margin: 0 !important; }
.hm-page-header .hm-ph-crumbs {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}
.hm-ph-crumbs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .12rem .18rem;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    padding-inline-start: 0 !important;
    list-style: none;
    font-size: clamp(.75rem, .72rem + .12vw, .84rem);
    line-height: 1.35;
}
.hm-page-header .hm-ph-crumbs__item {
    display: inline-flex;
    align-items: center;
    gap: .18rem;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.hm-ph-crumbs__link {
    position: relative;
    color: inherit;
    text-decoration: none;
    opacity: .7;
    transition: opacity 160ms ease;
}
.hm-ph-crumbs__link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 220ms var(--hm-ease-standard, cubic-bezier(.2,.8,.2,1));
}
.hm-ph-crumbs__link:hover { opacity: 1; }
.hm-ph-crumbs__link:hover::after { transform: scaleX(1); }
.hm-ph-crumbs__current { font-weight: 620; opacity: .94; }
.hm-ph-crumbs__sep { display: inline-flex; width: 14px; height: 14px; opacity: .42; }
.hm-ph-crumbs__sep svg {
    width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
}

/* Actions */
.hm-page-header__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: clamp(.35rem, .8vw, .7rem);
}
.hm-ph-align-center .hm-page-header__actions { justify-content: center; }
.hm-ph-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .48rem;
    min-height: 42px;
    padding: .72rem 1.18rem;
    overflow: hidden;
    border-radius: var(--hm-radius-pill, 999px);
    font-size: .92rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: transform 220ms var(--hm-ease-standard, cubic-bezier(.2,.8,.2,1)), box-shadow 220ms ease, background-color 160ms ease, border-color 160ms ease;
}
.hm-ph-btn__arrow { display: inline-flex; width: 1em; height: 1em; transition: transform 220ms ease; }
.hm-ph-btn__arrow svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hm-ph-btn--primary {
    color: #fff;
    background: var(--hm-ph-accent);
    box-shadow: 0 9px 24px color-mix(in srgb, var(--hm-ph-accent) 27%, transparent);
}
.hm-ph-btn--ghost {
    color: inherit;
    border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
    background: color-mix(in srgb, currentColor 4%, transparent);
}
@media (hover: hover) {
    .hm-ph-btn:hover { transform: translateY(-2px); }
    .hm-ph-btn--primary:hover { box-shadow: 0 13px 30px color-mix(in srgb, var(--hm-ph-accent) 35%, transparent); }
    .hm-ph-btn--ghost:hover { border-color: color-mix(in srgb, currentColor 52%, transparent); background: color-mix(in srgb, currentColor 8%, transparent); }
    .hm-ph-btn:hover .hm-ph-btn__arrow { transform: translateX(3px); }
}
.hm-ph-btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--hm-ph-accent) 58%, #fff); outline-offset: 3px; }

/* Aurora — static gradients by default; optional transform-only motion */
.hm-page-header--aurora {
    --hm-ph-auto-text: #fff;
    --hm-ph-auto-lead: rgba(255, 255, 255, .82);
    background: linear-gradient(
        var(--hm-ph-angle),
        var(--hm-ph-surface-1, #075246) 0%,
        color-mix(in srgb, var(--hm-ph-surface-1, #075246) 68%, var(--hm-ph-surface-2, var(--hm-ph-surface-1, #072a31))) 46%,
        var(--hm-ph-surface-2, var(--hm-ph-surface-1, #072a31)) 100%
    );
    box-shadow: inset 0 -1px rgba(255,255,255,.1);
}
.hm-page-header--aurora:not(.hm-page-header--no-decorations) {
    background:
        radial-gradient(58% 125% at 72% -34%, color-mix(in srgb, var(--hm-ph-accent) 30%, transparent), transparent 64%),
        radial-gradient(46% 135% at 28% 132%, color-mix(in srgb, var(--hm-color-primary, #0b8062) 40%, transparent), transparent 67%),
        linear-gradient(
            var(--hm-ph-angle),
            var(--hm-ph-surface-1, #075246) 0%,
            color-mix(in srgb, var(--hm-ph-surface-1, #075246) 68%, var(--hm-ph-surface-2, var(--hm-ph-surface-1, #072a31))) 46%,
            var(--hm-ph-surface-2, var(--hm-ph-surface-1, #072a31)) 100%
        );
}
.hm-page-header--aurora::after {
    content: "";
    position: absolute;
    z-index: 1;
    right: -8%;
    bottom: -1px;
    width: min(62vw, 980px);
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--hm-ph-accent) 56%, #fff), transparent 88%);
    opacity: var(--hm-ph-effect);
    pointer-events: none;
}
.hm-page-header--aurora.hm-page-header--no-decorations::after { display: none; }
.hm-page-header--aurora .hm-page-header__title {
    position: relative;
    padding-left: clamp(.85rem, 1.2vw, 1.15rem);
    text-shadow: 0 12px 34px rgba(0, 16, 17, .2);
}
.hm-page-header--aurora .hm-page-header__title::before {
    content: "";
    position: absolute;
    left: 0;
    top: .08em;
    bottom: .08em;
    width: 3px;
    border-radius: 99px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--hm-ph-accent) 55%, #fff), var(--hm-ph-accent));
    box-shadow: 0 0 18px color-mix(in srgb, var(--hm-ph-accent) 34%, transparent);
}
.hm-page-header--aurora .hm-page-header__eyebrow {
    color: color-mix(in srgb, var(--hm-ph-accent) 36%, #fff);
}
.hm-page-header--aurora .hm-ph-crumbs__list { color: var(--hm-ph-text, #fff); }
.hm-ph-orb {
    position: absolute;
    border-radius: 50%;
    opacity: var(--hm-ph-effect);
    transform: translate3d(0, 0, 0);
}
.hm-ph-orb--1 {
    top: -92%;
    right: -4%;
    width: min(50vw, 760px);
    aspect-ratio: 1;
    background: radial-gradient(circle, color-mix(in srgb, var(--hm-ph-accent) 58%, #fff 10%) 0, transparent 67%);
}
.hm-ph-orb--2 {
    left: 28%;
    bottom: -132%;
    width: min(44vw, 680px);
    aspect-ratio: 1;
    background: radial-gradient(circle, color-mix(in srgb, var(--hm-color-primary, #0b8062) 72%, #fff 8%) 0, transparent 68%);
    opacity: var(--hm-ph-effect);
}
.hm-ph-grid {
    position: absolute;
    inset: 0;
    opacity: var(--hm-ph-effect);
    background-image:
        linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
    background-size: 44px 44px;
    -webkit-mask-image: radial-gradient(76% 150% at 78% 4%, #000 4%, transparent 70%);
    mask-image: radial-gradient(76% 150% at 78% 4%, #000 4%, transparent 70%);
}
.hm-page-header--motion .hm-ph-orb--1 {
    will-change: transform;
    animation: hm-ph-drift-a 18s ease-in-out infinite alternate;
}
.hm-page-header--motion .hm-ph-orb--2 {
    will-change: transform;
    animation: hm-ph-drift-b 23s ease-in-out infinite alternate;
}
@keyframes hm-ph-drift-a { to { transform: translate3d(-5%, 7%, 0) scale(1.05); } }
@keyframes hm-ph-drift-b { to { transform: translate3d(7%, -5%, 0) scale(1.07); } }

/* Modern — clean background with CSS-only architectural accents. */
.hm-page-header--modern {
    --hm-ph-auto-text: #1f2933;
    --hm-ph-auto-lead: #596870;
    background: linear-gradient(
        var(--hm-ph-angle),
        var(--hm-ph-surface-1, #f1f6f3),
        var(--hm-ph-surface-2, var(--hm-ph-surface-1, #ffffff))
    );
    border-top: 1px solid color-mix(in srgb, var(--hm-ph-accent) 10%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--hm-ph-accent) 16%, transparent);
}
.hm-page-header--modern .hm-page-header__content {
    position: relative;
    max-width: min(780px, 72%);
    padding-left: clamp(1rem, 1.8vw, 1.55rem);
}
.hm-page-header--modern .hm-page-header__content::before {
    content: "";
    position: absolute;
    left: 0;
    top: .08rem;
    bottom: .08rem;
    width: 4px;
    border-radius: 999px;
    background: var(--hm-ph-accent);
    box-shadow: 0 0 0 7px color-mix(in srgb, var(--hm-ph-accent) 8%, transparent);
}
.hm-page-header--modern .hm-page-header__eyebrow { color: var(--hm-ph-accent); }
.hm-page-header--modern .hm-page-header__title { max-width: 21ch; }
.hm-ph-modern-arc,
.hm-ph-modern-tile {
    position: absolute;
    pointer-events: none;
    opacity: var(--hm-ph-effect);
}
.hm-ph-modern-arc {
    border: 1px solid color-mix(in srgb, var(--hm-ph-accent) 24%, transparent);
    border-radius: 50%;
}
.hm-ph-modern-arc--1 {
    top: -190px;
    right: -90px;
    width: min(42vw, 560px);
    aspect-ratio: 1;
    box-shadow:
        0 0 0 54px color-mix(in srgb, var(--hm-ph-accent) 3%, transparent),
        0 0 0 108px color-mix(in srgb, var(--hm-ph-accent) 2%, transparent);
}
.hm-ph-modern-arc--2 {
    right: clamp(7rem, 18vw, 19rem);
    bottom: -135px;
    width: min(24vw, 300px);
    aspect-ratio: 1;
}
.hm-ph-modern-tile {
    top: 50%;
    right: clamp(2rem, 8vw, 8rem);
    width: clamp(110px, 12vw, 175px);
    aspect-ratio: 1.45;
    border: 1px solid color-mix(in srgb, var(--hm-ph-accent) 22%, transparent);
    border-radius: 24px;
    background: color-mix(in srgb, var(--hm-ph-accent) 6%, transparent);
    transform: translateY(-50%) rotate(-7deg);
}

/* Image */
.hm-page-header--image {
    --hm-ph-auto-text: #fff;
    --hm-ph-auto-lead: rgba(255, 255, 255, .86);
    background: #10282a;
}
.hm-page-header__photo {
    position: absolute;
    inset: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform: scale(1.018);
    transition: transform 900ms var(--hm-ease-standard, cubic-bezier(.2,.8,.2,1));
}
.hm-ph-media-top .hm-page-header__photo { background-position: center top; }
.hm-ph-media-bottom .hm-page-header__photo { background-position: center bottom; }
.hm-ph-media-left .hm-page-header__photo { background-position: left center; }
.hm-ph-media-right .hm-page-header__photo { background-position: right center; }
.hm-page-header__photo--placeholder {
    background:
        radial-gradient(circle at 78% 12%, color-mix(in srgb, var(--hm-ph-accent) 24%, transparent), transparent 35%),
        linear-gradient(var(--hm-ph-angle), var(--hm-ph-surface-1, #073d35), var(--hm-ph-surface-2, var(--hm-ph-surface-1, #06272b)));
    transform: none;
}
.hm-page-header--image .hm-page-header__overlay {
    background: rgba(var(--hm-overlay-rgb, 5, 28, 27), var(--hm-overlay-opacity, .55));
}
.hm-page-header--image.hm-ph-overlay-left .hm-page-header__overlay {
    background: linear-gradient(90deg,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), calc(var(--hm-overlay-opacity, .55) + .25)) 0%,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), var(--hm-overlay-opacity, .55)) 42%,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), var(--hm-overlay-opacity-soft, .19)) 78%,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), .08) 100%);
}
.hm-page-header--image.hm-ph-overlay-right .hm-page-header__overlay {
    background: linear-gradient(270deg,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), calc(var(--hm-overlay-opacity, .55) + .25)) 0%,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), var(--hm-overlay-opacity, .55)) 42%,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), var(--hm-overlay-opacity-soft, .19)) 78%,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), .08) 100%);
}
.hm-page-header--image.hm-ph-overlay-bottom .hm-page-header__overlay {
    background: linear-gradient(0deg,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), calc(var(--hm-overlay-opacity, .55) + .22)) 0%,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), var(--hm-overlay-opacity, .55)) 48%,
        rgba(var(--hm-overlay-rgb, 5, 28, 27), .12) 100%);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .hm-page-header--image:hover .hm-page-header__photo:not(.hm-page-header__photo--placeholder) { transform: scale(1.045); }
}

/* Split */
.hm-page-header--split {
    --hm-ph-auto-text: #1f2933;
    --hm-ph-auto-lead: #5c6870;
    background: linear-gradient(var(--hm-ph-angle), var(--hm-ph-surface-1, #f3f6f4), var(--hm-ph-surface-2, var(--hm-ph-surface-1, #fff)));
}
.hm-page-header--split .hm-page-header__photo {
    left: auto;
    width: 43%;
    transform: none;
    clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%);
}
.hm-page-header--split .hm-page-header__overlay {
    left: auto;
    width: 45%;
    background: linear-gradient(90deg, var(--hm-ph-surface-1, #f3f6f4) 0%, color-mix(in srgb, var(--hm-ph-surface-1, #f3f6f4) 72%, transparent) 12%, transparent 42%);
}
.hm-page-header--split .hm-page-header__meta,
.hm-page-header--split .hm-page-header__content { width: 55%; max-width: 55%; }
.hm-page-header__badge {
    position: absolute;
    z-index: 3;
    top: clamp(1rem, 2.2vw, 1.8rem);
    right: clamp(1.1rem, 2.8vw, 2.4rem);
    display: inline-flex;
    padding: .48rem .85rem;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: var(--hm-radius-pill, 999px);
    background: rgba(255,255,255,.88);
    color: #235343;
    box-shadow: 0 10px 28px rgba(11, 38, 30, .12);
    font-size: .76rem;
    font-weight: 760;
    letter-spacing: .035em;
}

/* Editorial */
.hm-page-header--editorial {
    min-height: auto;
    padding-block: clamp(2rem, 4.2vw, 4rem);
    background: linear-gradient(
        var(--hm-ph-angle),
        var(--hm-ph-surface-1, #f7f9f8),
        var(--hm-ph-surface-2, var(--hm-ph-surface-1, #ffffff))
    );
}
.hm-page-header--editorial .hm-page-header__title { max-width: 26ch; }
.hm-page-header--editorial .hm-page-header__title::before {
    content: "";
    display: block;
    width: 3.2rem;
    height: 3px;
    margin-bottom: clamp(.75rem, 1.5vw, 1.15rem);
    border-radius: 999px;
    background: var(--hm-ph-accent);
    transform-origin: left;
}
.hm-page-header--editorial.hm-ph-align-center .hm-page-header__title::before { margin-inline: auto; }
.hm-ph-rule {
    position: absolute;
    left: 50%;
    bottom: 0;
    width: var(--hm-ph-inner-width);
    height: 1px;
    background: linear-gradient(90deg, var(--hm-color-line, #dfe6e3), transparent 72%);
    transform: translateX(-50%);
}

/* Ribbon */
.hm-page-header--ribbon {
    --hm-ph-auto-text: #fff;
    --hm-ph-auto-lead: rgba(255, 255, 255, .84);
    background: linear-gradient(var(--hm-ph-angle), var(--hm-ph-surface-1, #075c47), var(--hm-ph-surface-2, var(--hm-ph-surface-1, #0b8162)));
}
.hm-ph-lines {
    position: absolute;
    inset: 0;
    opacity: var(--hm-ph-effect);
    background-image: repeating-linear-gradient(115deg, transparent 0 34px, rgba(255,255,255,.085) 34px 35px);
}
.hm-ph-slash {
    position: absolute;
    top: -28%;
    right: -7%;
    width: 37%;
    height: 156%;
    opacity: var(--hm-ph-effect);
    background: linear-gradient(180deg, color-mix(in srgb, var(--hm-ph-accent) 90%, transparent), color-mix(in srgb, var(--hm-ph-accent) 45%, transparent));
    transform: skewX(-13deg);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 50%);
    mask-image: linear-gradient(90deg, transparent, #000 50%);
}

/* Explicit tone must win over the visual variant defaults. */
.hm-page-header.hm-ph-tone-light {
    --hm-ph-auto-text: #fff;
    --hm-ph-auto-lead: rgba(255, 255, 255, .82);
}
.hm-page-header.hm-ph-tone-dark {
    --hm-ph-auto-text: #1f2933;
    --hm-ph-auto-lead: #596870;
}

/* Dynamic editor preview marker — invisible on the front end unless an editor class leaks through */
.hm-ph-dynamic-preview { font-style: normal; }

/* Cascade reveal — CSS only, once per page load */
.hm-page-header--cascade .hm-ph-item { animation: hm-ph-rise 560ms var(--hm-ease-standard, cubic-bezier(.2,.8,.2,1)) both; }
.hm-page-header--cascade .hm-ph-item:nth-child(1) { animation-delay: .035s; }
.hm-page-header--cascade .hm-ph-item:nth-child(2) { animation-delay: .105s; }
.hm-page-header--cascade .hm-ph-item:nth-child(3) { animation-delay: .18s; }
.hm-page-header--cascade .hm-ph-item:nth-child(4) { animation-delay: .255s; }
.hm-page-header--cascade .hm-ph-item:nth-child(n+5) { animation-delay: .33s; }
@keyframes hm-ph-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

/* Responsive */
@media (max-width: 1024px) {
    .hm-page-header { padding-block: clamp(1.3rem, 3.5vw, 2rem); }
    .hm-ph-height-compact { min-height: var(--hm-block-min-h-tablet, clamp(176px, 20vw, 218px)); }
    .hm-ph-height-standard { min-height: var(--hm-block-min-h-tablet, clamp(215px, 26vw, 278px)); }
    .hm-ph-height-roomy { min-height: var(--hm-block-min-h-tablet, clamp(265px, 34vw, 360px)); }
    .hm-ph-height-custom { min-height: var(--hm-block-min-h-tablet, var(--hm-block-min-h-desktop, 230px)); }
    .hm-page-header--split .hm-page-header__photo { width: 40%; }
    .hm-page-header--split .hm-page-header__overlay { width: 43%; }
    .hm-page-header--split .hm-page-header__meta,
    .hm-page-header--split .hm-page-header__content { width: 59%; max-width: 59%; }
    .hm-page-header--modern .hm-page-header__content { max-width: min(760px, 78%); }
    .hm-ph-modern-tile { right: 2.5rem; }
}

@media (max-width: 767px) {
    .hm-page-header {
        min-height: var(--hm-block-min-h-mobile, auto);
        padding-block: var(--hm-block-pad-mobile, clamp(1.55rem, 7vw, 2.4rem));
    }
    .hm-ph-height-roomy { min-height: var(--hm-block-min-h-mobile, clamp(250px, 42vh, 350px)); }
    .hm-page-header__inner { gap: .72rem; padding-inline: 0; }
    .hm-page-header__meta { gap: .34rem; }
    .hm-page-header__content { gap: .48rem; }
    .hm-page-header__title {
        max-width: 100%;
        font-size: var(--hm-title-size-mobile, var(--hm-title-size-tablet, clamp(1.8rem, 8.3vw, 2.5rem)));
        line-height: 1.07;
    }
    .hm-page-header--aurora .hm-page-header__title { padding-left: .8rem; }
    .hm-page-header__lead { font-size: var(--hm-text-size-mobile, var(--hm-text-size-tablet, .98rem)); line-height: 1.5; }
    .hm-page-header__actions { width: 100%; }
    .hm-page-header__actions .hm-ph-btn { flex: 1 1 150px; }
    .hm-ph-grid { background-size: 36px 36px; }
    .hm-ph-orb--1 { width: 105vw; right: -45%; }
    .hm-ph-orb--2 { width: 90vw; left: -28%; bottom: -70%; }

    .hm-page-header--split {
        min-height: auto;
        padding-left: .75rem;
        background: linear-gradient(var(--hm-ph-angle), var(--hm-ph-surface-1, #f4f7f5), var(--hm-ph-surface-2, var(--hm-ph-surface-1, #fff)));
    }
    .hm-page-header--split::before {
        content: "";
        position: absolute;
        z-index: 2;
        left: 0;
        top: 1.3rem;
        bottom: 1.3rem;
        width: 4px;
        border-radius: 999px;
        background: linear-gradient(180deg, var(--hm-color-primary, #087a55), var(--hm-ph-accent));
    }
    .hm-page-header--split .hm-page-header__photo,
    .hm-page-header--split .hm-page-header__overlay,
    .hm-page-header__badge { display: none; }
    .hm-page-header--split .hm-page-header__meta,
    .hm-page-header--split .hm-page-header__content { width: 100%; max-width: 100%; }

    .hm-page-header--modern .hm-page-header__content {
        max-width: 100%;
        padding-left: .9rem;
    }
    .hm-ph-modern-arc--1 { width: 115vw; right: -72%; top: -145%; }
    .hm-ph-modern-arc--2,
    .hm-ph-modern-tile { display: none; }

    .hm-page-header--image.hm-ph-overlay-left .hm-page-header__overlay,
    .hm-page-header--image.hm-ph-overlay-right .hm-page-header__overlay {
        background: linear-gradient(0deg,
            rgba(var(--hm-overlay-rgb, 5, 28, 27), calc(var(--hm-overlay-opacity, .55) + .24)) 0%,
            rgba(var(--hm-overlay-rgb, 5, 28, 27), var(--hm-overlay-opacity, .55)) 62%,
            rgba(var(--hm-overlay-rgb, 5, 28, 27), .18) 100%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .hm-page-header--cascade .hm-ph-item,
    .hm-page-header--motion .hm-ph-orb,
    .hm-page-header--editorial.hm-page-header--cascade .hm-page-header__title::before {
        animation: none !important;
    }
    .hm-page-header--cascade .hm-ph-item { opacity: 1 !important; transform: none !important; }
    .hm-page-header__photo,
    .hm-ph-btn,
    .hm-ph-btn__arrow { transition: none !important; }
}

