/* ========================================
   宠王子·PetKing 新闻中心页面
   主色：中国红 + 金黄
   ======================================== */

.news-page {
  --np-primary: #E7161A;
  --np-primary-dark: #B51B16;
  --np-primary-900: #7C110D;
  --np-secondary: #CC853C;
  --np-secondary-light: #E8A96A;
  --np-ink: #241C16;
  --np-ink-2: #4A4038;
  --np-muted: #8A8075;
  --np-cream: #FBF7F1;
  --np-cream-2: #F5EFE6;
  --np-surface: #FFFFFF;
  --np-border: #EBE4DA;
  --np-shadow: 0 24px 60px rgba(36, 28, 22, 0.10);
  --np-shadow-sm: 0 4px 16px rgba(36, 28, 22, 0.06);
  --np-radius: 20px;
}

/* ---- Header overrides (red header on white-text subpage) ---- */
.news-page .site-header {
  background: var(--np-primary);
  border-bottom-color: rgba(255, 255, 255, 0.18);
}
.news-page .brand,
.news-page .brand-name { color: #fff; }
.news-page .brand-logo { filter: brightness(0) invert(1); }
.news-page .nav-link,
.news-page .lang-switch { color: rgba(255, 255, 255, 0.92); }
.news-page .nav-link:hover,
.news-page .nav-link:focus,
.news-page .nav-link.active,
.news-page .lang-switch:hover,
.news-page .lang-switch:focus {
  color: #fff;
  background: rgba(255, 255, 255, 0.16);
}
.news-page .hamburger-bar { background: #fff; }
.news-page .nav-toggle:hover,
.news-page .nav-toggle:focus { background: rgba(255, 255, 255, 0.16); }

/* 移动端菜单展开后恢复深色文字 */
.news-page .site-header .nav-menu.open .nav-link,
.news-page .site-header .nav-menu.open .lang-switch { color: var(--text-secondary); }
.news-page .site-header .nav-menu.open .nav-link:hover,
.news-page .site-header .nav-menu.open .nav-link:focus,
.news-page .site-header .nav-menu.open .nav-link.active,
.news-page .site-header .nav-menu.open .lang-switch:hover,
.news-page .site-header .nav-menu.open .lang-switch:focus {
  color: var(--np-primary);
  background: var(--np-cream);
}
.news-page .site-header .nav-toggle[aria-expanded="true"] .hamburger-bar { background: var(--text); }

/* ---- Hero ---- */
.news-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
  overflow: hidden;
  padding-top: var(--header-height-mobile);
}
.news-hero-bg {
  position: absolute;
  inset: 0;
  background-image: url("../images/news-hero.webp");
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.news-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(124, 17, 13, 0.55) 0%, rgba(124, 17, 13, 0.42) 40%, rgba(36, 28, 22, 0.78) 100%);
  z-index: 1;
}
.news-hero-content {
  position: relative;
  z-index: 2;
  max-width: 820px;
  padding: var(--space-12) var(--space-5) var(--space-10);
}
.news-hero-eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--np-secondary-light);
  margin-bottom: var(--space-3);
}
.news-hero-title {
  font-size: clamp(2.2rem, 6vw, 4rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: 0.08em;
  margin-bottom: var(--space-2);
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
}
.news-hero-en {
  font-size: clamp(0.95rem, 1.8vw, 1.25rem);
  font-weight: 500;
  letter-spacing: 0.2em;
  color: var(--np-secondary-light);
  margin-bottom: var(--space-5);
  text-transform: uppercase;
}
.news-hero-desc {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.88);
  max-width: 56ch;
  margin: 0 auto;
  line-height: 1.85;
}

