/* =====================================================
 * 北海明珠全站图片展示系统
 *
 * 目标：
 * 1. 优先调用 COS 已生成的 320 / 768 / 1280 / 1920 网页图；
 * 2. 卡片、高分屏优先使用清晰的 768/1280 缩略图，不直接加载相机原图；
 * 3. 菜品、宴会厅、宴会实录、资讯等卡片完整显示照片，不再硬裁掉一半；
 * 4. 固定比例卡片使用“模糊同图背景 + 前景完整图”，兼顾整齐与完整；
 * 5. 首屏大图、横幅和轮播继续允许 cover，以保持视觉冲击力。
 * ===================================================== */

.bhmz-media-image{
    display:block;
    max-width:100%;
    image-rendering:auto;
}

/* 大型首屏/轮播：仍铺满画面。 */
.home-hero-slide img,
.junren-slide>img{
    width:100%;
    height:100%;
    object-fit:cover!important;
    object-position:center center!important;
}

/* 海报、菜单、Logo、二维码：必须完整。 */
.bhmz-media-poster{
    object-fit:contain!important;
    object-position:center center!important;
}

/* 文章正文图片保持原始比例：大图最多撑满正文，小图不强行放大。 */
.article-content img,
.bhmz-article-content img,
.page-content img{
    display:block;
    width:auto!important;
    max-width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin-left:auto;
    margin-right:auto;
    object-fit:contain!important;
    object-position:center center!important;
}

/* 详情主图保持完整，并占满可用内容宽度。 */
.bhmz-media-natural,
.detail-cover,
.content-card .detail-cover,
.article-detail-card .detail-cover,
.activity-detail-cover,
.record-detail-cover img{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center center!important;
}

/* -----------------------------------------------------
 * 智能完整图框
 * JS 会把下列图片容器标记为 .bhmz-smart-media-frame，
 * 并将当前清晰缩略图写入 --bhmz-frame-image。
 * ----------------------------------------------------- */
.bhmz-smart-media-frame{
    position:relative!important;
    isolation:isolate;
    overflow:hidden!important;
    background:#e8edf4!important;
}

.bhmz-smart-media-frame::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:-16px;
    background-image:var(--bhmz-frame-image);
    background-position:center;
    background-size:cover;
    filter:blur(18px) saturate(.82);
    opacity:.32;
    transform:scale(1.08);
    transition:transform .45s ease,opacity .45s ease;
    pointer-events:none;
}

.bhmz-smart-media-frame::after{
    content:none;
}

.bhmz-smart-media-frame:hover::before{
    opacity:.39;
    transform:scale(1.13);
}

.bhmz-smart-media-frame>img,
.bhmz-smart-media-frame picture,
.bhmz-smart-media-frame picture>img,
.bhmz-smart-media-frame img.bhmz-smart-media-image{
    position:relative;
    z-index:1;
}

/* 卡片和相册前景图完整显示，不再强制截掉人物、菜盘或厅房边缘。 */
.bhmz-smart-media-frame>img,
.bhmz-smart-media-frame picture>img,
.bhmz-smart-media-frame img.bhmz-smart-media-image{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
}

/* 极浅内边距可避免竖图紧贴边缘；横图基本无感。 */
.bhmz-smart-media-frame:not(.bhmz-smart-media-frame--edge)>img,
.bhmz-smart-media-frame:not(.bhmz-smart-media-frame--edge) picture>img,
.bhmz-smart-media-frame:not(.bhmz-smart-media-frame--edge) img.bhmz-smart-media-image{
    padding:2px;
}

/* 所有卡片悬停只抬起卡片，不再把前景图放大后重新裁切。 */
.bhmz-smart-media-frame:hover>img,
.bhmz-smart-media-frame:hover picture>img,
.bhmz-smart-media-frame:hover img.bhmz-smart-media-image{
    transform:none!important;
}

/* -----------------------------------------------------
 * 全站已审查的卡片/相册容器兜底。
 * 即使 JS 较晚执行，也先避免 object-fit:cover 截图。
 * ----------------------------------------------------- */
