/*
Theme Name: Yamamoto Lab
Theme URI: https://yt-lab.net/
Author: Tatsuya Yamamoto
Description: 山本竜也研究室（神戸松蔭女子学院大学）のカスタムWordPressテーマ
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: yamamoto-lab
*/

/* ========== Reset & Base ========== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --color-green:       #4daf7c;
    --color-green-light: #6ec99a;
    --color-green-dark:  #3a8f62;
    --color-text:        #333;
    --color-text-light:  #666;
    --color-bg:          #fff;
    --color-bg-gray:     #f7f7f7;
    --font-jp:           'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
    --letter-spacing:    0.2em;
}

html { scroll-behavior: smooth; }
body { font-family: var(--font-jp); color: var(--color-text); background: var(--color-bg); line-height: 1.8; letter-spacing: 0.05em; }
a { color: var(--color-green); text-decoration: none; }
a:hover { opacity: 0.75; }
img { max-width: 100%; height: auto; display: block; }

/* ========== Header ========== */
#site-header { text-align: center; padding: 30px 20px 10px; }
#site-header .site-logo img { max-width: 260px; margin: 0 auto; }
#site-header .site-title-text { font-size: 2rem; font-weight: 700; letter-spacing: var(--letter-spacing); color: var(--color-green); margin-top: 8px; }
#site-header .site-title-text a { color: inherit; }
#site-header .site-university { font-size: 0.85rem; color: var(--color-green); letter-spacing: var(--letter-spacing); }

/* ========== Navigation ========== */

/* PCナビ: 横バー (min-width: 761px) */
@media screen and (min-width: 761px) {
  .nav-toggle { display: none; }
  #primary-menu-shadow { display: none; }
  .nav-footer { display: none; }
  #site-nav {
    margin-bottom: 110px;
  }
  #site-nav.is-top {
    margin-bottom: 54px;
  }
  #site-nav ul {
    background: white;
    border: 3px solid var(--color-green);
    color: var(--color-green);
    display: flex;
    height: 70px;
    border-radius: 35px;
    list-style-type: none;
    padding: 16.5px 10px;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    gap: 0;
    box-sizing: border-box;
  }
  #site-nav ul li {
    flex: 1 1 auto;
    height: 100%;
    text-align: center;
    border-right: 2px solid var(--color-green);
    position: relative;
  }
  #site-nav ul li:last-child {
    border-right: 0;
  }
  #site-nav ul li + li::before { display: none; }
  #site-nav ul li a {
    display: block;
    width: 100%;
    height: 100%;
    color: var(--color-green);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 37px;
    transition: opacity 0.2s;
    padding: 0;
  }
  #site-nav ul li a:hover { opacity: 0.7; }
  /* sticky nav - スクロール時に上部固定 */
  #site-nav.is-fixed ul {
    position: fixed;
    top: 37px; /* WP管理バー(32px) + 5px */
    left: 30px;
    right: 30px;
    z-index: 100;
    width: auto;
    max-width: 980px;
    margin: 0 auto;
  }
}

