/**
 * Blue Marine Residence — on-page PDF viewer (build/js/pdf-viewer.js)
 * Follows the gallery lightbox and the theme's language: white 97% backdrop,
 * navy #030C54 on white, ABCProphet 100 title / 300 uppercase labels (.05em),
 * the site's long thin arrows, 29px circle buttons (as the floor filter),
 * 1px hairlines, square corners, .4s ease-in-out. Under the cookie banner.
 */
.bmPdfViewer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 99980;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    color: #030C54;
}

.bmPdfViewer[hidden] {
    display: none !important;
}

.bmPdfViewer__backdrop {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #fff;
    opacity: 0;
    transition: opacity .4s ease-in-out;
}

.bmPdfViewer.is-open .bmPdfViewer__backdrop {
    opacity: .97;
}

/* header: title left, controls right, hairline under */
.bmPdfViewer__head {
    position: relative;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    min-height: 88px;
    padding: 18px clamp(20px, 5.91vw, 85px) 16px;
    border-bottom: 1px solid rgba(3, 12, 84, .13);
    background: #fff; /* opaque: the page's own menu must not show through */
    opacity: 0;
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
    transition: opacity .4s ease-in-out, -webkit-transform .4s ease-in-out;
    transition: opacity .4s ease-in-out, transform .4s ease-in-out;
}

.bmPdfViewer__heading {
    min-width: 0;
    margin-right: 32px;
}

.bmPdfViewer__eyebrow {
    margin: 0 0 6px;
    font-family: ABCProphet;
    font-weight: 300;
    font-size: 1.1rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    opacity: .5;
}

.bmPdfViewer__title {
    margin: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-family: ABCProphet;
    font-weight: 100;
    font-size: clamp(2rem, 2.1vw, 3rem);
    line-height: 1.1;
    text-transform: uppercase;
}

.bmPdfViewer__title:focus {
    outline: 0;
}

.bmPdfViewer__controls {
    -ms-flex-negative: 0;
    flex-shrink: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.bmPdfViewer__group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0 26px;
    border-right: 1px solid rgba(3, 12, 84, .13);
}

.bmPdfViewer__group:first-child {
    padding-left: 0;
}

/* buttons: shared reset */
.bmPdfViewer__btn,
.bmPdfViewer__text {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #030C54;
    cursor: pointer;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    transition: opacity .4s ease-in-out, background-color .4s ease-in-out, color .4s ease-in-out, -webkit-transform .4s ease-in-out;
    transition: opacity .4s ease-in-out, background-color .4s ease-in-out, color .4s ease-in-out, transform .4s ease-in-out;
}

.bmPdfViewer__btn[disabled],
.bmPdfViewer__text[disabled] {
    opacity: .3;
    cursor: default;
}

/* page arrows: the site's long thin arrows, nudge on hover like .btn-primary */
.bmPdfViewer__arrow {
    width: 46px;
    height: 29px;
}

.bmPdfViewer__status {
    min-width: 64px;
    padding: 0 14px;
    text-align: center;
    font-family: ABCProphet;
    font-weight: 300;
    font-size: 1.2rem;
    letter-spacing: .05em;
    white-space: nowrap;
    -webkit-font-feature-settings: "tnum";
    font-feature-settings: "tnum";
}

/* zoom: 29px circles, as the floor filter (.aptFilters .floors__item) */
.bmPdfViewer__circle {
    width: 29px;
    height: 29px;
    border: 1px solid #030C54;
    border-radius: 50%;
}

.bmPdfViewer__circle + .bmPdfViewer__circle {
    margin-left: 8px;
}


/* text actions: uppercase Prophet labels with a thin icon, underline on hover */
.bmPdfViewer__text {
    font-family: ABCProphet;
    font-weight: 300;
    font-size: 1.2rem;
    letter-spacing: .05em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
}

.bmPdfViewer__text svg {
    -ms-flex-negative: 0;
    flex-shrink: 0;
    margin-right: 9px;
}

.bmPdfViewer__text span {
    padding: 4px 0 3px;
    background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1px;
    transition: background-size .4s ease-in-out;
}

.bmPdfViewer__text:focus-visible span {
    background-size: 100% 1px;
}

/* hover effects only with a real mouse: on touch screens Safari would turn the
   first tap into a "hover" and need a second tap */