.home-cuisine-image img,
.home-hall-card img,
.home-banquet-guide-cover img,
.home-dining-photo img,
.home-record-cover img,
.home-insight-feature>a>div:first-child img,
.dining-dish-cover img,
.dining-space-cover img,
.information-card-image img,
.hub-card-cover img,
.record-cover img,
.about-card-cover img,
.hotel-update-cover img,
.news-cover img,
.article-cover img,
.case-cover img,
.banquet-record-cover img,
.record-gallery-grid img,
.hall-gallery-thumb img,
.hall-record-card__cover img,
.hall-focus-gallery__lead img,
.hall-focus-gallery__grid img,
.activity-center-featured-media img,
.activity-center-card-media img,
.bs-update-image img,
.hi-update-image img,
.junren-article img,
.junren-wall-item img,
.junren-film-item img,
.gallery-grid img,
.about-v5-service-card img,
.share-card-image img{
    object-fit:contain!important;
    object-position:center center!important;
}

/* 只有真正的全屏首图和视频封面保留铺满。内容照片、卡片和相册全部完整展示。 */
.home-hero-slide img,
.junren-slide>img,
.junren-video-main>img,
.junren-video-small>img{
    object-fit:cover!important;
}

/* 活动是带文字的宣传图，任何位置都完整显示。 */
.activity-center-featured-media,
.activity-center-card-media,
.activity-detail-content-card,
.activity-modal-card>picture,
.activity-modal-media{
    background:#f2f5fa;
}

.activity-center-featured-media img,
.activity-center-card-media img,
.activity-detail-cover,
.activity-modal-card>picture img,
.activity-modal-media img{
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
}

.activity-center-featured-media img,
.activity-center-card-media img{
    width:100%;
    height:100%;
}

/* 文章头图：前景完整显示，模糊同图填充宽屏背景。 */
.bhmz-id-article .bhmz-article-hero-media{
    overflow:hidden;
    background:#0b1f3d;
    transform:none!important;
}

.bhmz-id-article .bhmz-article-hero-media::before{
    content:"";
    position:absolute;
    inset:-28px;
    background-image:var(--article-hero-image);
    background-position:center;
    background-size:cover;
    filter:blur(22px) saturate(.8);
    opacity:.62;
    transform:scale(1.08);
}

.bhmz-id-article .bhmz-article-hero-media img{
    position:relative;
    z-index:1;
    width:100%;
    height:100%;
    object-fit:contain!important;
    object-position:center center!important;
    opacity:.86;
}

/* 详情封面用完整图框，避免 4:3 容器把竖图/超宽图截断。 */
.bhmz-article-cover,
.record-detail-cover{
    position:relative;
    isolation:isolate;
    background:#edf1f6;
}

.bhmz-article-cover::before,
.record-detail-cover::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:-16px;
    background-image:var(--bhmz-frame-image);
    background-position:center;
    background-size:cover;
    filter:blur(18px);
    opacity:.24;
}

.bhmz-article-cover img,
.record-detail-cover img{
    position:relative;
    z-index:1;
    object-fit:contain!important;
}

/* 放大查看必须完整。 */
.hall-lightbox img,
.junren-lightbox img,
[data-lightbox] img,
.lightbox img{
    object-fit:contain!important;
    object-position:center center!important;
}

/* 无图片时的占位块永远在模糊背景之上。 */
.bhmz-smart-media-frame>.cover-placeholder,
.bhmz-smart-media-frame>.news-placeholder,
.bhmz-smart-media-frame>[class*="placeholder"]{
    position:relative;
    z-index:2;
}

@media(max-width:680px){
    .activity-center-featured-media,
    .activity-center-card-media{
        min-height:0!important;
        height:auto!important;
        aspect-ratio:auto!important;
    }

    .activity-center-featured-media img,
    .activity-center-card-media img,
    .activity-modal-card>picture img,
    .activity-modal-media img{
        width:100%!important;
        height:auto!important;
        max-height:none!important;
    }

    /* 手机上卡片仍保持整齐，但图片不截断。 */
    .bhmz-smart-media-frame>img,
    .bhmz-smart-media-frame picture>img{
        padding:1px;
    }
}