/* モバイルナビ: ハンバーガー + スライドアウト (max-width: 760px) */
@media screen and (max-width: 760px) {
  #site-nav {
    margin-bottom: 0;
  }

  /* ハンバーガーボタン */
  .nav-toggle {
    position: fixed;
    top: 30px;
    right: 0;
    z-index: 200;
    width: 60px;
    height: 60px;
    background: var(--color-green);
    border: none;
    border-radius: 0;
    padding: 18px 16px 17px;
    cursor: pointer;
    display: block;
    margin: 0;
    /* スクロール時にスライドアウトするためのトランジション */
    transition: transform 0.3s;
  }
  /* スクロール時に右へ引っ込む（オリジナルと同じ挙動） */
  .nav-toggle.is-hidden {
    transform: translate(80%, 0);
  }
  /* WP管理バー表示時（モバイルは46px） */
  .admin-bar .nav-toggle {
    top: 76px;
  }
  .nav-toggle span {
    display: block;
    width: 28px;
    height: 5px;
    background: #fff;
    margin-bottom: 5px;
    transition: 0.3s;
  }
  .nav-toggle span:last-child { margin-bottom: 0; }

  /* スライドアウトパネル (.nav-inner 全体をスライド) */
  .nav-inner {
    position: fixed;
    top: 108px;
    right: 0;
    z-index: 150;
    transform: translate(110%, 0);
    transition: transform 0.5s;
    margin: 0 0 5px 5px;
    box-shadow: -3px 3px 3px rgba(0, 0, 0, 0.16);
    /* 背景色を nav-inner 自体に設定（ul が inline-flex で縮んでも緑が右端まで届く） */
    background: rgba(93, 192, 124, 0.95);
    /* height は中身に合わせる（透明ボックス防止） */
    height: auto;
    max-height: calc(100vh - 108px);
    overflow-y: auto;
  }
  .admin-bar .nav-inner {
    top: 154px; /* WP管理バー(46px, モバイル) + 108px */
    max-height: calc(100vh - 154px);
  }
  #site-nav.nav-open .nav-inner {
    transform: translate(0, 0);
  }

  /* ul（メニューリスト）のスタイル */
  #site-nav ul {
    /* 背景は .nav-inner 側に移動し、ul は幅いっぱいに広げる */
    background: transparent;
    list-style-type: none;
    padding: 30px 65px;
    display: flex;
    flex-direction: column;
    width: 100%;
    /* オリジナルは html{font-size:62.5%} で 1.6rem=16px。WPは1rem=16px */
    font-size: 1rem;
    margin: 0;
    gap: 0;
    border: none;
    border-radius: 0;
    height: auto;
    min-width: 0;
    position: static;
    transform: none;
    transition: none;
    box-shadow: none;
  }
  @media screen and (max-width: 365px) {
    #site-nav ul { padding: 20px 65px; }
  }

  #primary-menu-shadow {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 100;
    background: transparent;
    display: none;
  }
  #primary-menu-shadow.nav-open { display: block; }

  #site-nav ul li + li::before { display: none; }
  #site-nav ul li {
    margin: 0;
    background: transparent;
    box-shadow: none;
    flex: 1 1 auto;
    line-height: 1;
    display: flex;
    align-items: center;
    height: 55px;
    padding: 0;
    border-right: none;
    border-bottom: none;
  }
  #site-nav ul li:last-child {
    border-right: none;
    border-bottom: none;
  }
  #site-nav ul li a {
    color: #fff;
    font-size: 1rem; /* オリジナル1.6rem(62.5%base=16px) と同等 */
    font-weight: 500;
    letter-spacing: 0.1em;
    padding: 0;
    line-height: normal;
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
  }
  /* ＞ プレフィックス（オリジナルに合わせる） */
  #site-nav ul li a::before {
    content: "＞";
    margin-right: 0.2em;
  }

  /* メールボタン（パネル下部・白背景） */
  .nav-footer {
    background: #fff;
    padding: 17px;
    display: none;
  }
  #site-nav.nav-open .nav-footer {
    display: block;
  }
  .btn-nav-mail {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 12px 20px;
    background: var(--color-green);
    color: #fff;
    text-align: center;
    border-radius: 32.5px;
    font-size: 0.875rem; /* オリジナル 1.4rem(62.5%base=14px) と同等 */
    letter-spacing: 0.05em;
    box-sizing: border-box;
    height: 51px;
  }
  /* エンベロープアイコン（オリジナルと同じ） */
  .btn-nav-mail::before {
    content: "";
    display: inline-block;
    width: 25px;
    height: 17px;
    margin-right: 10px;
    flex-shrink: 0;
    background-image: url(./images/icon-mail.svg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
  }
}

/* ========== Hero ========== */
.hero-section { display: flex; align-items: center; justify-content: center; max-width: 1100px; margin: 40px auto 60px; padding: 0 20px; gap: 40px; }
.hero-image { flex: 0 0 45%; }
.hero-text { flex: 0 0 50%; text-align: center; }
.hero-text .university-name { font-size: 1rem; letter-spacing: var(--letter-spacing); color: var(--color-green); margin-bottom: 10px; }
.hero-text .lab-name { font-size: 3.5rem; font-weight: 900; letter-spacing: var(--letter-spacing); color: var(--color-green); line-height: 1.3; }
.hero-text .lab-name-en { font-size: 0.9rem; letter-spacing: 0.3em; color: var(--color-green); margin-top: 10px; font-style: italic; }

