/*
 * HomePro RealesWP Hero Caption
 * Scope: homepage hero caption only. No changes to hero media, navigation, or property search.
 */

.homepro-hero-caption-enabled .home-caption {
    top: 180px;
    left: 50%;
    width: min(760px, calc(100% - 40px));
    transform: translateX(-50%);
    text-align: center;
    z-index: 10;
    padding: 0 18px;
    box-sizing: border-box;
}

.homepro-hero-caption-enabled .home-caption .hp-hero-decor {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    width: min(300px, 72%);
    margin: 0 auto 13px;
    pointer-events: none;
}

.homepro-hero-caption-enabled .home-caption .hp-hero-decor__line {
    display: block;
    flex: 1 1 auto;
    height: 1px;
    background: rgba(255, 255, 255, .62);
    transform: scaleX(0);
    transform-origin: center;
}

.homepro-hero-caption-enabled .home-caption .hp-hero-decor__icon {
    width: 37px;
    height: 37px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #0eaaa6;
    opacity: 0;
    transform: translateY(8px) scale(.96);
}

.homepro-hero-caption-enabled .home-caption .hp-hero-decor__icon svg {
    width: 31px;
    height: 31px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .22));
}

.homepro-hero-caption-enabled .home-caption .home-title {
    max-width: 720px;
    margin: 0 auto 11px;
    color: #fff;
    font-size: clamp(29px, 3.1vw, 43px);
    line-height: 1.08;
    letter-spacing: .012em;
    font-weight: 700;
    text-transform: uppercase;
    text-shadow: 0 2px 14px rgba(0, 0, 0, .24);
    opacity: 0;
    transform: translateY(12px);
}

.homepro-hero-caption-enabled .home-caption .home-title::after {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    margin: 14px auto 0;
    border-radius: 50%;
    background: #0eaaa6;
    box-shadow: 0 0 0 4px rgba(14, 170, 166, .12);
}

.homepro-hero-caption-enabled .home-caption .home-subtitle {
    max-width: 690px;
    margin: 0 auto;
    padding: 0 0 21px;
    color: rgba(255, 255, 255, .94);
    font-size: clamp(12px, 1.25vw, 15px);
    line-height: 1.55;
    letter-spacing: .025em;
    font-weight: 500;
    text-transform: uppercase;
    text-shadow: 0 1px 9px rgba(0, 0, 0, .28);
    opacity: 0;
    transform: translateY(10px);
}

.homepro-hero-caption-enabled .home-caption > .btn.btn-green,
.homepro-hero-caption-enabled .home-caption > a.btn-green {
    position: relative;
    min-width: 142px;
    min-height: 40px;
    padding: 9px 19px;
    border: 0;
    border-radius: 2px;
    background: #0eaaa6;
    color: #fff;
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
    box-shadow: 0 3px 10px rgba(0, 0, 0, .10);
    overflow: hidden;
    opacity: 0;
    transform: translateY(10px);
    transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}

.homepro-hero-caption-enabled .home-caption > .btn.btn-green::after,
.homepro-hero-caption-enabled .home-caption > a.btn-green::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.20) 50%, transparent 75%);
    transform: translateX(-130%);
    transition: transform .55s ease;
    pointer-events: none;
}

.homepro-hero-caption-enabled .home-caption.hp-caption-ready .hp-hero-decor__icon {
    animation: hpHeroIn .52s .08s ease forwards;
}

.homepro-hero-caption-enabled .home-caption.hp-caption-ready .hp-hero-decor__line {
    animation: hpHeroLine .68s .24s ease forwards;
}

.homepro-hero-caption-enabled .home-caption.hp-caption-ready .home-title {
    animation: hpHeroIn .58s .34s ease forwards;
}

.homepro-hero-caption-enabled .home-caption.hp-caption-ready .home-subtitle {
    animation: hpHeroIn .55s .53s ease forwards;
}

.homepro-hero-caption-enabled .home-caption.hp-caption-ready > .btn.btn-green,
.homepro-hero-caption-enabled .home-caption.hp-caption-ready > a.btn-green {
    animation: hpHeroIn .5s .72s ease forwards;
}

@keyframes hpHeroIn {
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes hpHeroLine {
    to { transform: scaleX(1); }
}

@media (hover: hover) and (pointer: fine) {
    .homepro-hero-caption-enabled .home-caption > .btn.btn-green:hover,
    .homepro-hero-caption-enabled .home-caption > a.btn-green:hover {
        background: #0c9995;
        color: #fff;
        transform: translateY(-1px);
        box-shadow: 0 5px 14px rgba(0, 0, 0, .14);
    }

    .homepro-hero-caption-enabled .home-caption > .btn.btn-green:hover::after,
    .homepro-hero-caption-enabled .home-caption > a.btn-green:hover::after {
        transform: translateX(130%);
    }
}

@media (max-width: 991px) {
    .homepro-hero-caption-enabled .home-caption {
        top: 145px;
        width: min(680px, calc(100% - 30px));
    }

    .homepro-hero-caption-enabled .home-caption .hp-hero-decor {
        width: min(260px, 68%);
        margin-bottom: 10px;
    }
}

@media (max-width: 767px) {
    .homepro-hero-caption-enabled .home-caption {
        top: 128px;
        width: calc(100% - 24px);
        padding: 0 10px;
    }

    .homepro-hero-caption-enabled .home-caption .hp-hero-decor {
        width: 210px;
        max-width: 70%;
        gap: 10px;
        margin-bottom: 9px;
    }

    .homepro-hero-caption-enabled .home-caption .hp-hero-decor__icon {
        width: 32px;
        height: 32px;
    }

    .homepro-hero-caption-enabled .home-caption .hp-hero-decor__icon svg {
        width: 27px;
        height: 27px;
    }

    .homepro-hero-caption-enabled .home-caption .home-title {
        max-width: 92%;
        margin-bottom: 9px;
        font-size: clamp(26px, 7.6vw, 34px);
        line-height: 1.1;
    }

    .homepro-hero-caption-enabled .home-caption .home-title::after {
        width: 7px;
        height: 7px;
        margin-top: 11px;
    }

    .homepro-hero-caption-enabled .home-caption .home-subtitle {
        max-width: 94%;
        padding-bottom: 17px;
        font-size: 12px;
        line-height: 1.48;
        letter-spacing: .018em;
    }

    .homepro-hero-caption-enabled .home-caption > .btn.btn-green,
    .homepro-hero-caption-enabled .home-caption > a.btn-green {
        min-width: 138px;
        min-height: 40px;
        padding: 8px 18px;
        font-size: 15px;
        line-height: 20px;
        font-weight: 400;
    }
}

@media (max-width: 420px) {
    .homepro-hero-caption-enabled .home-caption {
        top: 118px;
    }

    .homepro-hero-caption-enabled .home-caption .hp-hero-decor {
        width: 180px;
    }

    .homepro-hero-caption-enabled .home-caption .home-title {
        font-size: 27px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .homepro-hero-caption-enabled .home-caption .hp-hero-decor__icon,
    .homepro-hero-caption-enabled .home-caption .hp-hero-decor__line,
    .homepro-hero-caption-enabled .home-caption .home-title,
    .homepro-hero-caption-enabled .home-caption .home-subtitle,
    .homepro-hero-caption-enabled .home-caption > .btn.btn-green,
    .homepro-hero-caption-enabled .home-caption > a.btn-green {
        animation: none !important;
        transition: none !important;
        opacity: 1;
        transform: none;
    }
}
