/*
 * V19 canonical public header + hero layout
 * This is the only file allowed to control the vertical origin of public heroes.
 */
:root {
    --v19-public-header-height: 76px;
    --v19-public-hero-text-gap: 46px;
}

html, body {
    margin: 0;
    padding: 0;
}

body {
    overflow-x: hidden;
}

#main {
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.site-navbar.fixed-top {
    margin: 0 !important;
}

.home-v19, .properties-v19, .v19-page, .auth-v19 {
    margin: 0 !important;
    padding: 0 !important;
}

/*
 * The hero background starts at the top of the document, behind the fixed
 * navigation. Only its internal content is moved below the real header.
 */
.home-v19 > .home-hero, .properties-v19 > .properties-hero, .v19-page > .v19-hero, .auth-v19 > .auth-v19-hero, .v19-unified-hero {
    box-sizing: border-box !important;
    margin: 0 !important;
    padding-top: calc(var(--v19-public-header-height) + var(--v19-public-hero-text-gap)) !important;
}

.home-hero-grid, .properties-hero-grid, .v19-hero-grid {
    margin-top: 0 !important;
}

.home-hero-copy, .properties-hero-copy, .v19-unified-hero-copy {
    margin-top: 0 !important;
    padding-top: 0 !important;
    transform: none !important;
    overflow: visible !important;
}

.home-eyebrow, .properties-eyebrow, .v19-unified-hero-eyebrow {
    position: relative !important;
    top: auto !important;
    margin-top: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

@media (max-width: 991.98px) {
    :root {
        --v19-public-header-height: 70px;
        --v19-public-hero-text-gap: 40px;
    }
}

@media (max-width: 575.98px) {
    :root {
        --v19-public-header-height: 70px;
        --v19-public-hero-text-gap: 30px;
    }

    .home-eyebrow,   .properties-eyebrow,   .v19-unified-hero-eyebrow {
        max-width: 100% !important;
        white-space: normal !important;
        line-height: 1.4 !important;
    }
}

/* ==========================================================
   V19 GLOBAL NOTIFICATION CENTER
   Flash messages are rendered hidden and moved directly below
   the first page hero. They are never visible above the hero.
   ========================================================== */
.v19-global-notifications {
    padding: 18px 0 0;
    background: #f5f3ec;
}

.v19-global-notifications[hidden] {
    display: none !important;
}

.v19-global-notification-stack {
    display: grid;
    gap: 10px;
}

.v19-global-notification {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    padding: 15px 48px 15px 17px;
    border: 1px solid #cfded6;
    border-radius: 15px;
    background: #f3faf6;
    color: #244b3d;
    box-shadow: 0 10px 28px rgba(23, 63, 51, .06);
    font-size: 13.5px;
    font-weight: 700;
    line-height: 1.55;
}

.v19-global-notification > i {
    flex: 0 0 auto;
    margin-top: 2px;
    color: #287454;
    font-size: 18px;
}

.v19-global-notification span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.v19-global-notification button {
    position: absolute;
    top: 50%;
    right: 12px;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    padding: 0;
    transform: translateY(-50%);
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #65766f;
}

.v19-global-notification button:hover {
    background: rgba(23, 63, 51, .08);
    color: #173f33;
}

.v19-global-notification-danger {
    border-color: #eccaca;
    background: #fff5f5;
    color: #873d3d;
}

.v19-global-notification-danger > i {
    color: #aa4444;
}

.v19-global-notification-warning {
    border-color: #eadcb3;
    background: #fffaf0;
    color: #745a1e;
}

.v19-global-notification-warning > i {
    color: #a77b20;
}

.v19-global-notification-info {
    border-color: #cddfed;
    background: #f3f8fc;
    color: #315d7d;
}

.v19-global-notification-info > i {
    color: #39729a;
}

/* Final canonical hero rhythm: header height + compact content gap. */
:root {
    --v19-public-hero-text-gap: 34px;
}

@media (max-width: 991.98px) {
    :root {
        --v19-public-hero-text-gap: 30px;
    }
}

@media (max-width: 575.98px) {
    :root {
        --v19-public-hero-text-gap: 24px;
    }

    .v19-global-notifications {
        padding-top: 12px;
    }

    .v19-global-notification {
        padding: 14px 43px 14px 14px;
        border-radius: 13px;
        font-size: 12.5px;
    }
}