/* ========== Catch ========== */
.catch-section { text-align: center; padding: 60px 20px; background: var(--color-bg); }
.catch-section .catch-main { font-size: 1.6rem; font-weight: 700; letter-spacing: var(--letter-spacing); color: var(--color-green); line-height: 1.8; margin-bottom: 30px; }
.catch-section .catch-sub { font-size: 1rem; color: var(--color-text); letter-spacing: var(--letter-spacing); line-height: 2.2; max-width: 640px; margin: 0 auto; }

/* ========== News ========== */
.news-section { max-width: 900px; margin: 0 auto 60px; padding: 0 20px; }
.section-title { font-size: 1.6rem; font-weight: 700; color: var(--color-green); letter-spacing: var(--letter-spacing); text-align: center; margin-bottom: 30px; }
.news-list { list-style: none; border-top: 1px solid #e0e0e0; }
.news-list li { display: flex; align-items: flex-start; gap: 20px; padding: 14px 0; border-bottom: 1px solid #e0e0e0; font-size: 0.95rem; }
.news-list li .news-date { color: var(--color-green); white-space: nowrap; font-weight: 500; min-width: 100px; }
.news-list li a { color: var(--color-text); transition: color .2s; }
.news-list li a:hover { color: var(--color-green); }
.news-more { text-align: right; margin-top: 16px; }
.news-more a { color: var(--color-green); font-size: 0.9rem; border-bottom: 1px solid var(--color-green); padding-bottom: 2px; }

/* ========== Info Cards ========== */
/* オリジナル同様：背景は白、セクション境界にグレー帯（border）を配置 */
.info-section { background: #fff; padding: 60px 20px; border-top: 20px solid #F7F8F7; border-bottom: 20px solid #F7F8F7; }
.info-cards { max-width: 980px; margin: 0 auto; display: flex; flex-direction: column; gap: 30px; }
.info-card { display: flex; align-items: center; gap: 30px; background: #fff; border: 2px solid var(--color-green); border-radius: 16px; padding: 30px; }
.info-card .card-image { flex: 0 0 140px; }
.info-card .card-image img { width: 140px; height: auto; }
.info-card .card-body { flex: 1; }
.info-card .card-title { font-size: 1.4rem; font-weight: 700; color: var(--color-green); letter-spacing: var(--letter-spacing); margin-bottom: 12px; }
.info-card .card-text { font-size: 0.95rem; line-height: 1.9; color: var(--color-text); letter-spacing: var(--letter-spacing); margin-bottom: 14px; }
.info-card .card-links { display: flex; gap: 20px; flex-wrap: wrap; }
.info-card .card-links a { color: var(--color-green); font-size: 0.9rem; border-bottom: 1px solid var(--color-green); padding-bottom: 2px; }

/* ========== Profile ========== */
.profile-section { max-width: 900px; margin: 60px auto; padding: 0 20px; display: flex; align-items: center; gap: 50px; }
.profile-section .profile-image { flex: 0 0 260px; text-align: center; }
.profile-section .profile-image img { max-width: 240px; margin: 0 auto; }
.profile-section .profile-body { flex: 1; }
.profile-section .profile-name { font-size: 1.6rem; font-weight: 700; color: var(--color-text); margin-bottom: 16px; text-align: center; }
.profile-section .profile-text { font-size: 0.95rem; line-height: 2; letter-spacing: var(--letter-spacing); margin-bottom: 24px; }
.btn-green { display: inline-block; background: var(--color-green); color: #fff !important; border-radius: 50px; padding: 14px 40px; font-size: 1rem; font-weight: 500; letter-spacing: 0.1em; transition: background .2s, opacity .2s; }
.btn-green:hover { background: var(--color-green-dark); opacity: 1; }

/* ========== Books ========== */
/* オリジナル同様：白背景＋グレー帯 */
.books-section { background: #fff; padding: 60px 20px; border-top: 20px solid #F7F8F7; border-bottom: 20px solid #F7F8F7; }
.books-grid { max-width: 980px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.book-card { background: #fff; border: 2px solid var(--color-green); border-radius: 16px; padding: 20px; text-align: center; font-size: 0.9rem; color: var(--color-green); font-weight: 500; line-height: 1.6; letter-spacing: 0.05em; }
.book-card img { margin: 0 auto 12px; max-height: 160px; object-fit: contain; }

/* ========== Grants ========== */
.grants-section { max-width: 980px; margin: 60px auto; padding: 0 20px; }
.grants-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 20px; }
.grant-card { border: 2px solid var(--color-green); border-radius: 16px; padding: 24px; color: var(--color-green); transition: background .2s; display: block; }
.grant-card:hover { background: rgba(77,175,124,0.07); opacity: 1; }
.grant-card .grant-title { font-size: 1rem; font-weight: 700; letter-spacing: 0.05em; margin-bottom: 12px; line-height: 1.6; }
.grant-card .grant-desc { font-size: 0.9rem; line-height: 1.8; color: var(--color-text); margin-bottom: 12px; }
.grant-card .grant-more { font-size: 0.85rem; color: var(--color-green); font-weight: 500; }

/* ========== Access ========== */
/* タイトル・住所は中央寄せ幅制限、地図は横幅いっぱい */
.access-section { margin: 0 0 60px; padding: 0; text-align: center; }
.access-section .access-inner { max-width: 900px; margin: 0 auto; padding: 60px 20px 30px; }
.access-section .access-address { font-size: 0.95rem; letter-spacing: var(--letter-spacing); margin-bottom: 6px; }
.access-section .map-embed { margin-top: 0; overflow: hidden; height: 400px; border-radius: 0; }
.access-section .map-embed iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ========== Footer ========== */
/* #site-footer をプレフィックスにして競合を防ぐ */
#site-footer {
  background: #fff;
  display: block;
}

/* --- 連絡先ブロック --- */
#site-footer .footer-inner {
  display: block;
  width: 100%;
  max-width: 655px;
  margin: 0 auto;
  padding: 60px 20px 0;
  box-sizing: border-box;
}
#site-footer .footer-contact-box {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  color: var(--color-green);
  border: 3px solid var(--color-green);
  border-radius: 30px;
  padding: 40px;
  margin-bottom: 104px;
  box-sizing: border-box;
}
/* portrait: オリジナルに合わせて flex: 1 1 auto */
#site-footer .footer-contact-portrait {
  flex: 1 1 auto;
  margin-right: 40px;
  text-align: center;
}
#site-footer .footer-contact-portrait img {
  display: block;
  width: auto;
  max-height: 154px;
  margin: 0 auto;
}
#site-footer .footer-contact-content {
  flex: 1 1 auto;
  min-width: 0;
}
/* オリジナル: 2.4rem(62.5%base=24px) → WP: 1.5rem */
#site-footer .footer-contact-text {
  font-size: 1.5rem;
  line-height: 1.38;
  letter-spacing: 0.18em;
  margin-bottom: 20px;
  text-align: center;
  white-space: nowrap;
  color: var(--color-green);
}
#site-footer .footer-contact-button {
  text-align: center;
  margin-bottom: 7px;
}
#site-footer .btn-footer-mail {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 51px;
  background: var(--color-green);
  color: #fff;
  border-radius: 32.5px;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  box-sizing: border-box;
  padding: 0 16px;
}
#site-footer .btn-footer-mail::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 25px;
  height: 17px;
  margin-right: 10px;
  background-image: url(./images/icon-mail.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
#site-footer .footer-contact-caution {
  color: #707070;
  font-size: 0.9rem;
  letter-spacing: 0;
  text-align: center;
}

