


/* ---- HERO 輪播 — Renesas 式分割版型 ---- */
.hero { position: relative; background: #0a1430; overflow: hidden; border-bottom: 1px solid var(--vlsi-border); }
.hero .carousel-item { min-height: clamp(440px, 56vh, 560px); }
/* 右側滿版圖片（出血至視窗右緣） */
.hero .slide-img { position: absolute; top: 0; right: 0; bottom: 0; width: 100%; }
.hero .slide-img .imgph { width: 100%; height: 100%; }
.hero .slide-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero .slide-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,13,33,.9) 0%, rgba(7,13,33,.62) 42%, rgba(7,13,33,.32) 100%); }
/* 左側文字（對齊 1200 容器） */
.hero .slide-body { position: absolute; inset: 0; z-index: 2; display: flex; align-items: flex-end; padding: 2.4rem 0 2.2rem; }
.hero .hero-content { max-width: 540px; }
.hero .eyebrow { display: inline-block; color: #fff; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .8rem; margin-bottom: 1rem; padding-left: 14px; border-left: 3px solid var(--vlsi-accent); }
.hero h1 { color: #fff; font-size: clamp(1.3rem, 1.9vw, 2.1rem); max-width: 16ch; }
.hero p.lead { color: rgba(255,255,255,.85); font-size: clamp(1rem, 1.4vw, 1.15rem); max-width: 42ch; margin-top: .5rem; }
.hero .actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.8rem; }
/* 指示器（左下、對齊容器） */
.hero .carousel-indicators { left: max(24px, calc((100% - var(--vlsi-wrap))/2 + 24px)); right: auto; bottom: 1.5rem; margin: 0; justify-content: flex-start; z-index: 3; }
.hero .carousel-indicators [data-bs-target] { width: 30px; height: 5px; border: 0; border-radius: 0; background: rgba(255,255,255,.45); opacity: 1; }
.hero .carousel-indicators .active { background: var(--vlsi-primary); }
/* 左右切換箭頭 */
.hero .carousel-control-prev, .hero .carousel-control-next { width: auto; opacity: 1; z-index: 3; top: 50%; bottom: auto; transform: translateY(-50%); }
.hero .carousel-control-prev { left: max(16px, calc((100% - var(--vlsi-wrap))/2 + 8px)); }
.hero .carousel-control-next { right: max(16px, calc((100% - var(--vlsi-wrap))/2 + 8px)); }
.hero .hero-arrow { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.5); color: #fff; font-size: 1.7rem; line-height: 1; backdrop-filter: blur(4px); transition: background .2s, border-color .2s, transform .2s; }
.hero .carousel-control-prev:hover .hero-arrow, .hero .carousel-control-next:hover .hero-arrow { background: var(--vlsi-primary); border-color: var(--vlsi-primary); transform: scale(1.08); }
@media (max-width: 991px){ .hero .hero-arrow { width: 42px; height: 42px; font-size: 1.4rem; } }
@media (max-width: 767px){
  .hero .carousel-item { min-height: clamp(360px, 56vh, 480px); }
  .hero .hero-content { max-width: none; }
  .hero .carousel-indicators { left: 24px; bottom: 1rem; }
}

/* ---- 關鍵資訊條 ---- */
.factbar { background: var(--vlsi-surface); border-bottom: 1px solid var(--vlsi-border); }
.factbar .grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.fact { padding: 1.6rem 1.4rem; border-left: 1px solid var(--vlsi-border); }
.fact:first-child { border-left: 0; }
.fact .lbl { font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--vlsi-text-muted); font-weight: 600; }
.fact .val { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 800; font-size: 1.35rem; margin-top: .3rem; color: var(--vlsi-text); }
.fact .val em { font-style: normal; color: var(--vlsi-primary); }
@media (max-width: 767px){ .factbar .grid { grid-template-columns: repeat(2,1fr);} .fact:nth-child(odd){border-left:0;} }

