/* ===================== 全站變數 ===================== */
:root {
  --brand:#4a86e8;
  --ink:#223;
  --bg:#f0f8ff;
  --card:#fff;
  --muted:#5f7aa1;
  --ring: rgba(74,134,232,.35);
  --shadow:0 6px 20px rgba(0,0,0,.08);
  --radius:16px;
}

/* Reset & 基礎 */
*{box-sizing:border-box}
html,body{height:100%}
html, body { 
  margin:0;
  overflow-x: hidden;              /* 關鍵：禁止水平超出 */
}
body{
  font-family:'Noto Serif TC','Microsoft JhengHei',system-ui,serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.65;
}
.wrap{
  max-width:1200px;
  width:100%;                      /* 關鍵：永遠不超過螢幕寬 */
  margin:auto;
  padding:0 20px;
}

/* 全域：媒體與長字處理，避免把版面撐破 */
img, video { max-width:100%; height:auto; }
a, p, li, td, th { overflow-wrap:anywhere; word-break:break-word; }

/* ===================== Header / Nav ===================== */
header{
  position: sticky;
  top: 0;
  z-index: 3000;
  background: rgba(255,255,255,.9);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 2px solid rgba(74,134,232,.4);
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
  width:100%;
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:66px;
  padding-left: 16px;
  padding-right: 16px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--brand)
}
.brand-mark{
  display:grid;
  place-items:center;
  width:38px;height:38px;
  border-radius:12px;
  background:linear-gradient(145deg,#e6f0ff,#cfe0ff);
  color:var(--brand);
  font-weight:700;
  box-shadow:var(--shadow)
}
.brand-title{font-weight:700;font-size:18px;line-height:1.2}
.menu{
  display:flex;
  gap:6px;
  align-items:center;
  position:relative
}
.menu a{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  color:var(--ink);
  padding:10px 14px;
  border-radius:12px
}
.menu a:hover{background:#f3f7ff}
.menu a:focus-visible{outline:3px solid var(--ring)}
.menu .cta{background:var(--brand);color:#fff}
.menu .cta:hover{background: color-mix(in srgb, var(--brand) 92%, black 8%)}
.menu a::after{
  content:attr(data-en);
  position:absolute;
  left:50%;bottom:-18px;
  transform:translateX(-50%);
  background:#3a76d8;
  color:#fff;
  padding:2px 6px;
  border-radius:6px;
  font-size:12px;
  white-space:nowrap;
  opacity:0;
  transition:opacity .25s, bottom .25s;
  pointer-events:none
}
.menu a:hover::after{opacity:1;bottom:2px}
.menu-toggle{
  display:none;
  background:#fff;
  border:1px solid rgba(74,134,232,.25);
  box-shadow:var(--shadow);
  border-radius:12px;
  width:42px;height:42px;
  align-items:center;justify-content:center;
}
.menu-toggle::after { content:"☰"; font-size:20px; line-height:1; }
.menu-toggle[aria-expanded="true"]::after { content:"✕"; font-size:22px; }

/* ===================== Page head ===================== */
.page-head{padding:28px 0}
.page-head h1{margin:0;color:var(--brand);font-size:clamp(24px,3.6vw,36px)}

/* ===================== About 區塊 ===================== */
.about{
  display:grid;
  grid-template-columns: 1fr 1fr;   /* 左右並排 */
  gap:24px;
  align-items:start;
}
.about .pics{
  display:flex;
  flex-direction:column;
  gap:16px;
  justify-content:flex-start;
  align-items:center;
}
.about .pics img{
  display:block;
  width:100%;
  height:auto;          /* 保持比例，不限制高度 */
  max-width:100%;
  object-fit:contain;
  border-radius:12px;
  box-shadow:var(--shadow);
}
.about .cards{
  display:flex;
  flex-direction:column;
  gap:20px;
}

/* ===================== Layout ===================== */
.layout{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:24px;
  max-width:100%;
}
aside{position:sticky;top:90px;align-self:start}

/* ===================== TOC 側邊目錄 ===================== */
.toc{
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  border:1px solid rgba(74,134,232,.12);
  padding:14px;
  max-width:100%;
}
.toc h3{margin:0 0 8px;color:#2a3a55;font-size:18px}

/* 預設隱藏，點擊才展開（桌機/手機皆適用） */
.toc ul{
  list-style:none;
  margin:0;padding:0;
  display:none;
  gap:6px;
  max-height:60vh;
  overflow:auto
}
.toc .group-btn[aria-expanded="true"] + ul{
  display:grid;
}

.toc a{
  display:block;
  padding:6px 8px;
  border-radius:10px;
  color:#2a3a55;
  text-decoration:none
}
.toc a:hover{background:#f3f7ff}
.toc .group-btn{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;
  margin:10px 0 6px;
  padding:6px 8px;
  border-radius:10px;
  background:#eef4ff;
  color:#2a3a55;
  border:1px solid rgba(74,134,232,.25);
  font-weight:700;
  cursor:pointer
}
.toc .group-btn .chev{transition:transform .2s ease}

/* ===================== Content 卡片 ===================== */
.content{display:grid;gap:20px; max-width:100%;}
.card{
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  border:1px solid rgba(74,134,232,.12);
  position: relative; z-index:0;
  max-width:100%;
}
.card h2{
  margin:0;
  padding:16px 20px;
  border-bottom:1px solid #e8eef9;
  color:#2a3a55
}
.card .body{padding:16px 20px}

/* 在校時間表 */
.time-grid{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:16px;
  align-items:center;
  max-width:100%;
}
.time-grid img{
  width:100%;height:auto;
  border-radius:10px;
  border:1px solid rgba(74,134,232,.15);
  box-shadow:var(--shadow);
  object-fit:cover
}

/* Profile list */
.profile{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:16px;
  align-items:start;
  max-width:100%;
}
.profile + .profile{
  border-top:1px dashed #e8eef9;
  padding-top:16px;margin-top:16px
}
.profile .avatar img{
  width:100%;height:auto;
  border-radius:10px;
  border:1px solid rgba(74,134,232,.15);
  object-fit:cover
}
.profile .info{display:grid;gap:6px}
.profile .name{font-weight:700;color:#2a3a55}
.profile .meta{color:#3c4b68}
.profile .role{
  display:inline-block;
  margin-left:8px;
  padding:2px 8px;
  border:1px solid rgba(74,134,232,.3);
  border-radius:999px;
  color:#3a63c5;
  font-size:12px;
  background:#eef4ff
}
.profile .say{color:#5a6b8a}
.backtop{display:inline-block;margin-top:6px;color:var(--brand);text-decoration:none}

/* Footer */
footer{margin:32px 0 46px;color:#4a86e8;text-align:center}

/* ===================== 響應式 ===================== */
@media (max-width: 1000px){
  .layout{grid-template-columns:1fr}
  aside{position:static}
}

/* 手機 (<=720px) */
@media (max-width: 720px){
  header{
    background:#fff;
    backdrop-filter:none;
    border-bottom:1px solid rgba(74,134,232,.25);
    box-shadow:0 2px 6px rgba(0,0,0,.08);
  }
  header .nav{
    max-width:100% !important;
    margin:0 !important;
    padding-left:12px;
    padding-right:12px;
    width:100%;
  }

  .menu-toggle{display:inline-flex}

  .menu{
    position: fixed !important;
    top: 66px !important;
    left:0;right:0;bottom:0;
    display:none;
    flex-direction:column;
    gap:8px;
    background:#fff;
    padding:16px;
    border-radius:0;
    border:none;
    box-shadow:0 6px 20px rgba(0,0,0,.12);
    overflow:auto;
    z-index:2000;
    max-width:100vw;
  }
  .menu.open{display:flex !important}

  .menu a{
    padding:12px 14px;
    border-radius:12px;
    font-size:16px
  }
  .menu a::after{
    position:static;
    display:block;
    margin-top:2px;
    background:transparent;
    color:#3a76d8;
    opacity:1;
    padding:0;
    transform:none
  }

  /* About：手機回單欄 */
  .about{grid-template-columns:1fr}

  .time-grid{
    grid-template-columns:1fr;
    align-items:start;
    justify-items:center;
    text-align:center;
  }
  .time-grid img{max-width:100%}

  .toc .group-btn{padding:10px 12px;font-size:16px}
  .toc a{padding:10px;font-size:15px}

  .brand-title{font-size:16px}
}

/* 超小螢幕 (<=360px) */
@media (max-width:360px){
  .brand-title{font-size:14px}
}

/* === Conference 頁面缺的表格樣式（補上） === */
.table{width:100%;border-collapse:collapse}
.table thead th{background:#eef4ff;color:#2a3a55;font-weight:700}
.table th,.table td{padding:12px 14px;text-align:left;border-bottom:1px solid #e8eef9}
.table tbody tr:hover td{background:#f9fbff}

/* 通用：muted 文案顏色（補上） */
.muted{color:var(--muted)}

/* 手機選單開啟時：鎖定背景＋半透明遮罩（補上） */
body.menu-open{overflow:hidden}
body.menu-open::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.35);
  z-index:1999;           /* 低於 .menu 的 2000，避免遮在彈窗上面 */
}

/* 避免 menu-toggle 文字與 ::after 雙重顯示（不改按鈕文字，僅以 CSS 隱藏） */
.menu-toggle{font-size:0; line-height:0}

/* === web-link.html 友站互聯：版面與連結卡片 === */
.grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

/* 圖片縮圖樣式（僅作用於本頁的 grid 內卡片） */
.grid .card figure{margin:0 0 12px;text-align:center}
.grid .card img{
  width:180px;height:120px;
  object-fit:cover;
  border-radius:12px;
  border:1px solid rgba(74,134,232,.15);
}

/* 清單連結樣式 */
.links{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.links a{
  display:inline-block;
  padding:6px 10px;
  border-radius:10px;
  text-decoration:none;
  color:#2a3a55;
  border:1px solid rgba(74,134,232,.18);
}
.links a:hover{background:#f3f7ff}

/* 響應式：平板以下改為單欄 */
@media (max-width: 960px){
  .grid{grid-template-columns:1fr}
}
/* === essays-htm.html 文章精選 === */
.essay-list{
  width:100%;
  border-collapse:collapse;
}
.essay-list thead th{
  background:#eef4ff;
  color:#2a3a55;
  font-weight:700;
}
.essay-list th, .essay-list td{
  padding:12px 14px;
  text-align:left;
  border-bottom:1px solid #e8eef9;
}
.essay-list tbody tr:hover td{background:#f9fbff}
.essay-list td:first-child{white-space:nowrap;color:#3c4b68}
.essay-title{margin:0 0 16px;color:var(--brand);font-size:clamp(22px,3.2vw,32px)}
/* === index-1.html 首頁影片區 === */
.index-main{
  margin:20px 0;
  position:relative;
  overflow:hidden;
  padding-top:56.25%;     /* 16:9 高寬比 */
}
.index-main video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
/* === index.html 首頁樣式（新增） === */

/* 無障礙跳連結 */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:16px;top:16px;width:auto;height:auto;padding:8px 12px;background:#fff;border-radius:10px;box-shadow:var(--shadow);outline:2px solid var(--brand)}

/* 首頁 hero */
.hero{position:relative;isolation:isolate}
.hero-media{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:0 0 24px 24px}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top, rgba(0,0,0,.45), rgba(0,0,0,.15) 45%, transparent)}
.hero-text{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#fff;padding:24px}
.hero h1{font-size:clamp(28px,4.2vw,44px);margin:0 0 8px;text-shadow:0 8px 22px rgba(0,0,0,.35)}
.hero p{opacity:.95;margin:0}

/* 右下工具列 */
.hero-actions{position:absolute;right:18px;bottom:18px;display:flex;gap:8px}
.chip{background:rgba(255,255,255,.9);border:1px solid rgba(74,134,232,.2);border-radius:999px;padding:8px 12px;display:inline-flex;gap:8px;align-items:center;box-shadow:var(--shadow)}
.chip button{all:unset;cursor:pointer}

/* 區塊 / 卡片格線 */
.section{padding:36px 0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(74,134,232,.12)}
.card-body{padding:26px;display:grid;gap:10px;place-items:center;text-align:center}
.card a{display:block;width:100%;text-decoration:none;color:var(--brand);font-weight:700;font-size:20px}
.card small{color:var(--muted)}
.card:hover{transform:translateY(-3px);transition:.25s ease;box-shadow:0 10px 24px rgba(0,0,0,.12)}

/* 聯絡資訊卡片內文 */
.contact{display:grid;gap:8px;color:#2a3a55}
.contact a{color:var(--brand)}

/* 響應式 */
@media (max-width: 960px){
  .cards{grid-template-columns:1fr 1fr}
}
@media (max-width: 720px){
  .hero-media{border-radius:0}
  .cards{grid-template-columns:1fr}
  .card a{font-size:18px}
}
/* === album_111.html 活動照片（年表＋相簿縮圖） === */
.album-list{
  list-style:none;
  margin:0 0 16px;
  padding:0;
  display:grid;
  grid-template-columns:repeat(7, minmax(120px,1fr));
  gap:10px;
}
.album-list a{
  display:block;
  text-decoration:none;
  color:#2a3a55;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(74,134,232,.18);
}
.album-list a:hover{ background:#f3f7ff }

.album-main{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4, minmax(180px,1fr));
  gap:16px;
}
.album-main li a{
  display:grid;
  gap:8px;
  text-decoration:none;
  color:#2a3a55;
}
.album-main img{
  width:100%;
  height:180px;
  object-fit:cover;
  border-radius:12px;
  border:1px solid rgba(74,134,232,.15);
  box-shadow:var(--shadow);
}

/* 響應式 */
@media (max-width: 1000px){
  .album-list{ grid-template-columns:repeat(4,1fr) }
  .album-main{ grid-template-columns:repeat(3,1fr) }
}
@media (max-width: 720px){
  .album-list{ grid-template-columns:repeat(2,1fr) }
  .album-main{ grid-template-columns:repeat(2,1fr) }
}
/* === album 單頁總覽：篩選列、相簿格、燈箱（新增） === */

/* 篩選列 */
.album-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px}
.album-search{flex:1;min-width:200px}
.album-search input{width:100%;padding:8px 10px;border:1px solid #dbe5f8;border-radius:10px}
.album-filters .chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:#fff;border:1px solid rgba(74,134,232,.25);border-radius:999px;padding:6px 10px;cursor:pointer}
.chip[aria-pressed="true"]{background:#eef4ff;border-color:rgba(74,134,232,.5)}

/* 相簿縮圖格（沿用你相簿風格） */
.album-main{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4, minmax(180px,1fr));gap:16px}
.album-main li a{display:grid;gap:8px;text-decoration:none;color:#2a3a55}
.album-main img{width:100%;height:180px;object-fit:cover;border-radius:12px;border:1px solid rgba(74,134,232,.15);box-shadow:var(--shadow)}
.album-meta{display:flex;justify-content:space-between;color:#3c4b68;font-size:14px}

/* 燈箱 */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:3000}
.lightbox.open{display:flex}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:10px;box-shadow:var(--shadow)}
.lightbox .nav{position:absolute;inset:auto 0 20px 0;display:flex;justify-content:center;gap:12px}
.lightbox button{all:unset;background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}

/* 響應式 */
@media (max-width: 1000px){
  .album-main{grid-template-columns:repeat(3,1fr)}
}
@media (max-width: 720px){
  .album-main{grid-template-columns:repeat(2,1fr)}
}