@media (hover: hover) and (pointer: fine) {
    .bmPdfViewer__arrow:not([disabled]):hover[data-action="next"] {
        -webkit-transform: translateX(4px);
        transform: translateX(4px);
    }

    .bmPdfViewer__arrow:not([disabled]):hover[data-action="prev"] {
        -webkit-transform: translateX(-4px);
        transform: translateX(-4px);
    }

    .bmPdfViewer__circle:not([disabled]):hover {
        background: #030C54;
        color: #fff;
    }

    .bmPdfViewer__text:not([disabled]):hover span,
    .bmPdfViewer__action:hover span {
        background-size: 100% 1px;
    }
}

.bmPdfViewer__text + .bmPdfViewer__text {
    margin-left: 26px;
}

.bmPdfViewer__close {
    margin-left: 26px;
}

.bmPdfViewer__btn:focus-visible,
.bmPdfViewer__text:focus-visible,
.bmPdfViewer__action:focus-visible {
    outline: 1px solid #030C54;
    outline-offset: 4px;
}

/* reading area */
.bmPdfViewer__body {
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-height: 0;
    opacity: 0;
    transition: opacity .4s ease-in-out .1s;
}

.bmPdfViewer.is-open .bmPdfViewer__head,
.bmPdfViewer.is-open .bmPdfViewer__body {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
}

.bmPdfViewer__frame {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: transparent;
    opacity: 0;
    transition: opacity .4s ease-in-out;
}

.bmPdfViewer.is-ready .bmPdfViewer__frame {
    opacity: 1;
}