/* ---- 內容 / 編輯器區 ---- */
.richtext { color: var(--vlsi-text); font-size: 1.06rem; }
.richtext p { margin: 0 0 1.1rem; color: var(--vlsi-text-muted); }
.richtext h3 { font-size: 1.25rem; margin: 1.6rem 0 .6rem; }
.richtext ul.ticks { display: grid; gap: .6rem; margin: 1rem 0; }
.richtext ul.ticks li { position: relative; padding-left: 1.8rem; color: var(--vlsi-text); }
.richtext ul.ticks li::before { content: ""; position: absolute; left: 0; top: .45em; width: 14px; height: 8px;
  border-left: 2px solid var(--vlsi-accent); border-bottom: 2px solid var(--vlsi-accent); transform: rotate(-45deg); }
.editor-flag {
  display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.4rem;
  font-size: .8rem; color: var(--vlsi-text-muted); border: 1px dashed var(--vlsi-border);
  padding: .4rem .7rem; border-radius: 6px;
}

/* ---- 技術主軸卡片 ---- */
.scope-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
@media (max-width: 991px){ .scope-grid { grid-template-columns: repeat(2,1fr);} }
@media (max-width: 575px){ .scope-grid { grid-template-columns: 1fr;} }
.scope-card {
  background: var(--vlsi-surface); border: 1px solid var(--vlsi-border); border-radius: 14px;
  padding: 0; overflow: hidden; transition: transform .2s, box-shadow .2s, border-color .2s;
}
.scope-card:hover { transform: translateY(-4px); box-shadow: 0 24px 44px -28px rgba(15,27,51,.4); border-color: var(--vlsi-primary); }
.scope-card .no { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-weight: 800; color: var(--vlsi-accent); font-size: .95rem; }
.scope-card .imgph { border-radius: 0; margin-bottom: 0; }
.scope-card .scope-body { padding: 1.6rem; }
.scope-card h3 { font-size: 1.18rem; margin: .7rem 0 .5rem; }
.scope-card p { color: var(--vlsi-text-muted); font-size: .95rem; margin: 0; }

/* ---- 最新消息 ---- */
.news { background: var(--vlsi-surface); }
.news-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
@media (max-width: 991px){ .news-grid { grid-template-columns: repeat(2,1fr);} }
@media (max-width: 575px){ .news-grid { grid-template-columns: 1fr;} }
.news-card {
  background: var(--vlsi-bg); border: 1px solid var(--vlsi-border); border-radius: 14px; overflow: hidden;
  display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s;
}
.news-card:hover { transform: translateY(-4px); box-shadow: 0 24px 44px -28px rgba(15,27,51,.35); }
.news-card .body { padding: 1.3rem; display: flex; flex-direction: column; flex: 1; }
.news-card .date { font-size: .8rem; color: var(--vlsi-primary); font-weight: 700; letter-spacing: .04em; }
.news-card .tag { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: var(--vlsi-text-muted);
  border: 1px solid var(--vlsi-border); border-radius: 100px; padding: .15rem .6rem; align-self: flex-start; margin-bottom: .7rem; }
.news-card h3 { font-size: 1.05rem; margin: .35rem 0 0; }
.news-card .more { margin-top: auto; padding-top: 1rem; color: var(--vlsi-primary); font-weight: 600; font-size: .9rem; }

/* ---- 影片專區 ---- */
.video-feature { display: grid; grid-template-columns: 1.6fr 1fr; gap: 1.4rem; align-items: stretch; }
@media (max-width: 991px){ .video-feature { grid-template-columns: 1fr;} }
.video-main { position: relative; border-radius: 16px; overflow: hidden; }
.video-main .play {
  position: absolute; inset: 0; display: grid; place-items: center; z-index: 3;
}
.video-main .play button {
  width: 78px; height: 78px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--vlsi-primary); color: #fff; display: grid; place-items: center;
  box-shadow: 0 14px 40px -10px var(--vlsi-primary); transition: transform .2s;
}
.video-main .play button:hover { transform: scale(1.08); }
.video-main .cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: 1.4rem;
  background: linear-gradient(transparent, rgba(8,16,40,.85)); color: #fff; }
.video-list { display: flex; flex-direction: column; gap: .9rem; }
.video-item { display: grid; grid-template-columns: 116px 1fr; gap: .9rem; align-items: center;
  background: var(--vlsi-surface); border: 1px solid var(--vlsi-border); border-radius: 12px; padding: .6rem; transition: border-color .2s; cursor: pointer; }
