/* =============================================================================
   GP Heading Block
   ============================================================================= */

.gp-heading-block {
    display: flex;
    flex-direction: column;
    align-items: inherit;
    gap: var(--gp-heading-block-gap, 1rem);
}

.gp-heading-block__main,
.gp-heading-block__sub,
.gp-heading-block__desc {
    margin: 0;
}

.gp-heading-block__main {
    text-transform: uppercase;
}

/* -----------------------------------------------------------------------------
   Scroll-triggered fade-up animation
   - Hidden state is only applied when JS adds the `--animated` class, so the
     Elementor editor (which does not run frontend JS) always shows content.
   ----------------------------------------------------------------------------- */

.gp-heading-block--animated > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.gp-heading-block--animated > *:nth-child(2) { transition-delay: 0.15s; }
.gp-heading-block--animated > *:nth-child(3) { transition-delay: 0.3s; }

.gp-heading-block--visible > * {
    opacity: 1;
    transform: translateY(0);
}

/* Respect user motion preferences */
@media (prefers-reduced-motion: reduce) {
    .gp-heading-block--animated > * {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
