/* 全模板共用：禁止手机端横向滚动条 */
html {
  width: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  min-width: 0;
  position: relative;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
video,
iframe,
embed,
object,
svg,
canvas {
  max-width: 100%;
  height: auto;
}

table {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  word-break: break-word;
}

pre {
  max-width: 100%;
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

h1, h2, h3, h4, h5, h6,
p, a, li, span, time, figcaption {
  overflow-wrap: break-word;
  word-break: break-word;
}

main,
header,
footer,
section,
article,
aside,
nav {
  max-width: 100%;
  min-width: 0;
}

/* 常见容器不撑破视口 */
.main-content,
.header-inner,
.footer-inner,
.section-wrap,
[class*="-inner"],
[class*="-wrap"],
[class*="-layout"],
[class*="-container"],
[class*="-grid"],
.page-layout,
.portal-layout,
.mag-layout,
.article-layout,
.article-wrap,
.corp-hero-inner,
.spotlight-card,
.hero-block-inner {
  max-width: 100%;
  min-width: 0;
}

/* 导航/分类标签：换行，不横向拖动 */
.category-tabs,
.category-pills,
.mag-nav,
.portal-nav,
.top-bar-inner,
.stats-inner,
.services-grid,
.icon-blocks,
.highlights-grid,
.footer-grid,
.portal-footer-grid {
  flex-wrap: wrap;
}

.category-tabs,
.category-pills,
.mag-nav,
.portal-nav {
  overflow-x: visible;
  -webkit-overflow-scrolling: auto;
}

@media (max-width: 767px) {
  .main-content,
  .header-inner,
  .footer-inner,
  .section-wrap,
  .corp-hero-inner,
  .page-banner,
  .breadcrumb,
  .article-layout,
  .article-main,
  .article-wrap,
  .portal-layout,
  .mag-layout,
  .mag-article-wrap,
  .top-bar-inner,
  .stats-inner,
  .cta-banner,
  .page-layout {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
  }

  .hero,
  .corp-hero,
  .mag-cover-story,
  .spotlight-card,
  .portal-featured {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
  }

  /* 多栏布局一律单列 */
  .news-row,
  .spotlight-card,
  .corp-hero-inner,
  .hero-block-inner,
  .portal-layout,
  .portal-featured,
  .mag-layout,
  .article-layout,
  .article-wrap,
  .news-card-h,
  .flash-item,
  .post-link,
  .portal-news-item,
  .mag-story-grid,
  .services-grid,
  .icon-blocks,
  .highlights-grid,
  .stats-inner,
  .footer-grid,
  .portal-footer-grid,
  .footer-top,
  .footer-links {
    grid-template-columns: 1fr !important;
  }

  /* 横条资讯：缩略图全宽 */
  .flash-item {
    flex-direction: column;
  }

  .flash-thumb,
  .portal-news-thumb,
  .portal-news-thumb img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
  }

  .flash-thumb img {
    height: 100%;
  }

  .news-row {
    display: flex !important;
    flex-direction: column;
    gap: 12px;
  }

  .news-date {
    border-right: none !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    padding-right: 0 !important;
    padding-bottom: 8px;
    text-align: left !important;
    display: flex;
    gap: 8px;
    align-items: baseline;
  }

  .news-row-cat {
    align-self: flex-start;
  }

  .category-tab,
  .category-pills .pill,
  .pill,
  .mag-nav a,
  .portal-nav-link {
    white-space: normal;
    flex-shrink: 1;
  }

  .header-cta,
  .portal-logo-text,
  .logo-text {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .corp-hero-visual,
  .hero-image,
  .spotlight-image,
  .article-cover,
  .mag-cover-image {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .pagination {
    flex-wrap: wrap;
    gap: 10px;
  }

  .nav-mobile {
    max-width: 100vw;
  }

  .sidebar {
    max-width: 100vw;
  }
}

@media (max-width: 480px) {
  .post-link {
    grid-template-columns: 1fr !important;
  }

  .post-date-col {
    flex-direction: row;
    gap: 8px;
    align-items: baseline;
  }
}