.video-item:hover { border-color: var(--vlsi-primary); }
.video-item .imgph { border-radius: 8px; }
.video-item h4 { font-size: .98rem; margin: 0 0 .2rem; }
.video-item small { color: var(--vlsi-text-muted); }

/* ---- 贊助 logo 區（多區塊，後台可新增） ---- */
.sponsors-zone { position: relative; }
.sponsors { background: transparent; }
/* 共用背景時，相鄰區塊間不要重複上下留白 */
.sponsors-zone .sponsors + .sponsors { padding-top: 0; }
.sponsor-block + .sponsor-block { margin-top: 2.6rem; }
.sponsor-block .blk-title { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem; }
.sponsor-block .blk-title h3 { font-size: 1rem; letter-spacing: .12em; text-transform: uppercase; color: var(--vlsi-text-muted); white-space: nowrap; margin: 0; }
.sponsor-block .blk-title::after { content: ""; flex: 1; height: 1px; background: var(--vlsi-border); }
.logo-grid { display: grid; gap: 1px; background: var(--vlsi-border); border: 1px solid var(--vlsi-border); border-radius: 12px; overflow: hidden; }
.logo-grid.cols-2 { grid-template-columns: repeat(2,1fr); }
.logo-grid.cols-5 { grid-template-columns: repeat(5,1fr); }
.logo-grid.cols-6 { grid-template-columns: repeat(6,1fr); }
/* RWD：桌機 5（或 6）→ 平板 4 → 小平板 3 → 手機 2，規則一致 */
@media (max-width: 991px){ .logo-grid.cols-5, .logo-grid.cols-6 { grid-template-columns: repeat(4,1fr); } }
@media (max-width: 767px){ .logo-grid.cols-5, .logo-grid.cols-6 { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 479px){ .logo-grid.cols-2, .logo-grid.cols-5, .logo-grid.cols-6 { grid-template-columns: repeat(2,1fr); } }
.logo-cell { background: var(--vlsi-bg); aspect-ratio: 5/2.2; display: grid; place-items: center; padding: .9rem;
  color: var(--vlsi-text-muted); font-weight: 700; letter-spacing: .02em; font-size: .95rem; text-align:center;
  box-shadow: inset 0 0 0 0 var(--vlsi-primary); transition: box-shadow .2s, color .2s; }
.logo-cell:hover { color: var(--vlsi-primary); box-shadow: inset 0 0 0 2px var(--vlsi-primary); }
.logo-cell.big { aspect-ratio: 5/1.8; font-size: 1.05rem; }

/* ---- 影片專區：Winning Combinations 式卡片 + 水平滾動 ---- */
.vfeat { --vmedia-h: min(600px, 50vh); --vcardw: calc(var(--vmedia-h) * 16 / 9); background: var(--vlsi-video-bg); padding-block: clamp(32px,3vw,96px); border-top: 1px solid var(--vlsi-border); border-bottom: 1px solid var(--vlsi-border); overflow: hidden; }
.vfeat-inner { position: relative; max-width: var(--vlsi-wrap); margin-inline: auto; padding-inline: var(--vlsi-gut); }
.vfeat-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; margin-bottom: 1.8rem; position: relative; z-index: 2; }
.vfeat-intro h2 { font-size: clamp(1.7rem,3.2vw,2.5rem); margin: 0; color: var(--vlsi-heading); }
.vfeat-intro p { color: var(--vlsi-text-muted); margin: .7rem 0 0; max-width: 72ch; }
.vfeat-all { display: inline-block; margin-top: 1rem; color: var(--vlsi-primary); font-weight: 600; }
.vfeat-all:hover { color: var(--vlsi-primary-light); }
.vfeat-nav { display: flex; gap: .6rem; flex: 0 0 auto; }
.vf-arrow { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--vlsi-border); background: var(--vlsi-bg); color: var(--vlsi-text); line-height: 1; cursor: pointer; padding: 0; transition: background .2s, color .2s, border-color .2s; display: grid; place-items: center; }
.vf-arrow svg { display: block; }
.vf-arrow:hover { background: var(--vlsi-primary); color: #fff; border-color: var(--vlsi-primary); }
/* 卡片橫向滾動：中央為主，左右各露出前/後一張 */
.vscroll { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 10px 0 34px; padding-inline: calc((100% - var(--vcardw)) / 2); scrollbar-width: none; -ms-overflow-style: none; cursor: grab; position: relative; z-index: 1; }
.vscroll::-webkit-scrollbar { display: none; }
.vscroll.dragging { cursor: grabbing; scroll-snap-type: none; }
.vcard { flex: 0 0 var(--vcardw); scroll-snap-align: center; background: var(--vlsi-bg); border: 1px solid var(--vlsi-border); border-radius: 16px; overflow: hidden; text-decoration: none; color: var(--vlsi-text); display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s, border-color .2s; }
.vcard:hover { transform: translateY(-5px); box-shadow: 0 26px 50px -28px rgba(15,27,51,.45); border-color: var(--vlsi-primary); }
.vcard-media { position: relative; aspect-ratio: 16/9; background: var(--vlsi-surface-2); }
.vcard-media img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
/* 格式一：YouTube 嵌入（iframe 填滿 16:9） */
.vcard-media iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* 格式二：圖片等比完整顯示（不裁切） */
.vcard-media.is-contain { background: #fff; }
.vcard-media.is-contain img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.vcard-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 54px; height: 54px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--vlsi-primary); display: grid; place-items: center; font-size: 1rem; padding-left: 3px; box-shadow: 0 8px 24px -8px rgba(0,0,0,.4); transition: transform .2s; }
.vcard:hover .vcard-play { transform: translate(-50%,-50%) scale(1.12); }
.vcard-dur { position: absolute; right: 10px; bottom: 10px; background: rgba(8,16,40,.82); color: #fff; font-size: .74rem; font-weight: 600; padding: .2rem .5rem; border-radius: 5px; }
.vcard-body { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .55rem; background: #fafafa; }
.vcard-tag { align-self: flex-start; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--vlsi-primary); background: var(--vlsi-surface); border: 1px solid var(--vlsi-border); border-radius: 100px; padding: .22rem .7rem; }
.vcard-body h3 { font-size: 20px; font-weight: 700; margin: 0; line-height: 1.3; }
@media (max-width: 575px){ .vf-arrow { width: 46px; height: 46px; } .vf-arrow svg { width: 18px; height: 18px; } }
/* RWD：手機加寬中央卡片，兩側露出較少 */
@media (max-width: 991px){
  .vfeat { --vcardw: min(82vw, 560px); }
  .vfeat-head { margin-left: 0; }
}

/* ============================================================
   VLSI-TSA 官網 — 第三版主題 (theme-v3.css)
   載入順序：base.css → theme-light.css → theme-v3.css
   重用：明亮版的 header / 編輯器 / 影片輪播 / footer
   新增：Qualcomm 式置中 Banner + MediaTek 式分頁列、
        Stability 式滿版圖片最新消息列、深色版贊助牆。
   ============================================================ */

/* ---------- 1. Banner（Qualcomm 式置中卡片 + MediaTek 分頁列） ---------- */
.banner3 {
  --b3w: min(1180px, 86vw);
  --b3-ratio: 5 / 2;            /* 桌機 banner 比例（寬版） */
  background: var(--vlsi-bg);
  padding-top: 4px;
  padding-bottom: clamp(20px, 3vw, 32px);
  overflow: hidden;
}
.b3-track {
  display: flex;
  gap: 26px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0 0 6px;
  padding-inline: calc((100% - var(--b3w)) / 2);
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}
.b3-track::-webkit-scrollbar { display: none; }
.b3-track.dragging { cursor: grabbing; scroll-snap-type: none; }

/* 左右控制箭頭 */
.b3-stage {
  position: relative;
  max-width: var(--b3w);
  margin: 0 auto;
  overflow: hidden;   /* 只顯示中間主要 banner，隱藏左右露出的相鄰 banner */
}
.b3-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 4;
  width: 60px; height: 60px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.55); background: rgba(10,23,48,.45);
  color: #fff; line-height: 1; cursor: pointer; padding: 0;
  display: grid; place-items: center; backdrop-filter: blur(4px);
  transition: background .2s, border-color .2s, transform .2s;
}
.b3-arrow svg { display: block; }
.b3-arrow:hover { background: var(--vlsi-primary); border-color: var(--vlsi-primary); }
.b3-prev { left: clamp(10px, 2.2vw, 34px); }
.b3-next { right: clamp(10px, 2.2vw, 34px); }
.b3-arrow:active { transform: translateY(-50%) scale(.94); }
@media (max-width: 600px){ .b3-arrow { width: 46px; height: 46px; } .b3-arrow svg { width: 18px; height: 18px; } }