@media(prefers-reduced-motion:reduce){
    .bhmz-smart-media-frame::before,
    .bhmz-smart-media-frame>img,
    .bhmz-smart-media-frame picture>img{
        transition:none!important;
    }
}

/* 宴会实录与活动详情首屏：完整前景图 + 模糊同图背景。 */
.record-detail-hero,
.activity-detail-hero{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:#0b2448!important;
    background-image:none!important;
}

.record-detail-hero-media,
.activity-detail-hero-media{
    position:absolute;
    z-index:0;
    inset:0;
    overflow:hidden;
}

.record-detail-hero-media::before,
.activity-detail-hero-media::before{
    content:"";
    position:absolute;
    inset:-28px;
    background-image:var(--record-hero, var(--activity-detail-image));
    background-position:center;
    background-size:cover;
    filter:blur(22px) saturate(.82);
    opacity:.72;
    transform:scale(1.08);
}

.activity-detail-hero-media::before{
    background-image:var(--activity-detail-image);
}

.record-detail-hero-media img,
.activity-detail-hero-media img{
    position:relative;
    z-index:1;
    width:100%;
    height:100%;
    object-fit:contain!important;
    object-position:center center!important;
    opacity:.88;
}

.record-detail-shade,
.activity-detail-hero-shade{
    z-index:1!important;
}

.record-detail-hero-inner,
.activity-detail-hero-inner{
    position:relative;
    z-index:2!important;
}

/* 智能图框中的文字、标签和按钮始终位于图片上方。 */
.home-hall-overlay,
.record-type-badge,
.record-featured-badge,
.dining-recommend-badge,
.dining-season-badge,
.information-card-image>span,
.information-card-image>b,
.hub-card-cover>span,
.record-cover>span,
.activity-center-card-badges,
.activity-modal-media-badges,
.junren-wall-item span,
.junren-film-item i{
    z-index:3!important;
}

/* 关闭活动详情旧版的 cover 背景层，避免与完整图片层重复叠加。 */
.activity-detail-hero::before{
    content:none!important;
    display:none!important;
}


/* -----------------------------------------------------
 * 补充审查：包间弹窗、品牌内容图、厅房轮播与文章列表。
 * ----------------------------------------------------- */
.dining-offer-media,
.dining-story-grid article>a>div:first-child,
.dining-story-track article>a>div:first-child,
.dining-room-photo,
.dining-space-main-image,
.dining-space-thumbs button,
.hall-gallery-stage,
.hall-card-media,
.hall-slider__slide,
.hall-focus-hero__media,
.about-v5-hero-photo,
.hi-hotel-photo,
.bs-photo,
.bs-craft-photos figure,
.junren-story-visual,
.junren-article-media,
.detail-gallery a{
    background:#e8edf4!important;
}

.dining-offer-media,
.dining-story-grid article>a>div:first-child,
.dining-story-track article>a>div:first-child,
.junren-article-media{
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:16/9;
}

.dining-offer-media img,
.dining-story-grid article>a>div:first-child img,
.dining-story-track article>a>div:first-child img,
.dining-room-photo img,
.dining-space-main-image img,
.dining-space-thumbs img,
.hall-gallery-stage img,
.hall-card-media img,
.hall-slider__slide img,
.hall-focus-hero__media img,
.about-v5-hero-photo img,
.hi-hotel-photo img,
.bs-photo img,
.bs-craft-photos img,
.junren-story-visual img,
.junren-article-media img,
.detail-gallery img{
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
}

.dining-space-main-image img{
    width:100%!important;
    height:100%!important;
}

/* 图上文案、标题和操作层保持清晰，不被模糊背景遮挡。 */
.about-v5-hero-photo figcaption,
.hi-hotel-photo figcaption,
.bs-photo figcaption,
.bs-craft-photos figcaption,
.junren-story-quote,
.hall-slider__caption,
.hall-gallery-stage__shade,
.hall-gallery-stage__caption,
.hall-focus-hero__media>div:last-child,
.dining-story-grid small,
.dining-story-track small{
    position:absolute;
    z-index:3!important;
}

