.elementor-widget .home-02-hero {
  position: relative;
  z-index: var(--z-raised);
  background: var(--color-bg);
}
.elementor-widget .home-02-hero__track { display: grid; }
.elementor-widget .home-02-hero__slide {
  grid-area: 1 / 1;
  display: flex;
  flex-direction: column-reverse;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dur-slide) var(--ease-in-out), visibility 0s linear var(--dur-slide);
}
.elementor-widget .home-02-hero__slide.is-active {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

.elementor-widget /* Tekst */
.home-02-hero__content {
  padding: var(--space-xl) var(--gutter) var(--space-2xl);
}
.elementor-widget .home-02-hero__kicker {
  margin: 0 0 var(--space-s);
  font-family: var(--font-serif);
  font-weight: var(--weight-regular);
  font-size: var(--step-2);
  line-height: var(--leading-heading);
  color: var(--color-heading);
}
.elementor-widget .home-02-hero__title {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: var(--weight-regular);
  font-size: var(--text-display);
  line-height: var(--leading-tight);
  color: var(--color-heading);
}
.elementor-widget .home-02-hero__accent { color: var(--color-accent-display); }
.elementor-widget .home-02-hero__rule {
  display: block;
  width: var(--space-2xl);
  height: var(--border-width);
  margin-block: var(--space-l) var(--space-m);
  background: var(--color-sage-300);
}
.elementor-widget .home-02-hero__ornament {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  width: max-content;
  margin-block: var(--space-l) var(--space-m);
}
.elementor-widget .home-02-hero__ornament::before, .elementor-widget .home-02-hero__ornament::after {
  content: "";
  width: var(--space-2xl);
  height: var(--border-width);
  background: var(--color-accent-decor);
}
.elementor-widget .home-02-hero__lead {
  max-width: var(--measure-narrow);
  margin: 0 0 var(--space-l);
  font-size: var(--text-lead);
  line-height: var(--leading-body);
}
.elementor-widget .home-02-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s);
}

.elementor-widget /* Przyciski */
.home-02-hero__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-height);
  padding-inline: var(--space-l);
  border: var(--border-width) solid var(--color-action);
  border-radius: var(--radius-s);
  font-family: var(--font-sans);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-decoration: none;
  transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.elementor-widget .home-02-hero__btn--primary {
  background: var(--color-action);
  color: var(--color-on-action);
}
.elementor-widget .home-02-hero__btn--primary:hover {
  background: var(--color-action-hover);
  border-color: var(--color-action-hover);
  transform: translateY(var(--lift));
}
.elementor-widget .home-02-hero__btn--primary:active {
  background: var(--color-action-active);
  border-color: var(--color-action-active);
  transform: translateY(0);
}
.elementor-widget .home-02-hero__btn--ghost {
  background: transparent;
  color: var(--color-heading);
  border-color: var(--color-line-strong);
}
.elementor-widget .home-02-hero__btn--lavender { border-color: var(--color-accent-decor); }
.elementor-widget .home-02-hero__btn--ghost:hover {
  border-color: var(--color-action);
  color: var(--color-action);
  transform: translateY(var(--lift));
}
.elementor-widget .home-02-hero__btn--ghost:active {
  background: var(--color-sage-100);
  transform: translateY(0);
}
.elementor-widget .home-02-hero__btn[aria-disabled="true"] {
  background: var(--color-disabled-bg);
  border-color: var(--color-disabled-bg);
  color: var(--color-disabled-text);
  pointer-events: none;
}

.elementor-widget /* Media */
.home-02-hero__media { position: relative; }
.elementor-widget .home-02-hero__photo {
  display: flex;
  align-items: flex-end;
  aspect-ratio: 4 / 3;
  padding: var(--space-s);
  background-color: var(--color-placeholder);
  background-image: repeating-linear-gradient(135deg, var(--color-placeholder-hatch) 0 var(--border-width), transparent var(--border-width) var(--space-s));
}
.elementor-widget .home-02-hero__photo {
  position: relative;
  overflow: hidden;
}
.elementor-widget .home-02-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.elementor-widget .home-02-hero__badge {
  position: absolute;
  right: var(--gutter);
  bottom: var(--space-s);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2xs);
  width: var(--badge-s);
  aspect-ratio: 1;
  border: var(--border-width) solid var(--color-accent-decor);
  border-radius: var(--radius-round);
  background: var(--color-surface);
  box-shadow: var(--shadow-2);
  text-align: center;
}
.elementor-widget .home-02-hero__badge-text {
  font-size: var(--text-micro);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-tight);
  white-space: nowrap;
  line-height: var(--leading-heading);
  color: var(--color-heading);
}

.elementor-widget /* Ikony */
.home-02-hero__icon {
  width: var(--icon-s);
  height: var(--icon-s);
  fill: none;
  stroke: currentColor;
  stroke-width: var(--icon-stroke);
  stroke-linecap: round;
  stroke-linejoin: round;
}
.elementor-widget .home-02-hero__icon--s { width: var(--space-s); height: var(--space-s); }
.elementor-widget .home-02-hero__icon--accent { color: var(--color-accent-display); }
.elementor-widget .home-02-hero__icon--filled {
  color: var(--color-accent-decor);
  fill: currentColor;
  stroke: none;
}