.b3-card {
  flex: 0 0 var(--b3w);
  scroll-snap-align: center;
  aspect-ratio: var(--b3-ratio);   /* 以比例決定高度，圖片等比完整顯示 */
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  display: block;
  text-decoration: none;
  background-color: #0a1730;
}
.b3-card img {
  width: 100%; height: 100%; object-fit: cover; display: block;  /* 填滿容器、多餘裁切，比例固定 */
}

/* MediaTek 式分頁列 — 暗色浮起控制卡 */
.b3-tabs {
  display: flex; flex-wrap: nowrap;
  max-width: var(--b3w);
  margin: -26px auto 0;
  position: relative; z-index: 3;
  background: #1f2128;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  box-shadow: 0 20px 46px -22px rgba(0,0,0,.5);
  overflow: hidden;
}
.b3-tab {
  flex: 1 1 0; min-width: 0;
  background: none; border: 0; cursor: pointer;
  text-align: left;
  padding: 1.05rem 1.4rem 1.1rem;
  border-top: 3px solid transparent;
  display: flex; flex-direction: column; gap: .3rem;
  transition: background .2s, border-color .2s;
}
.b3-tab-title {
  color: #fff; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-weight: 600; font-size: 14px; line-height: 1.3;
}
.b3-tab-date {
  color: rgba(255,255,255,.55); font-family: ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, monospace; font-size: 12px;
}
.b3-tab + .b3-tab { box-shadow: inset 1px 0 0 rgba(255,255,255,.08); }
.b3-tab:hover { background: rgba(255,255,255,.05); border-top-color: var(--vlsi-accent); }
.b3-tab:hover .b3-tab-title { color: var(--vlsi-accent); }
.b3-tab:hover .b3-tab-date { color: rgba(255,255,255,.5); }
.b3-tab.active { border-top-color: var(--vlsi-accent); background: rgba(255,255,255,.06); }
.b3-tab.active .b3-tab-title { color: var(--vlsi-accent); }
.b3-tab.active .b3-tab-date { color: rgba(255,255,255,.5); }
@media (max-width: 991px){
  .banner3 { --b3w: 92vw; }
  .b3-tabs { margin-inline: var(--vlsi-gut); }
  .b3-tab-title { font-size: 14px; }
}
@media (max-width: 600px){
  .banner3 { --b3-ratio: 4 / 5; }   /* 手機 banner 比例（直版） */
  /* 手機：分頁列收成「目前這張」的整條字幕，隨輪播更新 */
  .b3-tabs { display: flex; }
  .b3-tab { display: none; }
  .b3-tab.active { display: flex; flex: 1 1 100%; }
  .b3-tab.active .b3-tab-title { font-size: 14px; }
  .b3-tab.active .b3-tab-date { font-size: 12px; }
}

