/* ---------------------------- HERO (BASE) ------------------------------- */

.hero {
    width: 100%;
}

.hero-wrapper {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;      
    overflow: hidden;
    padding-top: 8rem; /* default */
}

/* Background image */
.hero-bg-image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

/* Overlay */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-primary);
    opacity: 0.7;
    z-index: 2;
}

/* Content */
.hero-content {
    position: relative;
    z-index: 3;
    color: var(--color-neutral-light);
    max-width: 300px;
    padding-bottom: 1rem;
}

.hero-content h1 { 
    color: white;
    text-shadow: 1px 1px 4px rgba(0,0,0,0.7);
}

.hero-cta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    z-index: 3;
}

.hero-cta button {
    width: auto;
}

/* ---------------- HERO VARIANTS ---------------- */

/* Large hero (homepage) */
.hero--large .hero-wrapper {
    min-height: 88vh;
    padding-top: 11rem;
}

/* Small hero (inner pages) */
.hero--small .hero-wrapper {
    min-height: 40vh;
    padding-top: 10rem;
}

/* Optional: even smaller */
.hero--compact .hero-wrapper {
    min-height: 30vh;
    padding-top: 5rem;
}

@media (min-width: 768px) { 
    .hero-content {
        max-width: 400px;
    }

    .hero--large .hero-wrapper {
        min-height: 90svh;
        padding-top: 8rem;
    }

    .hero--small .hero-wrapper {
        min-height: 45vh;
        padding-top: 4rem;
    }
}

@media (min-width: 1024px) { 
    .hero-content {
        max-width: 500px;
    }

    .hero--large .hero-wrapper {
        min-height: 85svh;
    }

    .hero--small .hero-wrapper {
        min-height: 50vh;
    }
}

@media (min-width: 1440px) { 
    .hero-content {
        max-width: 600px;
    }

    .hero--large .hero-wrapper {
        min-height: 83svh;
    }

    .hero--small .hero-wrapper {
        min-height: 55vh;
        padding-top: 6rem;
    }
}

@media (min-width: 1920px) { 
    .hero-content {
        max-width: 700px;
    }

    .hero--large .hero-wrapper {
        min-height: 85svh;
        padding-top: 12rem;
    }
}