/* 文章正文的图片说明/相册图片也使用网页图，不再拉伸低清原图。 */
.article-content figure,
.bhmz-article-content figure,
.page-content figure{
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
}

@media(max-width:680px){
    .about-v5-hero-photo img,
    .hi-hotel-photo img,
    .bs-photo img,
    .bs-craft-photos img,
    .junren-story-visual img{
        padding:1px!important;
    }
}

/* =====================================================
 * V2：容器随照片比例自适应
 * 解决“图片完整了，但卡片仍很高，照片上下出现大块空白”的问题。
 * ===================================================== */

/* 纯图片卡片按 JS 识别出的实际比例调整高度。 */
.bhmz-adaptive-media-frame{
    aspect-ratio:var(--bhmz-media-ratio, 4 / 3)!important;
    min-height:0!important;
    height:auto!important;
}

.bhmz-adaptive-media-frame>picture,
.bhmz-adaptive-media-frame>picture>img,
.bhmz-adaptive-media-frame>img{
    width:100%!important;
    height:100%!important;
}

/* 图片比例与容器接近时，只做极轻微裁切，消除细小边缘；差异明显时保持整图。 */
.bhmz-smart-media-frame.bhmz-smart-fit-cover>img,
.bhmz-smart-media-frame.bhmz-smart-fit-cover picture>img,
.bhmz-smart-media-frame.bhmz-smart-fit-cover img.bhmz-smart-media-image{
    object-fit:cover!important;
    padding:0!important;
}

.bhmz-smart-media-frame.bhmz-smart-fit-contain>img,
.bhmz-smart-media-frame.bhmz-smart-fit-contain picture>img,
.bhmz-smart-media-frame.bhmz-smart-fit-contain img.bhmz-smart-media-image{
    object-fit:contain!important;
}

/* 自适应后背景只负责填充极少量边缘，不再形成大片灰色区域。 */
.bhmz-adaptive-media-frame.bhmz-smart-media-frame::before{
    inset:-8px;
    filter:blur(13px) saturate(.9);
    opacity:.22;
}

.bhmz-adaptive-media-frame.bhmz-smart-media-frame:hover::before{
    opacity:.28;
}

/* 首页宴会厅是特殊拼图：JS 根据五张图片真实比例计算两行高度。 */
.home-hall-grid-redesign{
    --home-hall-row-height:235px;
}

.home-hall-card{
    min-height:0!important;
}

.home-hall-card>a{
    position:relative;
    z-index:1;
    overflow:hidden;
}

.home-hall-card.bhmz-smart-media-frame::before{
    inset:-7px;
    filter:blur(12px) saturate(.9);
    opacity:.2;
}

.home-hall-card>img,
.home-hall-card>a>img,
.home-hall-card picture>img{
    object-fit:contain!important;
    object-position:center center!important;
    padding:0!important;
}

/* 避免全站固定比例规则压过新的自适应比例。 */
.home-cuisine-image.bhmz-adaptive-media-frame,
.home-banquet-guide-cover.bhmz-adaptive-media-frame,
.home-dining-photo.bhmz-adaptive-media-frame,
.home-record-cover.bhmz-adaptive-media-frame,
.dining-dish-cover.bhmz-adaptive-media-frame,
.dining-space-cover.bhmz-adaptive-media-frame,
.dining-room-photo.bhmz-adaptive-media-frame,
.dining-offer-media.bhmz-adaptive-media-frame,
.information-card-image.bhmz-adaptive-media-frame,
.hub-card-cover.bhmz-adaptive-media-frame,
.record-cover.bhmz-adaptive-media-frame,
.about-card-cover.bhmz-adaptive-media-frame,
.hotel-update-cover.bhmz-adaptive-media-frame,
.news-cover.bhmz-adaptive-media-frame,
.article-cover.bhmz-adaptive-media-frame,
.case-cover.bhmz-adaptive-media-frame,
.activity-cover.bhmz-adaptive-media-frame,
.banquet-record-cover.bhmz-adaptive-media-frame,
.hall-record-card__cover.bhmz-adaptive-media-frame,
.activity-center-featured-media.bhmz-adaptive-media-frame,
.activity-center-card-media.bhmz-adaptive-media-frame,
.bs-update-image.bhmz-adaptive-media-frame,
.hi-update-image.bhmz-adaptive-media-frame,
.junren-article-media.bhmz-adaptive-media-frame,
.share-card-image.bhmz-adaptive-media-frame,
.bhmz-related-media.bhmz-adaptive-media-frame{
    aspect-ratio:var(--bhmz-media-ratio, 4 / 3)!important;
    min-height:0!important;
    height:auto!important;
}