/* --- リンクセクション --- */
#site-footer .footer-links-section {
  display: block;
  text-align: center;
  padding: 0 20px;
}
/* オリジナル: 3.4rem(62.5%base=34px) → WP: 2.125rem */
#site-footer .footer-links-title {
  display: block;
  font-size: 2.125rem;
  color: var(--color-green);
  font-weight: 700;
  text-align: center;
  letter-spacing: var(--letter-spacing);
  margin-bottom: 62px;
  padding-top: 60px;
}
/* PC: 縦線区切りで横並び */
@media screen and (min-width: 761px) {
  #site-footer .footer-links-list {
    display: inline-flex;
    margin: 0 auto 100px;
  }
  #site-footer .footer-links-item {
    flex: 0 1 auto;
    white-space: nowrap;
  }
  #site-footer .footer-links-item .footer-links-link {
    display: flex;
    align-items: center;
    font-size: 1.0625rem; /* 1.7rem(62.5%base=17px) */
    line-height: 1.53;
    text-align: center;
    color: var(--color-green);
  }
  #site-footer .footer-links-item .footer-links-link::before {
    content: "";
    display: inline-block;
    border-left: 3px solid var(--color-green);
    height: 37px;
    margin: 0 2em;
  }
  #site-footer .footer-links-item:last-child .footer-links-link::after {
    content: "";
    display: inline-block;
    border-left: 3px solid var(--color-green);
    height: 37px;
    margin: 0 2em;
  }
}