/* ---------- 2. Latest News（Stability 式滿版圖片 + 底部漸層字） ---------- */
.lnews {
  background: var(--vlsi-bg);
}
.lnews-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 1.5rem; margin-bottom: 1.6rem;
}
.lnews-head h2 { font-size: clamp(1.7rem,3.2vw,2.5rem); margin: 0; color: var(--vlsi-heading); }
.ln-nav { display: flex; gap: .6rem; flex: 0 0 auto; }
.ln-arrow {
  width: 48px; height: 48px; border-radius: 50%;
  border: 1px solid var(--vlsi-border); background: var(--vlsi-bg);
  color: var(--vlsi-text); font-size: 1.5rem; line-height: 1; cursor: pointer;
  display: grid; place-items: center;
  transition: background .2s, color .2s, border-color .2s;
}
.ln-arrow:hover { background: var(--vlsi-primary); color: #fff; border-color: var(--vlsi-primary); }
.ln-rail {
  display: flex; gap: 20px; overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 4px 0 18px;
  scrollbar-width: none; -ms-overflow-style: none;
  cursor: grab;
}
.ln-rail::-webkit-scrollbar { display: none; }
.ln-rail.dragging { cursor: grabbing; scroll-snap-type: none; }
.ln-card {
  flex: 0 0 clamp(260px, 23vw, 320px);
  scroll-snap-align: start;
  aspect-ratio: 3 / 4;
  border-radius: 16px; overflow: hidden;
  position: relative; text-decoration: none;
  background: #0c1322;
  transition: transform .25s, box-shadow .25s;
}
.ln-card:hover { transform: translateY(-5px); box-shadow: 0 28px 50px -26px rgba(15,27,51,.5); }
.ln-card img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; display: block;
  pointer-events: none;
  transition: transform .5s ease;
}
.ln-card:hover img { transform: scale(1.05); }
.ln-card::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(6,10,20,.92) 0%, rgba(6,10,20,.62) 28%, rgba(6,10,20,.05) 58%, transparent 100%);
}
.ln-body {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 1.4rem 1.4rem 1.5rem;
  color: #fff;
}
.ln-body::before {
  content: ""; display: block; width: 30px; height: 3px;
  background: var(--vlsi-accent); margin-bottom: .8rem;
}
.ln-body h3 { font-size: 1.12rem; line-height: 1.25; margin: 0; color: #fff; }
.ln-body p { font-size: .9rem; line-height: 1.5; margin: .55rem 0 0; color: rgba(255,255,255,.8); }
@media (max-width: 575px){
  .ln-arrow { width: 42px; height: 42px; }
  .ln-card { flex-basis: 76vw; }
}

/* ---- Latest News：純文字卡片（無圖片）變體 ---- */
.lnews--text {
  background:
    linear-gradient(rgba(13,32,58,.78), rgba(13,32,58,.78)),
    url("../img/shutterstock_2652529017.jpg") center / cover no-repeat;
}
.lnews--text .lnews-head h2 { color: #fff; }
.lnews--text .ln-arrow {
  background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.4); color: #fff;
}
.lnews--text .ln-arrow:hover { background: var(--vlsi-primary); border-color: var(--vlsi-primary); }
.lnews--text .ln-card {
  aspect-ratio: auto;
  background: var(--vlsi-bg);
  border: 1px solid var(--vlsi-border);
  border-left: 4px solid var(--ln-accent, var(--vlsi-primary));
  border-radius: 14px;
  padding: 1.5rem 1.5rem 1.4rem;
  display: flex; flex-direction: column;
  flex-basis: clamp(280px, 24vw, 340px);
}
/* 左側強調色：5 色循環，第 6 張回到第 1 色 */
.lnews--text .ln-card:nth-child(5n+1) { --ln-accent: #1161a5; }
.lnews--text .ln-card:nth-child(5n+2) { --ln-accent: #00bcb4; }
.lnews--text .ln-card:nth-child(5n+3) { --ln-accent: #f29400; }
.lnews--text .ln-card:nth-child(5n+4) { --ln-accent: #7b4fd3; }
.lnews--text .ln-card:nth-child(5n+5) { --ln-accent: #1f9d57; }
.lnews--text .ln-card::after { content: none; }
.lnews--text .ln-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 44px -26px rgba(15,27,51,.4);
  border-color: var(--vlsi-border);
  border-left-color: var(--ln-accent, var(--vlsi-primary));
}
.lnews--text .ln-meta {
  display: flex; align-items: center; gap: .7rem; margin-bottom: .9rem;
}
.lnews--text .ln-tag {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--vlsi-primary); background: var(--vlsi-surface);
  padding: .22rem .6rem; border-radius: 999px;
}
.lnews--text .ln-meta time {
  font-family: ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, monospace; font-size: .76rem; color: var(--vlsi-text-muted);
}
.lnews--text .ln-card h3 {
  font-size: 1.12rem; line-height: 1.3; margin: 0; color: var(--vlsi-heading);
}
.lnews--text .ln-card p {
  font-size: .92rem; line-height: 1.55; margin: .6rem 0 0; color: var(--vlsi-text-muted);
}
.lnews--text .ln-more {
  margin-top: auto; padding-top: 1.1rem;
  color: var(--vlsi-primary); font-weight: 600; font-size: .9rem;
  display: inline-flex; align-items: center; gap: .35rem;
}
.lnews--text .ln-more::after { content: "→"; transition: transform .2s; }
.lnews--text .ln-card:hover .ln-more::after { transform: translateX(4px); }

/* ---------- 3. Sponsors（KubeCon 式：全白底、無邊框、一列 4 個、hover 放大） ---------- */
.sponsors-bg {
  background: #ffffff;
}
.sponsors-bg .sponsors { background: transparent; }
/* 後台新增區塊自動交錯背景色：奇數白底、偶數淡色 */
.sponsors-bg .sponsors:nth-of-type(even) { background: var(--vlsi-surface); }
.sponsors-bg .sec-head h2 { color: var(--vlsi-heading); }

/* 置中、加上設計的區塊標題（標題下方置中底線） */
.sponsors-bg .sec-head--center {
  max-width: none; text-align: center;
  display: flex; flex-direction: column; align-items: center;
  margin-bottom: 2.4rem;
}
.sponsors-bg .sec-head--center h2 {
  margin: 0; position: relative; padding-bottom: .85rem;
}
.sponsors-bg .sec-head--center h2::after {
  content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 64px; height: 4px; border-radius: 99px;
  background: var(--vlsi-primary);
}
.sponsors-bg .sponsor-block + .sponsor-block { margin-top: 2.6rem; }
.sponsors-bg .logo-grid {
  display: grid; gap: clamp(24px, 4vw, 60px);
  overflow: visible;
  grid-template-columns: repeat(5, minmax(0,1fr));
  background: none; border: 0; border-radius: 0;
}
.sponsors-bg .logo-grid.cols-5,
.sponsors-bg .logo-grid.cols-6 { grid-template-columns: repeat(5, minmax(0,1fr)); }
@media (max-width: 991px){ .sponsors-bg .logo-grid,
  .sponsors-bg .logo-grid.cols-5, .sponsors-bg .logo-grid.cols-6 { grid-template-columns: repeat(4, minmax(0,1fr)); } }
@media (max-width: 767px){ .sponsors-bg .logo-grid,
  .sponsors-bg .logo-grid.cols-5, .sponsors-bg .logo-grid.cols-6 { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 479px){ .sponsors-bg .logo-grid,
  .sponsors-bg .logo-grid.cols-5, .sponsors-bg .logo-grid.cols-6 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.sponsors-bg .logo-cell {
  position: relative;
  background: none; border: 0; border-radius: 0; box-shadow: none;
  aspect-ratio: 5/2.4; display: grid; place-items: center; padding: 0; overflow: visible;
}
.sponsors-bg .logo-cell img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain;
  transition: transform .25s ease;
}
.sponsors-bg .logo-cell:hover { background: none; border: 0; box-shadow: none; transform: none; }
/* 只有「連結型」logo（a.logo-cell）hover 才放大；無連結（span）不放大 */
.sponsors-bg a.logo-cell { cursor: pointer; }
.sponsors-bg a.logo-cell:hover img { transform: scale(1.12); }
.sponsors-bg span.logo-cell { cursor: default; }

/* ---------- Latest News：版2 編號清單式（深色底，三種類型） ---------- */
.v2news { background: #15171c; }
.v2news .sec-head h2 { color: #fff; }
.v2news .scope-list { border-top: 1px solid rgba(255,255,255,.12); counter-reset: news; }
.v2news .scope-row { display: grid; grid-template-columns: 90px 1fr auto; gap: 1.5rem; align-items: center;
  padding: 1.6rem .5rem; border-bottom: 1px solid rgba(255,255,255,.12); transition: background .2s, padding .2s;
  position: relative; text-decoration: none; }
.v2news .scope-row::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--vlsi-accent); transform: scaleY(0); transform-origin: top; transition: transform .2s; }
.v2news .scope-row .no { font-family: ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, monospace; color: var(--vlsi-accent); font-size: 1.1rem; }
.v2news .scope-row { counter-increment: news; }
.v2news .scope-row .no::before { content: counter(news, decimal-leading-zero); }
.v2news .scope-row h3 { font-size: 20px; font-weight: 700; margin: 0; color: #fff; }
.v2news .scope-row p { color: rgba(255,255,255,.62); margin: .35rem 0 0; font-size: 16px; max-width: 60ch; }

/* 動作標記（外連 / 下載）：圖示 + 標籤 */
.v2news .sr-act { display: inline-flex; align-items: center; gap: .5rem; color: rgba(255,255,255,.55);
  font-size: .8rem; font-weight: 600; white-space: nowrap; transition: color .2s, transform .2s; }
.v2news .sr-ico { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.22); transition: background .2s, border-color .2s, color .2s; }
.v2news .sr-ico svg { width: 24px; height: 24px; }
.v2news .sr-label { display: none; }

/* 類型 2：外部連結（hover 滑入強調線、圖示填色） */
.v2news .scope-row--link:hover,
.v2news .scope-row--download:hover { background: rgba(255,255,255,.05); padding-left: 1.2rem; }
.v2news .scope-row--link:hover::before,
.v2news .scope-row--download:hover::before { transform: scaleY(1); }
.v2news .scope-row--link:hover .sr-act,
.v2news .scope-row--download:hover .sr-act { color: var(--vlsi-accent); }
.v2news .scope-row--link:hover .sr-ico,
.v2news .scope-row--download:hover .sr-ico { background: var(--vlsi-accent); border-color: var(--vlsi-accent); color: #15171c; }
.v2news .scope-row--download:hover .sr-ico svg { animation: srDown .5s ease; }
@keyframes srDown { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(2px); } }

/* 類型 1：純文字（無連結、無動作、滑鼠維持預設） */
.v2news .scope-row--text { cursor: default; }

/* ---------- 影片：第一張靠左對齊內容區（與 Video 標題切齊） ---------- */
.vfeat .vscroll {
  --vpad: max(var(--vlsi-gut), calc((100% - var(--vlsi-wrap)) / 2 + var(--vlsi-gut)));
  padding-left: var(--vpad);
  padding-right: var(--vlsi-gut);
  scroll-padding-left: var(--vpad);
}
.vfeat .vcard { scroll-snap-align: start; }

@media (max-width: 575px){
  /* 整列延伸到螢幕邊：線貼左、hover 底色滿版 */
  .v2news .scope-row { grid-template-columns: 30px 1fr auto; gap: .6rem;
    margin-inline: calc(-1 * var(--vlsi-gut)); padding-inline: var(--vlsi-gut); }
  .v2news .scope-row--link:hover,
  .v2news .scope-row--download:hover { padding-left: var(--vlsi-gut); }
  .v2news .scope-row .sr-ico { width: 40px; height: 40px; }
  .v2news .scope-row .sr-ico svg { width: 18px; height: 18px; }
  /* 標題與內文間距縮短 */
  .v2news .scope-row p { margin-top: .15rem; }
}

/* ---------- 最新消息「MORE」按鈕 + 收合（共用功能） ---------- */
.v2news .scope-list.is-collapsed .scope-row:nth-child(n+6) { display: none; }
.news-more-wrap { text-align: center; margin-top: 1.6rem; }
.news-more { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; cursor: pointer;
  width: 250px;
  background: none; border: 1px solid rgba(255,255,255,.28); color: #fff;
  font: 600 .92rem/1 "IBM Plex Sans", system-ui, sans-serif;
  padding: .7rem 1.5rem; border-radius: 999px; transition: background .2s, border-color .2s, color .2s; }
.news-more:hover { background: var(--vlsi-accent); border-color: var(--vlsi-accent); color: #15171c; }
.news-more-ico { transition: transform .2s; }
.news-more[aria-expanded="true"] .news-more-ico { transform: rotate(180deg); }