/* 两栏图文卡片的图片高度由图片比例决定，正文区跟随，不再硬撑高。 */
.home-banquet-guide-card{
    align-items:stretch;
}

.home-banquet-guide-cover.bhmz-adaptive-media-frame{
    align-self:stretch;
    min-height:210px!important;
}

/* 海报类内容必须完整，标签和文字不能被切掉。 */
.activity-cover.bhmz-smart-media-frame>img,
.activity-center-featured-media.bhmz-smart-media-frame>img,
.activity-center-card-media.bhmz-smart-media-frame>img,
.share-card-image.bhmz-smart-media-frame>img,
.home-hall-card.bhmz-smart-media-frame img{
    object-fit:contain!important;
    padding:0!important;
}

/* 平板和手机限制极端高度，仍保持图片完整。 */
@media (max-width:1099px){
    .home-hall-grid-redesign{
        --home-hall-feature-height:390px;
        --home-hall-row-height:250px;
    }
}

@media (max-width:699px){
    .home-hall-grid-redesign{
        --home-hall-mobile-row-height:275px;
    }

    .bhmz-adaptive-media-frame.is-portrait{
        aspect-ratio:4 / 5!important;
    }
}

/* 重点页面主图也按真实比例收紧，取消旧样式中的 420/520px 强制高度。 */
.hall-focus-hero__media.bhmz-adaptive-media-frame,
.hall-card-media.bhmz-adaptive-media-frame,
.dining-space-main-image.bhmz-adaptive-media-frame,
.about-v5-hero-photo.bhmz-adaptive-media-frame,
.hi-hotel-photo.bhmz-adaptive-media-frame,
.bs-photo.bhmz-adaptive-media-frame{
    aspect-ratio:var(--bhmz-media-ratio, 4 / 3)!important;
    height:auto!important;
    min-height:0!important;
}

.hall-focus-hero__media.bhmz-adaptive-media-frame img,
.hall-card-media.bhmz-adaptive-media-frame img,
.dining-space-main-image.bhmz-adaptive-media-frame img,
.about-v5-hero-photo.bhmz-adaptive-media-frame img,
.hi-hotel-photo.bhmz-adaptive-media-frame img,
.bs-photo.bhmz-adaptive-media-frame img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
}


/* =====================================================
 * V3：全站“相关文章 / 同类活动 / 相关实录”统一紧凑卡片
 * - 图片框固定 16:9，三张卡片的图片高度一致；
 * - 前景图片完整显示，模糊同图填充空边，不硬裁人物与文字；
 * - 标题缩小并限制两行；简介由模板统一截取 20 个字符；
 * - 卡片取消历史自适应高度，避免同一排高低不齐。
 * ===================================================== */

/* 统一图片区：覆盖 V2 的按原图比例自适应。 */
.bhmz-id-article .bhmz-related-media,
.junren-page .junren-article-media,
.related-content-section .news-cover,
.related-content-section .activity-center-card-media,
.related-content-section .banquet-record-cover,
.content-detail-page .related-section .article-cover{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:16 / 9!important;
    overflow:hidden!important;
    background:#e8edf4!important;
}