/* --- コピーライトバー（グリーン背景） --- */
#site-footer .footer-bar {
  display: flex;
  width: 100%;
  height: 96px;
  justify-content: center;
  align-items: center;
  text-align: center;
  background: var(--color-green);
  color: #fff;
  font-size: 1.0625rem; /* 1.7rem(62.5%base=17px) */
  box-sizing: border-box;
}
#site-footer .footer-bar p { color: #fff; }

/* u-sp: PC では非表示 */
.u-sp { display: none; }

/* SP フッター */
@media screen and (max-width: 760px) {
  #site-footer .footer-contact-box {
    flex-direction: column;
    align-items: stretch;
    padding: 30px 20px;
    margin-bottom: 78px;
  }
  #site-footer .footer-contact-portrait {
    flex: none;
    width: auto;
    margin-right: 0;
    margin-bottom: 40px;
  }
  #site-footer .footer-contact-portrait img {
    max-height: 200px;
    max-width: 100%;
    margin: 0 auto;
  }
  #site-footer .footer-contact-text {
    font-size: 1.125rem; /* 1.8rem(62.5%base=18px) */
    margin-bottom: 32px;
  }
  #site-footer .footer-links-title {
    font-size: 1.5rem; /* 2.4rem(62.5%base=24px) */
    margin-bottom: 40px;
  }
  #site-footer .footer-links-list {
    display: flex;
    flex-direction: column;
    margin: 0 auto 40px;
  }
  #site-footer .footer-links-item {
    margin-bottom: 24px;
    color: var(--color-green);
  }
  #site-footer .footer-links-item .footer-links-link {
    display: block;
    border-radius: 10px;
    border: 2px solid var(--color-green);
    padding: 23px 56px 23px 23px;
    font-size: 12px;
    text-align: left;
    position: relative;
    color: var(--color-green);
  }
  #site-footer .footer-links-item .footer-links-link::after {
    content: "＞";
    font-size: 0.875rem;
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
  }
  #site-footer .footer-bar {
    height: 109px;
    font-size: 0.75rem; /* 1.2rem(62.5%base=12px) */
    line-height: 1.5;
  }
  .u-sp { display: inline; }
}