/* ---- Sticky category tabs ---- */
.news-tabs {
  position: sticky;
  top: var(--header-height-mobile);
  z-index: 90;
  width: 100%;
  background: #fff;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--np-border);
  box-shadow: var(--np-shadow-sm);
}
.news-tabs-inner {
  display: flex;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-5);
  max-width: 1280px;
  margin: 0 auto;
  justify-content: center;
  flex-wrap: wrap;
}
.news-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-6);
  font-size: 0.95rem;
  font-family: inherit;
  font-weight: 600;
  color: var(--np-ink-2);
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  letter-spacing: 0.04em;
  transition: color 0.2s, background 0.2s, box-shadow 0.2s;
}
.news-tab-en {
  font-size: 0.7rem;
  font-weight: 500;
  color: var(--np-muted);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.news-tab:hover,
.news-tab:focus {
  color: var(--np-primary);
  background: var(--np-cream-2);
}
.news-tab.is-active {
  color: #fff;
  background: var(--np-primary);
  box-shadow: 0 6px 18px rgba(226, 33, 28, 0.28);
}
.news-tab.is-active .news-tab-en {
  color: rgba(255, 255, 255, 0.78);
}

/* ---- Sections ---- */
.news-section {
  padding: var(--space-16) var(--space-5);
  background: var(--np-surface);
  scroll-margin-top: calc(var(--header-height-mobile) + 64px);
}
.news-section[hidden] { display: none !important; }
.news-section.alt { background: var(--np-cream); }
.news-section-inner { max-width: 1280px; margin: 0 auto; }
.news-section-header {
  margin-bottom: var(--space-10);
  text-align: center;
}
.news-section-eyebrow {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--np-secondary);
  text-transform: uppercase;
  margin-bottom: var(--space-3);
}
.news-section-title {
  font-size: clamp(1.85rem, 4vw, 2.6rem);
  font-weight: 800;
  line-height: 1.15;
  color: var(--np-primary);
  margin-bottom: var(--space-3);
}
.news-section-en {
  font-size: 0.95rem;
  color: var(--np-muted);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* ---- Enterprise news: list ---- */
.news-grid {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

/* --- 列表容器 --- */
.news-list {
  background: var(--np-surface);
  border-radius: var(--np-radius);
  border: 1px solid var(--np-border);
  box-shadow: var(--np-shadow-sm);
  overflow: hidden;
}
.news-list-item {
  border-bottom: 1px dashed var(--np-border);
  transition: background 0.25s;
}
.news-list-item:last-child { border-bottom: none; }
.news-list-item:hover,
.news-list-item:focus-within { background: var(--np-cream); }
.news-list-link {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  color: inherit;
  width: 100%;
}
.news-list-media {
  flex: 0 0 120px;
  aspect-ratio: 16 / 10;
  border-radius: 12px;
  overflow: hidden;
  background: var(--np-cream-2);
}
.news-list-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s var(--ease-out);
}
.news-list-item:hover .news-list-media img { transform: scale(1.06); }
.news-list-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.news-list-title {
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--np-ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.2s;
}
.news-list-item:hover .news-list-title { color: var(--np-primary); }
.news-list-excerpt {
  font-size: 0.88rem;
  line-height: 1.65;
  color: var(--np-ink-2);
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-list-meta {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.news-list-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--np-muted);
  font-size: 0.8rem;
}
.news-list-date svg {
  width: 13px;
  height: 13px;
  fill: currentColor;
}

/* ---- Video grid ---- */
.video-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}
.video-card {
  background: var(--np-surface);
  border-radius: var(--np-radius);
  overflow: hidden;
  box-shadow: var(--np-shadow-sm);
  border: 1px solid var(--np-border);
  transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out);
}
.video-card:hover,
.video-card:focus-within {
  transform: translateY(-4px);
  box-shadow: var(--np-shadow);
}
.video-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
}
.video-card-media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--np-cream-2);
}
.video-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease-out), filter 0.35s;
}
.video-card:hover .video-card-media img {
  transform: scale(1.04);
  filter: brightness(0.82);
}
.video-card-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  color: var(--np-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.32);
  transition: transform 0.3s var(--ease-out), background 0.3s;
  z-index: 1;
}
.video-card:hover .video-card-play {
  background: #fff;
  transform: translate(-50%, -50%) scale(1.08);
}
.video-card-play svg {
  width: 28px;
  height: 28px;
  margin-left: 4px;
  fill: currentColor;
}
.video-card-play::after {
  content: "";
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.6);
  animation: np-ring 2.4s var(--ease-in-out) infinite;
  pointer-events: none;
}
@keyframes np-ring {
  0%   { opacity: 0.8; transform: scale(0.92); }
  70%  { opacity: 0;   transform: scale(1.4); }
  100% { opacity: 0; }
}
.video-card-body {
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  flex: 1;
}
.video-card-title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--np-ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.2s;
}
.video-card:hover .video-card-title { color: var(--np-primary); }
.video-card-meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--np-muted);
  font-size: 0.82rem;
  margin-top: auto;
}
.video-card-meta svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
}

