.elementor .card-interactive{border-radius:var(--ghz-radius-xl);/* Przejscie kart. Prop transition nie przenosi krzywej czasowej, a --gh-e jest
   czescia charakteru marki, wiec deklaracja zostaje tutaj.

   DLACZEGO && I DLACZEGO translate JEST NA LISCIE: scroll-reveal emituje
   html.ghz-anim :is(<stagger>) > *{transition:translate .6s var(--gh-d);}
   o specyficznosci (0,2,1). Karty sa bezposrednimi dziecmi kontenera stagger,
   a Elementor emituje te klase jako .elementor .card-interactive — (0,2,0).
   Przez to regula reveal wygrywala i lift kart NIGDY nie byl animowany
   (tak samo dzialo sie ze stara regula z sandboxa, tez (0,2,0)).

   CSS nie scala list transition — wygrywa jedna deklaracja — wiec musi tu byc
   OBOJE: translate dla reveal i transform/box-shadow dla hovera. && powtarza
   selektor rodzica, dajac (0,4,0): bije (0,2,1) bez uciekania sie do !important.
   Stagger dziala dalej, bo swoje transition-delay ustawia regula
   ....is-in > *:nth-child(n) o specyficznosci (0,4,1), czyli wyzszej. */
&&{transition:translate .6s var(--gh-d),transform .25s var(--gh-e),box-shadow .25s var(--gh-e),border-color .25s var(--gh-e);}\n}.elementor .card-interactive:hover,.elementor .card-interactive:focus-visible{box-shadow:0px 4px 8px 0px rgba(35,37,39,0.07),0px 10px 20px 0px rgba(35,37,39,0.08);transform:translate3d(0px, -3px, 0px);/* Cien odpowiada tokenowi --gh-s3, rozpisanemu na dwie warstwy, bo prop
   box-shadow jest strukturalny i nie przyjmie var(). Guard reduced-motion
   trzymany przy efekcie, nie w globalnej regule [class*="s-"] w sandboxie. */
@media (prefers-reduced-motion:reduce){transform:none;}\n}.elementor .cta-ghost{width:fit-content;min-height:48px;font-family:var(--ghz-font-body);font-weight:600;font-size:1rem;color:var(--ghz-sand-50);padding-block-start:0px;padding-block-end:0px;padding-inline-start:24px;padding-inline-end:24px;border-radius:var(--ghz-radius-full);border-block-start-width:1.5px;border-block-end-width:1.5px;border-inline-start-width:1.5px;border-inline-end-width:1.5px;border-color:hsla(0,0%,100%,0.35);border-style:solid;background-color:hsla(0,0%,100%,0);display:inline-flex;justify-content:center;align-items:center;/* Przejscia dla przyciskow ghost. Ten sam powod co przy cta-main: prop
   transition w schemacie atomic nie przenosi krzywej czasowej, a --gh-e
   jest czescia charakteru marki. Zabrane z greyhouse-hover-states.php
   (faza 4), gdzie ghosty siedzialy we wspolnej liscie :is(...). */
transition:background-color .15s var(--gh-e),border-color .15s var(--gh-e),color .15s var(--gh-e),box-shadow .15s var(--gh-e),transform .15s var(--gh-e);\n}.elementor .cta-ghost:hover,.elementor .cta-ghost:focus-visible{border-color:hsla(0,0%,100%,0.55);background-color:hsla(0,0%,100%,0.1);transform:translate3d(0px, -1px, 0px);
/* Poszanowanie prefers-reduced-motion wewnatrz samej klasy, a nie w globalnej
   regule [class*="s-"] w sandboxie: po migracji element moze nie miec juz
   zadnej lokalnej klasy s-*, wiec tamten guard by go nie objal. Zagnieżdzony
   @media siedzi w tym samym bloku co transform i jest po nim, wiec wygrywa
   kolejnoscia przy rownej specyficznosci — bez !important. */
@media (prefers-reduced-motion:reduce){transform:none;}\n}.elementor .cta-ghost:active{transform:translate3d(0px, 0px, 0px);/* Wcisniecie kasuje cien. Pusta tablica box-shadow nie wyemitowalaby nic,
   a potrzebne jest jawne none. */
box-shadow:none;
/* Poszanowanie prefers-reduced-motion wewnatrz samej klasy, a nie w globalnej
   regule [class*="s-"] w sandboxie: po migracji element moze nie miec juz
   zadnej lokalnej klasy s-*, wiec tamten guard by go nie objal. Zagnieżdzony
   @media siedzi w tym samym bloku co transform i jest po nim, wiec wygrywa
   kolejnoscia przy rownej specyficznosci — bez !important. */
@media (prefers-reduced-motion:reduce){transform:none;}\n}.elementor .cta-main-tx{font-family:var(--ghz-font-display);font-weight:600;font-size:1rem;color:var(--ghz-white);letter-spacing:0.04em;text-transform:uppercase;}.elementor .cta-main{font-family:var(--ghz-font-display);font-weight:600;color:var(--ghz-white);border-radius:var(--ghz-radius-full);background-color:var(--ghz-spruce-700);/* Przejscia dla wszystkich glownych CTA. W schemacie atomic prop
   transition nie przenosi krzywej czasowej — ma tylko wlasciwosc
   i czas trwania — a --gh-e jest czescia charakteru marki, wiec
   ta jedna deklaracja zostaje tutaj, zeby zachowac ja co do znaku. */
transition:background-color .15s var(--gh-e),border-color .15s var(--gh-e),color .15s var(--gh-e),box-shadow .15s var(--gh-e),transform .15s var(--gh-e);\n}.elementor .cta-main:hover,.elementor .cta-main:focus-visible{background-color:var(--ghz-spruce-800);box-shadow:0px 4px 8px 0px rgba(35,37,39,0.07),0px 10px 20px 0px rgba(35,37,39,0.08);transform:translate3d(0px, -1px, 0px);}.elementor .cta-main:active{transform:translate3d(0px, 0px, 0px);/* Wciscienie kasuje cien z hovera. Pusta tablica box-shadow nie
   wyemitowalaby nic, a potrzebne jest jawne none. */
box-shadow:none;\n}.elementor .section-l{width:100%;max-width:1240px;padding-block-start:0px;padding-block-end:0px;padding-inline-start:20px;padding-inline-end:20px;}