/* ========== Archive / Single ========== */
.content-wrapper { max-width: 860px; margin: 40px auto 60px; padding: 0 20px; }
.archive-header { margin-bottom: 30px; text-align: center; }
.archive-header h1 { font-size: 1.8rem; color: var(--color-green); font-weight: 700; letter-spacing: var(--letter-spacing); }
.archive-list { list-style: none; border-top: 1px solid #e0e0e0; }
.archive-list li { display: flex; align-items: flex-start; gap: 20px; padding: 16px 0; border-bottom: 1px solid #e0e0e0; }
.archive-list li .item-date { color: var(--color-green); white-space: nowrap; font-weight: 500; min-width: 110px; font-size: 0.9rem; }
.archive-list li .item-title a { color: var(--color-text); font-size: 1rem; }
.archive-list li .item-title a:hover { color: var(--color-green); }
.post-header { margin-bottom: 30px; padding-bottom: 16px; border-bottom: 2px solid var(--color-green); }
.post-header .post-title { font-size: 1.5rem; font-weight: 700; color: var(--color-text); margin-bottom: 8px; }
.post-header .post-meta { font-size: 0.85rem; color: var(--color-green); }
.post-content { line-height: 2; }
.post-content h2 { font-size: 1.3rem; color: var(--color-green); margin: 30px 0 12px; padding-bottom: 6px; border-bottom: 2px solid var(--color-green); }
.post-content p { margin-bottom: 16px; }
.post-nav { display: flex; justify-content: space-between; margin-top: 40px; }
.post-nav a { color: var(--color-green); font-size: 0.9rem; }
.pagination {
  text-align: center;
  margin: 40px 0;
}
.pagination ul.page-numbers {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: 0;
  border: none;
}
.pagination ul.page-numbers li {
  display: flex;
}
.pagination .page-numbers {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid var(--color-green);
  border-radius: 4px;
  color: var(--color-green);
  font-size: 0.9rem;
}
.pagination .page-numbers.current {
  background: var(--color-green);
  color: #fff;
}
/* ========== Page ========== */
.page-content { max-width: 860px; margin: 40px auto 60px; padding: 0 20px; }
.page-content h1 { font-size: 1.8rem; color: var(--color-green); font-weight: 700; letter-spacing: var(--letter-spacing); margin-bottom: 30px; padding-bottom: 12px; border-bottom: 2px solid var(--color-green); }
.page-content p { line-height: 2; margin-bottom: 16px; }

/* ========== 研究室ページ: lab-researches ========== */
/* 画像を中央揃えに */
.lab-researches__icon { text-align: center; margin-bottom: 20px; }
.lab-researches__icon img { margin: 0 auto; max-width: 100%; height: auto; }

/* 見出し（心の病そのもの・心の病の治療法）: フォントサイズ統一・中央揃え */
/* オリジナル: 2.4rem (html font-size:62.5% = 24px) → WP標準換算: 1.5rem */
.lab-researches__title {
  color: var(--color-green);
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: var(--letter-spacing);
  margin-bottom: 24px;
}

/* ========== Responsive ========== */
@media (max-width: 768px) {
    .hero-section { flex-direction: column; gap: 20px; }
    .hero-text .lab-name { font-size: 2.4rem; }
    .info-card { flex-direction: column; text-align: center; }
    .info-card .card-image { flex: none; }
    .profile-section { flex-direction: column; text-align: center; }
    .profile-section .profile-image { flex: none; }
    .profile-section .section-title { text-align: center !important; }
    .books-grid { grid-template-columns: 1fr; }
    .grants-grid { grid-template-columns: 1fr; }
    .nav-toggle { display: block; }

    .archive-list li { flex-direction: column; gap: 4px; }
}

/* ========== Thesis Detail ========== */
.thesis-info-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 32px;
}
.thesis-info-table th,
.thesis-info-table td {
  text-align: left;
  vertical-align: top;
  padding: 6px 12px 6px 0;
  font-size: 0.95rem;
  line-height: 1.7;
}
.thesis-info-table th {
  white-space: nowrap;
  color: var(--color-text-light);
  min-width: 80px;
  font-weight: 500;
}
.thesis-info-table td {
  color: var(--color-text);
}

/* APA Citation Block */
.apa-citation-block {
  margin-top: 32px;
  padding: 20px 24px;
  background: var(--color-bg-gray);
  border-left: 4px solid var(--color-green);
  border-radius: 0 8px 8px 0;
}
.apa-citation-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.apa-citation-label {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--color-green);
  letter-spacing: 0.08em;
}
.apa-copy-btn {
  background: var(--color-green);
  color: #fff;
  border: none;
  border-radius: 20px;
  padding: 4px 16px;
  font-size: 0.8rem;
  cursor: pointer;
  font-family: var(--font-jp);
  transition: background 0.2s;
}
.apa-copy-btn:hover {
  background: var(--color-green-dark);
}
.apa-citation-text {
  font-size: 0.92rem;
  line-height: 1.9;
  color: var(--color-text);
  margin: 0;
  word-break: break-all;
}