/* ---- Video modal lightbox ---- */
.video-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-5);
  opacity: 0;
  transition: opacity 0.28s var(--ease-out);
}
.video-modal[hidden] { display: none; }
.video-modal.is-open { opacity: 1; }
.video-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(36, 28, 22, 0.82);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.video-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(960px, 100%);
  transform: translateY(16px) scale(0.98);
  transition: transform 0.32s var(--ease-out);
}
.video-modal.is-open .video-modal-dialog { transform: translateY(0) scale(1); }
.video-modal-stage {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}
.video-modal-player {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #000;
}
.video-modal-close {
  position: absolute;
  top: -16px;
  right: -16px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: var(--np-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(226, 33, 28, 0.5);
  transition: transform 0.2s var(--ease-out), background 0.2s;
  z-index: 2;
}
.video-modal-close:hover,
.video-modal-close:focus {
  background: var(--np-primary-dark);
  transform: scale(1.08);
}
.video-modal-close svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
}
.video-modal-caption {
  margin-top: var(--space-4);
  text-align: center;
}
.video-modal-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
}
@media (max-width: 480px) {
  .video-modal-close { top: 8px; right: 8px; }
  .video-modal-caption { margin-top: var(--space-3); }
}
@media (prefers-reduced-motion: reduce) {
  .video-modal,
  .video-modal-dialog { transition: none !important; }
}

/* ---- Pagination ---- */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-12);
  flex-wrap: wrap;
}
.pagination-btn,
.pagination-num {
  min-width: 40px;
  height: 40px;
  padding: 0 var(--space-3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  border-radius: 10px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--np-ink-2);
  background: var(--np-surface);
  border: 1px solid var(--np-border);
  transition: color 0.2s, background 0.2s, border-color 0.2s, transform 0.2s;
}
.pagination-btn { padding: 0 var(--space-4); }
.pagination-btn svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}
.pagination-btn:hover,
.pagination-num:hover {
  color: var(--np-primary);
  border-color: var(--np-primary);
  background: var(--np-cream);
}
.pagination-num.is-active {
  color: #fff;
  background: var(--np-primary);
  border-color: var(--np-primary);
  box-shadow: 0 4px 14px rgba(226, 33, 28, 0.3);
}
.pagination-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.pagination-info {
  font-size: 0.85rem;
  color: var(--np-muted);
  margin: 0 var(--space-3);
}

/* ---- Footer 样式已统一收敛至 style.css（全站共用，与首页一致） ---- */

/* ---- Responsive: mobile ---- */
/* 移动端隐藏选项卡英文副标题（中文模式只显示中文/英文模式只显示 News/Videos），
   禁止换行并收紧内边距，确保「企业新闻/视频中心」整好一行放下 */
@media (max-width: 639px) {
  .news-tabs-inner {
    flex-wrap: nowrap;
    padding: var(--space-3) var(--space-4);
  }
  .news-tab {
    padding: var(--space-2) var(--space-5);
    font-size: 0.9rem;
  }
  .news-tab-en { display: none; }
}

/* ---- Responsive: tablet ---- */
@media (min-width: 640px) {
  .video-grid  { grid-template-columns: repeat(2, 1fr); }
  .news-list-media { flex-basis: 190px; }
  .news-list-link { gap: var(--space-5); }
}
@media (min-width: 980px) {
  .news-hero { min-height: 56vh; padding-top: var(--header-height); }
  .news-tabs { top: var(--header-height); }
  .news-tabs-inner { padding: var(--space-4) var(--space-8); }
  .news-section {
    padding: var(--space-20) var(--space-8);
    scroll-margin-top: calc(var(--header-height) + 64px);
  }
  .news-list-media { flex-basis: 220px; }
}
@media (min-width: 1024px) {
  .news-section { padding: var(--space-24) var(--space-12); }
  .news-list-media { flex-basis: 240px; }
}
@media (min-width: 1280px) {
  .news-section-inner { max-width: 1360px; }
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  .news-list-media img,
  .video-card,
  .video-card-media img,
  .video-card-play,
  .video-card-play::after {
    transition: none !important;
    animation: none !important;
  }
}