.elementor-widget /* Sterowanie */
.home-02-hero__controls {
  position: absolute;
  top: var(--space-s);
  left: var(--gutter);
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
}
.elementor-widget .home-02-hero__dot {
  width: var(--space-xs);
  height: var(--space-xs);
  padding: 0;
  border: var(--border-width) solid var(--color-sage-700);
  border-radius: var(--radius-round);
  background: transparent;
  cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.elementor-widget .home-02-hero__dot:hover { transform: scale(var(--grow-scale)); }
.elementor-widget .home-02-hero__dot:active { transform: scale(1); }
.elementor-widget .home-02-hero__dot[aria-current="true"] { background: var(--color-sage-700); }
.elementor-widget .home-02-hero__pause {
  display: inline-grid;
  place-items: center;
  width: var(--space-l);
  height: var(--space-l);
  padding: 0;
  border: 0;
  border-radius: var(--radius-round);
  background: transparent;
  color: var(--color-sage-700);
  cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-out);
}
.elementor-widget .home-02-hero__pause:hover { background: var(--color-sage-100); }
.elementor-widget .home-02-hero__pause:active { background: var(--color-sage-200); }
.elementor-widget .home-02-hero__pause:disabled { color: var(--color-disabled-text); cursor: not-allowed; }
.elementor-widget .home-02-hero__play-icon { display: none; }
.elementor-widget .home-02-hero__pause[aria-pressed="true"] .home-02-hero__pause-icon { display: none; }
.elementor-widget .home-02-hero__pause[aria-pressed="true"] .home-02-hero__play-icon { display: block; }
.elementor-widget .home-02-hero__pause[hidden] { display: none; }

@media (min-width: 768px) {
  .elementor-widget .home-02-hero__photo { aspect-ratio: 16 / 10; }
  .elementor-widget .home-02-hero__badge { width: var(--badge-m); }
}

@media (min-width: 1024px) {
  .elementor-widget /* Hero na pełną szerokość ekranu (makieta 01-HOME-1): zdjęcie pod całym banerem, .elementor-widget tekst na jasnej części po lewej */
  .home-02-hero__slide {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    min-height: var(--hero-min);
  }
  .elementor-widget .home-02-hero__content {
    position: relative;
    z-index: var(--z-base);
    max-width: calc(var(--measure) + max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter))));
    padding-block: var(--space-3xl) var(--space-4xl);
    padding-inline-start: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));
    padding-inline-end: var(--space-l);
  }
  .elementor-widget .home-02-hero__media { position: absolute; inset: 0 0 0 30%; }
  .elementor-widget .home-02-hero__photo {
    height: 100%;
    aspect-ratio: auto;
    padding: 0;
  }
  .elementor-widget .home-02-hero__img { object-position: 70% center; }
  .elementor-widget /* Gradient z powodem: zdjęcie płynnie przechodzi w jasne tło pod tekstem, .elementor-widget jak na makiecie */
  .home-02-hero__photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--color-bg), transparent 45%);
  }
  .elementor-widget .home-02-hero__badge {
    width: var(--badge-l);
    right: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));
    bottom: var(--space-xl);
  }
  .elementor-widget .home-02-hero__controls {
    top: auto;
    bottom: var(--space-xl);
    left: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));
  }
}

@media (min-width: 1280px) {
  .elementor-widget .home-02-hero__slide { min-height: var(--hero-min-l); }
}

.elementor-widget /* Jedno zorkiestrowane wejście: tekst aktywnego slajdu pojawia się warstwami */
@media (prefers-reduced-motion: no-preference) {
  .home-02-hero__slide.is-active .home-02-hero__content > * {
    animation: home-02-hero-reveal var(--dur-slow) var(--ease-out) both;
  }
  .home-02-hero__slide.is-active .home-02-hero__content > :nth-child(2) { animation-delay: var(--stagger); }
  .home-02-hero__slide.is-active .home-02-hero__content > :nth-child(3) { animation-delay: calc(2 * var(--stagger)); }
  .home-02-hero__slide.is-active .home-02-hero__content > :nth-child(4) { animation-delay: calc(3 * var(--stagger)); }
  .home-02-hero__slide.is-active .home-02-hero__content > :nth-child(5) { animation-delay: calc(4 * var(--stagger)); }
  .home-02-hero__slide.is-active .home-02-hero__badge {
    animation: home-02-hero-badge var(--dur-slow) var(--ease-out) calc(5 * var(--stagger)) both;
  }
}
@keyframes home-02-hero-reveal {
  from { opacity: 0; transform: translateY(var(--reveal-shift)); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes home-02-hero-badge {
  from { opacity: 0; transform: scale(var(--enter-scale)); }
  to { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .elementor-widget .home-02-hero__slide, .elementor-widget .home-02-hero__btn, .elementor-widget .home-02-hero__dot { transition-duration: 0s; }
}
