/* Article illustration viewer: shared by the storefront and article preview. */
html.hve-article-image-modal-open {
    overflow:hidden;
}

.hve-article-hero a.hve-article-image-link {
    display:block;
}

.hve-article-body a.hve-article-image-link,
.hve-article-hero a.hve-article-image-link {
    cursor:zoom-in;
}

.hve-article-body a.hve-article-image-link:focus-visible,
.hve-article-hero a.hve-article-image-link:focus-visible {
    outline:3px solid #167ba0;
    outline-offset:4px;
    border-radius:4px;
}

.hve-article-image-modal {
    box-sizing:border-box;
    width:calc(100vw - 32px);
    max-width:2000px;
    height:calc(100vh - 32px);
    height:calc(100dvh - 32px);
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
    margin:auto;
    padding:0;
    overflow:hidden;
    border:1px solid #d8e6ee;
    border-radius:14px;
    background:#fff;
    color:#293640;
    box-shadow:0 18px 70px rgba(8,30,44,.3);
    font-family:inherit;
    font-size:15px;
    line-height:1.5;
}

.hve-article-image-modal[open] {
    display:flex;
    flex-direction:column;
}

.hve-article-image-modal::backdrop {
    background:rgba(10,27,39,.78);
}

.hve-article-image-toolbar {
    display:flex;
    flex:0 0 auto;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    padding:12px 16px;
    border-bottom:1px solid #d8e6ee;
    background:#f3f8fb;
}

.hve-article-image-title {
    min-width:0;
    flex:1 1 auto;
    margin:0;
    color:#193e55;
    font-size:18px;
    font-weight:600;
    line-height:1.4;
}

.hve-article-image-toolbar button {
    box-sizing:border-box;
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    min-width:44px;
    min-height:44px;
    margin:0;
    padding:9px 14px;
    border:1px solid #b4cbd7;
    border-radius:7px;
    background:#fff;
    color:#193e55;
    font-family:inherit;
    font-size:14px;
    font-weight:600;
    line-height:1.5;
    cursor:pointer;
}

.hve-article-image-toolbar button:hover,
.hve-article-image-toolbar button[aria-pressed="true"] {
    border-color:#0c718f;
    background:#e5f2f8;
}

.hve-article-image-toolbar button:disabled {
    opacity:.55;
    cursor:default;
}

.hve-article-image-modal button:focus-visible,
.hve-article-image-stage:focus-visible {
    outline:3px solid #167ba0;
    outline-offset:-3px;
}

.hve-article-image-stage {
    box-sizing:border-box;
    display:flex;
    flex:1 1 0;
    align-items:center;
    justify-content:center;
    min-width:0;
    min-height:0;
    padding:12px;
    overflow:auto;
    overscroll-behavior:contain;
    background:#eef3f6;
}

.hve-article-image-full {
    display:block;
    flex:0 1 auto;
    width:auto;
    height:auto;
    max-width:100%;
    max-height:100%;
    margin:0;
    object-fit:contain;
    cursor:zoom-in;
}

.hve-article-image-modal.hve-article-image-zoomed .hve-article-image-stage {
    display:block;
}

.hve-article-image-modal.hve-article-image-zoomed .hve-article-image-full {
    max-width:none;
    max-height:none;
    cursor:zoom-out;
}

.hve-article-image-caption,
.hve-article-image-status {
    flex:0 0 auto;
    margin:0;
    padding:10px 16px;
    overflow-wrap:anywhere;
    color:#52616b;
    font-size:14px;
    line-height:1.5;
}

.hve-article-image-caption {
    box-sizing:content-box;
    max-height:4.5em;
    overflow:auto;
    border-top:1px solid #d8e6ee;
}

.hve-article-image-modal [hidden] {
    display:none!important;
}

@media (max-width:575.98px) {
    .hve-article-image-modal {
        width:calc(100vw - 12px);
        height:calc(100vh - 12px);
        height:calc(100dvh - 12px);
        max-height:calc(100vh - 12px);
        max-height:calc(100dvh - 12px);
        border-radius:10px;
    }

    .hve-article-image-toolbar {
        padding:10px 12px;
        gap:8px;
    }

    .hve-article-image-title {
        flex-basis:100%;
        font-size:17px;
    }

    .hve-article-image-close {
        margin-left:auto!important;
    }

    .hve-article-image-stage {
        padding:6px;
    }

    .hve-article-image-caption,
    .hve-article-image-status {
        padding:8px 12px;
        font-size:13px;
    }
}