.bhmz-id-article .bhmz-related-media>img,
.bhmz-id-article .bhmz-related-media picture>img,
.junren-page .junren-article-media>img,
.junren-page .junren-article-media picture>img,
.related-content-section .news-cover>img,
.related-content-section .news-cover picture>img,
.related-content-section .activity-center-card-media>img,
.related-content-section .activity-center-card-media picture>img,
.related-content-section .banquet-record-cover>img,
.related-content-section .banquet-record-cover picture>img,
.content-detail-page .related-section .article-cover>img,
.content-detail-page .related-section .article-cover picture>img{
    width:100%!important;
    height:100%!important;
    padding:0!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
}

/* 三列卡片统一拉齐，但不再让文字区无限增高。 */
.bhmz-id-article .bhmz-related-grid,
.related-content-section .news-card-grid,
.related-content-section .activity-center-grid,
.related-content-section .related-record-grid{
    align-items:stretch!important;
}

.bhmz-id-article .bhmz-related-grid article,
.junren-page .junren-article,
.related-content-section .news-card,
.related-content-section .activity-center-card,
.related-content-section .banquet-record-card,
.content-detail-page .related-section .article-card{
    height:100%!important;
    min-height:0!important;
}

.bhmz-id-article .bhmz-related-grid article>a,
.junren-page .junren-article>a,
.related-content-section .news-card>a,
.related-content-section .activity-center-card>a,
.related-content-section .banquet-record-card,
.content-detail-page .related-section .article-card>a{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
}

/* 正文区域压缩。 */
.bhmz-id-article .bhmz-related-copy,
.junren-page .junren-article-copy,
.related-content-section .news-body,
.related-content-section .activity-center-card-body,
.related-content-section .banquet-record-content,
.content-detail-page .related-section .article-body{
    padding:15px 17px 17px!important;
}

.bhmz-id-article .bhmz-related-copy small,
.junren-page .junren-article-copy small,
.related-content-section .news-meta,
.related-content-section .activity-center-card-body time{
    font-size:11px!important;
    line-height:1.4!important;
}

.bhmz-id-article .bhmz-related-copy h3,
.junren-page .junren-article-copy h3,
.related-content-section .news-body h3,
.related-content-section .activity-center-card-body h3,
.related-content-section .banquet-record-content h2,
.content-detail-page .related-section .article-body h3,
.content-detail-page .related-section .article-card h3{
    display:-webkit-box!important;
    overflow:hidden!important;
    margin:8px 0 7px!important;
    min-height:2.9em!important;
    color:#20334f!important;
    font-size:16px!important;
    font-weight:800!important;
    line-height:1.45!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
}

.bhmz-id-article .bhmz-related-copy p,
.junren-page .junren-article-copy p,
.related-content-section .news-body p,
.related-content-section .activity-center-card-body p,
.related-content-section .banquet-record-content p,
.content-detail-page .related-section .article-body p,
.content-detail-page .related-section .article-card p{
    display:-webkit-box!important;
    overflow:hidden!important;
    margin:0!important;
    min-height:1.6em!important;
    color:#6f7d91!important;
    font-size:12px!important;
    line-height:1.6!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:1!important;
}

/* 阅读链接紧贴正文，卡片整体明显变矮。 */
.junren-page .junren-article-link,
.related-content-section .activity-center-card-more{
    display:inline-flex!important;
    align-items:center!important;
    margin-top:9px!important;
    font-size:12px!important;
    line-height:1.4!important;
}

.bhmz-id-article .bhmz-article-related,
.junren-page .junren-article-section,
.related-content-section{
    padding-top:56px!important;
    padding-bottom:60px!important;
}

.bhmz-id-article .bhmz-related-heading,
.junren-page .junren-article-section .junren-section-head,
.related-content-section .section-title,
.related-content-section .activity-center-section-heading,
.related-content-section .records-section-heading{
    margin-bottom:22px!important;
}

/* 平板两列、手机单列时继续保持同一固定图片比例。 */
@media(max-width:850px){
    .bhmz-id-article .bhmz-related-copy,
    .junren-page .junren-article-copy,
    .related-content-section .news-body,
    .related-content-section .activity-center-card-body,
    .related-content-section .banquet-record-content{
        padding:14px 15px 16px!important;
    }
}
