.m25_hero {
    position: relative;
    width: 100%;
    /* Fill exactly the viewport below the topline (37px) + sticky header (100px) */
    min-height: calc(100vh - 137px);
    overflow: hidden;
    background: #353434;
    color: #d4d4d4;
}

@media (max-width: 720px) {
    .m25_hero { min-height: calc(100vh - 102px); }
}

.m25_hero_bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.m25_hero_bg_video,
.m25_hero_bg_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
    opacity: 0.4;
    display: block;
}

.m25_hero_overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(53, 52, 52, 0) 9%, rgba(53, 52, 52, 0.9) 94%),
        linear-gradient(180deg, #353434 0%, rgba(53, 52, 52, 0) 27.5%);
    pointer-events: none;
}

.m25_hero_content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 137px);
    padding: 60px 24px 100px;
    text-align: center;
}

@media (max-width: 720px) {
    .m25_hero_content { min-height: calc(100vh - 102px); padding: 48px 16px 80px; }
}

.m25_hero_topline {
    margin: 0 0 0.4em;
    font-family: 'Nexa-Black-Italic', 'Nexa', system-ui, sans-serif;
    font-style: italic;
    font-weight: 900;
    font-size: clamp(28px, 4vw, 50px);
    letter-spacing: -0.03em;
    text-transform: uppercase;
    color: #d4d4d4;
}

.m25_hero_topline--bottom {
    margin: 0.4em 0 0;
}

.m25_hero_title {
    margin: 0 0 1.2rem;
    font-family: 'Nexa-Black-Italic', 'Nexa', system-ui, sans-serif;
    font-style: italic;
    font-weight: 900;
    font-size: clamp(48px, 8vw, 96px);
    line-height: 1;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    color: #d4d4d4;
}

/* Accent words inside the title are wrapped in <em> in the ACF text field
   (allowed by wp_kses_post). They render in pure white on their own line. */
.m25_hero_title em,
.m25_hero_title .m25_hero_title_accent {
    display: block;
    color: #ffffff;
    font-style: inherit;
    font-weight: inherit;
}

/* Cycling word inside the title — JS swaps the textContent on an interval,
   we fade it out and in via opacity. Inline-block + min-width keeps the
   surrounding text from snapping when shorter words are shown. */
.m25_word_cycle {
    display: inline-block;
    opacity: 1;
    will-change: opacity, contents;
}

.m25_hero_text {
    max-width: 813px;
    margin: 0 0 2.5rem;
    font-family: 'Nexa-Regular', 'Nexa', system-ui, sans-serif;
    font-size: clamp(16px, 1.4vw, 22px);
    line-height: 1.4;
    color: #d4d4d4;
}

.m25_hero_text p { margin: 0 0 0.5em; }
.m25_hero_text p:last-child { margin-bottom: 0; }

.m25_hero_ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}

/* Hero CTAs use the shared .showm_cta styles defined in
   BLUEtheWEB-child/style.css → showm_render_cta() in functions.php. */

.m25_hero_scroll {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    z-index: 2;
    font-family: 'Nexa-Bold', 'Nexa', system-ui, sans-serif;
    font-size: 15px;
    color: #d4d4d4;
    text-decoration: none;
}

.m25_hero_scroll_arrow {
    width: 10px;
    height: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-left: 4px;
    animation: m25_hero_scroll_bounce 2s infinite ease-in-out;
}

@keyframes m25_hero_scroll_bounce {
    0%, 100% { transform: rotate(45deg) translate(0, 0); }
    50%      { transform: rotate(45deg) translate(4px, 4px); }
}

@media (max-width: 768px) {
    .m25_hero_content { padding: 140px 16px 100px; }
    .m25_hero_title   {
        font-size: clamp(28px, 9vw, 56px);
        word-break: break-word;
        overflow-wrap: anywhere;
    }
    .m25_hero_topline { font-size: clamp(20px, 5.5vw, 30px); }
}