/* loading: a hairline sweeping under the header + small label */
.bmPdfViewer__loading {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.bmPdfViewer__loading[hidden] {
    display: none;
}

.bmPdfViewer__loadingLine {
    position: absolute;
    top: -1px;
    left: 0;
    width: 30%;
    height: 1px;
    background: #030C54;
    -webkit-animation: bmPdfViewerLoading 1.6s ease-in-out infinite;
    animation: bmPdfViewerLoading 1.6s ease-in-out infinite;
}

.bmPdfViewer__loadingText {
    font-family: ABCProphet;
    font-weight: 300;
    font-size: 1.2rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    opacity: .6;
}

@-webkit-keyframes bmPdfViewerLoading {
    from { -webkit-transform: translateX(-100%); transform: translateX(-100%); }
    to { -webkit-transform: translateX(340%); transform: translateX(340%); }
}

@keyframes bmPdfViewerLoading {
    from { -webkit-transform: translateX(-100%); transform: translateX(-100%); }
    to { -webkit-transform: translateX(340%); transform: translateX(340%); }
}

/* could not load: short message + Try again / Open PDF */
.bmPdfViewer__error {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding: 0 24px;
    text-align: center;
}

.bmPdfViewer__error[hidden] {
    display: none;
}

.bmPdfViewer__errorText {
    margin: 0 0 22px;
    font-family: ABCProphet;
    font-weight: 300;
    font-size: 1.4rem;
    letter-spacing: .05em;
    line-height: 1.4;
    text-transform: uppercase;
}

.bmPdfViewer__errorActions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.bmPdfViewer__action {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    min-height: 40px;
    margin: 0 13px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #030C54;
    cursor: pointer;
    font-family: ABCProphet;
    font-weight: 300;
    font-size: 1.2rem;
    letter-spacing: .05em;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
}

.bmPdfViewer__action span {
    padding: 4px 0 3px;
    background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 100% 1px;
}

/* phones use the floating page counter at the bottom instead */
.bmPdfViewer__dock {
    display: none;
}

/* "turn your phone" hint (landscape PDFs on an upright phone, once per visit) */
.bmPdfViewer__hint {
    position: absolute;
    top: 14px;
    left: 50%;
    z-index: 2;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    max-width: calc(100% - 32px);
    margin: 0;
    padding: 9px 14px 8px;
    border: 1px solid rgba(3, 12, 84, .13);
    background: #fff;
    -webkit-box-shadow: 0 6px 18px rgba(3, 12, 84, .10);
    box-shadow: 0 6px 18px rgba(3, 12, 84, .10);
    color: #030C54;
    font-family: ABCProphet;
    font-weight: 300;
    font-size: 1.1rem;
    letter-spacing: .05em;
    line-height: 1.3;
    text-transform: uppercase;
    pointer-events: none;
    opacity: 0;
    -webkit-transform: translate(-50%, -6px);
    transform: translate(-50%, -6px);
    transition: opacity .4s ease-in-out, -webkit-transform .4s ease-in-out;
    transition: opacity .4s ease-in-out, transform .4s ease-in-out;
}

.bmPdfViewer__hint[hidden] {
    display: none;
}

.bmPdfViewer__hint.is-visible {
    opacity: 1;
    -webkit-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
}

.bmPdfViewer__hint svg {
    -ms-flex-negative: 0;
    flex-shrink: 0;
    margin-right: 9px;
}

html.bmPdfViewer-open,
html.bmPdfViewer-open body {
    overflow: hidden;
}

html.bmPdfViewer-open {
    background: #fff;
}

/* once the viewer has faded in, the page under it is hidden: Safari on iPhone
   would show it behind the status bar and the floating address bar */
html.bmPdfViewer-covered #page,
html.bmPdfViewer-covered .bmContactWidget {
    visibility: hidden;
}

/* tablets: drop Print, keep everything else */
@media only screen and (max-width: 1024px) {
    .bmPdfViewer__print {
        display: none;
    }
}

/* phones: slim header (title, Download, Close), pinch-zoom, floating page counter */
@media only screen and (max-width: 767px) {
    .bmPdfViewer__head {
        min-height: 60px;
        padding: 10px 16px 9px 20px;
    }

    .bmPdfViewer__heading {
        margin-right: 16px;
    }

    .bmPdfViewer__eyebrow {
        margin-bottom: 3px;
        font-size: 1rem;
    }

    .bmPdfViewer__title {
        font-size: 1.8rem;
    }

    .bmPdfViewer__pager,
    .bmPdfViewer__zoom {
        display: none;
    }

    .bmPdfViewer__group {
        padding: 0;
        border: 0;
    }

    /* icon-only Download + Close, 40px touch targets */
    .bmPdfViewer__text {
        width: 40px;
        height: 40px;
    }

    .bmPdfViewer__text span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .bmPdfViewer__text svg {
        margin: 0;
    }

    .bmPdfViewer__text + .bmPdfViewer__text,
    .bmPdfViewer__close {
        margin-left: 4px;
    }

    .bmPdfViewer__dock {
        position: absolute;
        left: 50%;
        bottom: 16px;
        bottom: calc(16px + env(safe-area-inset-bottom));
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        padding: 6px 12px;
        border: 1px solid rgba(3, 12, 84, .13);
        background: #fff;
        -webkit-box-shadow: 0 6px 18px rgba(3, 12, 84, .10);
        box-shadow: 0 6px 18px rgba(3, 12, 84, .10);
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%);
        opacity: 0;
        transition: opacity .4s ease-in-out;
    }

    .bmPdfViewer.is-ready .bmPdfViewer__dock {
        opacity: 1;
    }

    .bmPdfViewer__dock .bmPdfViewer__arrow {
        width: 40px;
        height: 32px;
    }

    .bmPdfViewer__dock .bmPdfViewer__arrow svg {
        width: 34px;
    }
}

/* phones held sideways: compact header so the page gets the height */
@media only screen and (max-height: 500px) {
    .bmPdfViewer__head {
        min-height: 48px;
        padding: 5px 16px 4px 20px;
    }

    .bmPdfViewer__eyebrow,
    .bmPdfViewer__zoom,
    .bmPdfViewer__print {
        display: none;
    }

    .bmPdfViewer__title {
        font-size: 1.6rem;
    }

    .bmPdfViewer__group {
        padding: 0 16px;
    }

    .bmPdfViewer__text {
        width: 40px;
        height: 40px;
    }

    .bmPdfViewer__text span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .bmPdfViewer__text svg {
        margin: 0;
    }

    .bmPdfViewer__text + .bmPdfViewer__text,
    .bmPdfViewer__close {
        margin-left: 4px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bmPdfViewer__hint,
    .bmPdfViewer__backdrop,
    .bmPdfViewer__head,
    .bmPdfViewer__body,
    .bmPdfViewer__frame,
    .bmPdfViewer__dock,
    .bmPdfViewer__btn,
    .bmPdfViewer__text,
    .bmPdfViewer__text span {
        transition: none;
    }

    .bmPdfViewer__loadingLine {
        -webkit-animation: none;
        animation: none;
        width: 100%;
        opacity: .3;
    }
}
