/* NEWS追加リスト（ADMISSIONS風） */
/* NEWS/論文セクション共通ヘッダー */
.news-additional-list {
  margin-top: 1.5em;
  background: #fff;
  border-radius: 0;
  box-shadow: none;
  padding: 0 2.5em 0 2.5em;
}
.news-additional-row {
  display: flex;
  align-items: flex-start;
    border-bottom: 1.5px solid var(--brand-accent-1);
  padding: 0.7em 0 0.7em 0;
  font-size: 1rem;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  letter-spacing: 0.01em;
  background: #fff;
}
.news-additional-row:last-child {
  border-bottom: none;
}
.news-additional-date {
  min-width: 7.5em;
  color: #888;
  font-weight: 500;
  font-size: 1em;
  letter-spacing: 0.02em;
  margin-right: 2em;
  text-align: left;
  line-height: 1.2;
  font-family: 'Noto Sans JP', sans-serif;
}
.news-additional-title {
  font-weight: 600;
  color: #222;
  flex: 1;
  line-height: 1.4;
  font-size: 1.08em;
  font-family: 'Noto Sans JP', sans-serif;
}
.news-additional-title a {
    color: inherit;
    text-decoration: none;
}
.news-additional-title a.news-inline-link {
    color: var(--brand-main); /* 初期状態からブランド色 */
    font-weight: 700;
}
.news-inline-link {
    color: var(--brand-main); /* ブランド色 */
    font-weight: 700;
    text-decoration: none;
}
.news-inline-link:hover { text-decoration: underline; }
.news-additional-row:hover .news-additional-title a {
    color: var(--brand-main);
    font-weight: 700;
}
@media (max-width: 600px) {
  .news-additional-list {
    padding: 0 0.5em;
  }
  .news-additional-row {
    flex-direction: column;
    align-items: flex-start;
    font-size: 1.05em;
    padding: 0.7em 0.2em;
  }
  .news-additional-date {
    margin-bottom: 0.2em;
    margin-right: 0;
  }
}
/* NEWS/論文セクション共通ヘッダー */
.news-header {
  display: flex;
  align-items: center;
  gap: 2em;
  margin-bottom: 0.5em;
}
.news-title-main {
  font-size: 2.2rem;
  font-weight: 900;
    color: var(--brand-main);
  margin-bottom: 0;
}
.news-desc-small {
  font-size: 1.3rem;
  color: #555;
  margin-top: 0.2em;
  margin-bottom: 0;
}
.all-news-btn {
  margin-left: auto;
  font-size: 1.5rem;
  font-weight: 700;
    color: var(--brand-main);
  background: #fff;
    border: 3px solid var(--brand-main);
  border-radius: 6px;
  padding: 0.25em 1.5em;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
  display: inline-block;
  box-sizing: border-box;
}
.all-news-btn:hover {
    background: var(--brand-main);
  color: #fff;
}
/* 論文セクション（不要な壊れたブロックを整理済み） */
/* .all-news-btn-simple is deprecated; use .all-news-btn instead */
.pub-btn {
    display: inline-block;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--brand-main);
    background: #fff;
    border: 3px solid var(--brand-main);
    border-radius: 6px;
    padding: 0.25em 1.5em;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
    box-sizing: border-box;
}
.pub-btn:hover { background: var(--brand-main); color: #fff; }
.contact-detail-list {
    display: flex;
    flex-direction: column;
    gap: 1.2em;
    margin: 0.5em 0 2em 0;
    font-size: 1.25em; /* ベース文字サイズ */
    color: #222;
    text-align: left;
}
.contact-detail-item {
    display: flex;
    align-items: center;
    gap: 1em;
}
.contact-detail-icon {
    font-size: 1.8em; /* アイコン大きさ */
    color: #333;
    min-width: 2em;
    text-align: center;
}
.contact-detail-note {
    font-size: 0.95em;
    color: #888;
    margin-left: 0.5em;
}
.contact-map {
    width: 480px;
    max-width: 100%;
    margin-top: 1em;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 8px;
    overflow: hidden;
}
.contact-links {
    margin-top: 1.5em;
    margin-bottom: 1em;
}
.contact-list {
    display: flex;
    gap: 2em;
    list-style: none;
    padding: 0;
    margin: 0;
}
.contact-link {
    display: flex;
    align-items: center;
    font-size: 1em;
    color: #222;
    text-decoration: none;
    font-weight: 500;
}
.contact-icon {
    font-size: 1.3em;
    margin-right: 0.5em;
    vertical-align: middle;
}
.news-desc-small {
    font-size: 0.95em;
    color: #333;
    margin-left: 0.5em;
    font-weight: normal;
    letter-spacing: 0.01em;
    vertical-align: middle;
    opacity: 0.85;
}
/* PROFILEタイトル・説明文 */
.profile-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 1.5em;
}
/* PROFILEセクション用スタイル */
.profile-flex {
    display: flex;
    gap: 2.5em;
    margin-top: 1.5em;
}
.profile-left {
    flex: 0 0 260px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
}
.profile-img {
    width: 220px;
    height: 220px;
    object-fit: cover;
    border-radius: 8px;
    background: #eee;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.profile-name {
    font-size: 1.6em;
    font-weight: bold;
    margin-top: 0.5em;
}
.profile-title {
    font-size: 1.1em;
    color: #555;
}
.page-header.header--fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
}
.profile-affiliation {
    font-size: 1em;
    padding-top: 0; /* 余計な上方向のスペースを削除して位置を上げる */
    margin-bottom: 0.5em;
}
.profile-affiliation a {
    color: var(--brand-main);
    text-decoration: none;
}
.profile-affiliation a:hover { text-decoration: underline; }

/* PROFILE内の説明文や学歴・興味リスト内のリンクもブランド色に統一 */
.profile-desc a,
.profile-edu a,
.profile-interests a {
    color: var(--brand-main);
    text-decoration: none;
}
.profile-desc a:hover,
.profile-edu a:hover,
.profile-interests a:hover { text-decoration: underline; }
.profile-social {
    display: flex;
    gap: 0.7em;
    margin-top: 0.2em; /* アイコン群を少し上に詰める */
}
.profile-icon {
    display: inline-block;
    transition: transform 0.2s;
}
.profile-icon .ai { /* Academicons (Google Scholar など) の見た目調整 */
    font-size: 28px; /* 他のSVGアイコン(28px)と揃える */
    line-height: 1;
    color: var(--brand-main);
    vertical-align: middle;
}
.profile-icon:hover {
    transform: scale(1.15);
}
.profile-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1.5em;
}
.profile-desc {
    font-size: 1.1em;
    color: #222;
    line-height: 1.8;
    margin-bottom: 0.5em;
}
.profile-interests-edu {
    display: flex;
    gap: 2em;
}
.profile-interests, .profile-edu {
    flex: 1;
}
/* 左カラム（興味・関心）を固定幅にして中央の空白を圧縮 */
.profile-interests {
    flex: 0 0 280px; /* 必要なら 240-320px 程度で微調整可 */
}
.profile-edu {
    flex: 1 1 auto;
}
@media (max-width: 900px) {
    .profile-interests-edu { flex-direction: column; }
    .profile-interests, .profile-edu { flex: 1 1 auto; }
}
.profile-subtitle {
    font-size: 1.2em;
    font-weight: bold;
    margin-bottom: 0.7em;
    color: #222;
}
.profile-interests ul, .profile-edu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.profile-interests li {
    font-size: 1em;
    margin-bottom: 0.6em;
    padding-left: 1.5em;
    position: relative;
}
.profile-interests li:before {
    content: "\1F4D6";
    position: absolute;
    left: 0;
    font-size: 1.1em;
}
.profile-edu li {
    font-size: 1em;
    margin-bottom: 0.6em;
    padding-left: 1.5em;
    position: relative;
}
.profile-edu li:before {
    content: "\1F393";
    position: absolute;
    left: 0;
    font-size: 1.1em;
}
.profile-edu-school {
    color: #555;
    font-size: 0.95em;
}
/* NEWSタイトル・説明文・ALL NEWSボタン */
.news-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5em;
}
.news-title-main {
    font-size: 1.5em;
    font-weight: 900;
    letter-spacing: 0.02em;
    margin: 0;
}
.news-desc {
    font-size: 1em;
    color: #222;
    margin-left: 1.5em;
    flex: 1;
}
.all-news-btn {
    border: 2px solid var(--brand-main);
    color: var(--brand-main);
    font-weight: 700;
    font-size: 1em;
    background: #fff;
    padding: 0.5em 2em;
    border-radius: 2px;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
    margin-left: 2em;
    letter-spacing: 0.05em;
}
.all-news-btn:hover {
    background: var(--brand-main);
    color: #fff;
}
/* NEWSセクション用スタイル */
.news-list {
    display: flex;
    flex-wrap: wrap;
    gap: 2em;
}
.news-box {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    width: 100%;
    max-width: 480px;
    transition: box-shadow 0.2s;
}
.news-box:hover {
    box-shadow: 0 4px 16px rgba(36,86,155,0.15);
}
.news-thumb {
    width: 100%;
    height: 240px;
    object-fit: cover;
    background: #eee;
}
.news-content {
    padding: 1.2em;
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}

/* Pager: square number boxes */
.pager {
    display: flex;
    gap: 8px;
    margin-top: 16px;
}
.pager .page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 4px;
    background: #eee;
    color: #222;
    text-decoration: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
}
.pager .page-link:hover {
    filter: brightness(0.96);
}
.pager .page-link.active,
.pager .page-link[aria-current="page"] {
    background: var(--brand-main);
    color: #fff;
}
.pager .page-link[aria-disabled="true"] {
    opacity: 0.5;
    pointer-events: none;
}

.news-category {
    font-size: 0.95em;
    color: var(--brand-main);
    font-weight: bold;
}
.news-title {
    font-size: 1.15em;
    font-weight: 700;
    margin-bottom: 0.5em;
}
.news-meta {
    display: flex;
    align-items: center;
    gap: 1em;
    display: flex;
    align-items: center;
    gap: 1.3em;
    line-height: 1.2;
}
.news-new {
    background: var(--brand-main);
    color: #fff;
    font-size: 0.8em;
    font-weight: bold;
    border-radius: 4px;
    padding: 0.2em 0.7em;
    margin-left: 0.5em;
}
body {
    font-family: 'Noto Sans JP', sans-serif;
    background: #fff; /* 全面白背景に統一 */
    margin: 0;
}

/* レイアウト共通変数 */
:root {
    --page-gutter: clamp(16px, 4vw, 48px);
    --band-gray: #f5f5f5;
    --band-white: #ffffff;
    --content-max: 1100px; /* セクション内の本文最大幅 */
    --band-vpad: 1.2em;   /* 各バンドの上下余白（やや詰める） */
    --article-image-max: 720px; /* 研究詳細ページの画像の最大幅（必要に応じて調整） */
    /* Brand colors: primary and light accents (replacing maroon theme) */
    --brand-main: #24569B;       /* primary */
    --brand-accent-1: #9BB7E2;   /* medium-light border */
    --brand-accent-2: #C7D7EE;   /* lighter border */
    --brand-accent-3: #DEE8F7;   /* lightest border */
}
/* Footer */
.site-footer {
    width: 100%;
    text-align: center;
    color: #666;
    font-size: 0.95rem;
    padding: 2em 1em 3em 1em; /* 下に少し余白を多めに */
}
.site-footer a { color: var(--brand-main); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.header-bar {
    background: #fff;
    border-bottom: 2px solid var(--brand-main);
    padding: 0.9em 0; /* 厚みを少し増やす */
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed; /* Ensure header is fixed */
    top: 0; /* Position at the top */
    left: 0; /* Align to the left */
    width: 100%; /* Avoid 100vw which can cause horizontal overflow */
    z-index: 1000; /* High z-index */
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
body {
    font-family: 'Noto Sans JP', sans-serif;
    background: #fff; /* 全面白背景に統一 */
    margin: 0;
    padding-top: 84px; /* 固定ヘッダー分（厚みを増やしたので調整） */
    overflow-x: hidden; /* Prevent accidental horizontal scroll */
}

/* 固定ヘッダーでアンカー位置が隠れないように補正 */
#profile,
#news,
#news-additional,
#papers,
#contact {
    scroll-margin-top: 96px; /* ヘッダー高さ + 余白分を確保 */
}
.header-logo {
    margin-left: 2em;
    font-size: 1.5em;
    font-weight: bold;
    color: var(--brand-main);
}
.header-logo a { color: inherit; text-decoration: none; }
.header-left { display: flex; align-items: center; gap: 2em; }
.header-right { display: flex; align-items: center; gap: 1em; margin-right: 2em; }
.header-menu { margin: 0; }
.header-left .header-menu { margin-right: 0; }
.header-menu a {
    color: #333;
    text-decoration: none;
    margin-left: 1.5em;
    font-weight: 500;
}
/* Hamburger button (hidden by default) */
.header-burger {
    display: none;
    background: transparent;
    border: none;
    font-size: 1.6rem;
    line-height: 1;
    padding: 0.2em 0.4em;
    cursor: pointer;
    color: var(--brand-main);
}
/* Mobile drawer base (hidden by default) */
.mobile-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 1500;
}
.mobile-nav {
    position: fixed;
    top: 0; left: 0;
    width: 78vw; max-width: 320px; height: 100vh;
    background: var(--brand-main);
    color: #fff;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    z-index: 1600;
    box-shadow: 2px 0 10px rgba(0,0,0,0.15);
}
.mobile-nav .mobile-nav-inner { display: flex; flex-direction: column; gap: 1.2em; padding: 1.2em; }
.mobile-nav a { color: #fff; text-decoration: none; font-size: 1.1rem; font-weight: 800; }
.mobile-nav a:hover { text-decoration: underline; }
.mobile-nav.open { transform: translateX(0); }

/* Switch to hamburger on small screens */
@media (max-width: 900px) {
    .header-burger { display: inline-block; }
    .header-menu { display: none; }
    .mobile-backdrop[hidden] { display: none !important; }
    .mobile-nav[hidden] { display: block; } /* 占位のためblock。openで可視化 */
}
/* Language switch */
.lang-switch { display: flex; gap: 0.5em; }
.lang-btn {
    border: 2px solid var(--brand-main);
    color: var(--brand-main);
    background: #fff;
    border-radius: 999px;
    padding: 0.2em 0.8em;
    font-weight: 700;
    text-decoration: none;
    font-size: 0.95rem;
}
.lang-btn:hover { background: var(--brand-main); color: #fff; }
.lang-btn.active { background: var(--brand-main); color: #fff; }
.container {
    max-width: none;   /* 最大幅の制限を撤廃 */
    width: 100%;
    margin: 0 0 2em 0; /* コンテナ上の余白は持たせず、各セクションのvpadに委ねる */
    background: transparent; /* カード背景を廃止 */
    border-radius: 0;  /* 角丸を廃止 */
    box-shadow: none;  /* 影を廃止 */
    /* 画面幅いっぱいだと読みづらいので左右に安全パディングを付与 */
    padding: 0 var(--page-gutter); /* 垂直方向の余白は各セクションで制御 */
}

/* セクションをフルブリード風に（左右のガターを維持しつつ背景を端まで） */
.container > .section {
    margin-left: calc(-1 * var(--page-gutter));
    margin-right: calc(-1 * var(--page-gutter));
    padding-left: var(--page-gutter);
    padding-right: var(--page-gutter);
    padding-top: var(--band-vpad);
    padding-bottom: var(--band-vpad);
}

/* 各セクション内のコンテンツ幅を中央寄せで制限 */
.container > .section > * {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
}

/* セクション最初/最後の要素の外側マージンを抑えて均一化 */
.container > .section > *:first-child { margin-top: 0; }
.container > .section > *:last-child { margin-bottom: 0; }

/* 交互背景：1,3,5...（PROFILE, NEWSなど）を薄いグレー、2,4,6...を白 */
.container > .section:nth-of-type(odd) { background: var(--band-white); }
.container > .section:nth-of-type(even) { background: var(--band-gray); }

/* =====================
     Publications Styles
     ===================== */
.pub-list {
    margin-top: 0.5em;
    /* NEWS追加リストと同じ左マージンに揃える（7.5em + 2em ≒ 9.5em） */
    padding: 0 2.5em 0 2.5em;
}
    /* セクション上余白（RESEARCH/NEWS/CONTACT/PUBLICATIONS）- 各バンドのvpadに任せる */
    #news,
    #news-additional,
    #contact,
    #contact-additional,
    #papers { margin-top: 0; }
.pub-list-item {
    background: none;
    border: none;
    box-shadow: none;
    padding: 1.2em 0 1.2em 0;
    margin: 0;
    line-height: 1.9;
    border-bottom: 1.5px solid var(--brand-accent-1); /* NEWSの仕切り色に合わせる */
}
.pub-list-item:last-child { border-bottom: none; }
.pub-authors { font-size: 1.05rem; color: #333; }
.pub-authors strong { font-weight: 700; }
.pub-title a {
    color: #2b5cc3;
    font-weight: 700;
    text-decoration: none;
}
.pub-title a:hover { text-decoration: underline; }
.pub-venue { font-style: italic; color: #555; margin-top: 0.1em; }
.pub-btn-group { display: flex; gap: 0.5em; margin-top: 0.6em; }
.pub-chip {
    border: 2px solid var(--brand-main);
    color: var(--brand-main);
    background: #fff;
    border-radius: 8px;
    padding: 0.2em 0.8em;
    font-weight: 700;
    font-size: 0.92rem;
    text-decoration: none;
    line-height: 1.6;
}
.pub-chip:hover { background: var(--brand-main); color: #fff; }
@media (max-width: 600px) {
    .pub-list { padding: 0 0.5em; }
    .pub-list-item { line-height: 1.8; }
    .pub-chip { font-size: 0.88rem; }
}

/* =====================
     ALL RESEARCHES styles
     ===================== */
.research-list {
    display: flex;
    flex-direction: column;
    gap: 2.2em;
    margin-top: 1.5em;
}
.research-item {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 2em;
    align-items: start;
    text-decoration: none;
    color: inherit;
    padding: 1.2em 0;
    border-top: 2px solid var(--brand-accent-2); /* brand light border */
}
.research-item:first-child {
    border-top: none;
}
.research-thumb {
    width: 100%;
    height: 180px;
    object-fit: cover;
    background: #f2f2f2;
    border-radius: 6px;
}
.research-body {
    display: flex;
    flex-direction: column;
    gap: 0.6em;
}
.research-badges {
    display: flex;
    gap: 0.5em;
    align-items: center;
}
.badge {
    display: inline-block;
    padding: 0.15em 0.7em;
    border: 2px solid var(--brand-accent-1);
    color: var(--brand-main);
    background: #fff;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 700;
}
.badge-new {
    background: var(--brand-main);
    border-color: var(--brand-main);
    color: #fff;
}
.badge-theme {
    color: var(--brand-main);
    border-color: var(--brand-accent-2);
}
.research-title {
    font-size: 1.25rem;
    font-weight: 800;
    color: #222;
    margin: 0.2em 0 0.1em 0;
    line-height: 1.6;
}
.research-excerpt {
    color: #555;
    margin: 0.2em 0 0.2em 0;
    line-height: 1.7;
}
.research-meta {
    display: flex;
    gap: 1em;
    align-items: center;
    color: #666;
    font-size: 0.95rem;
}
.research-date { color: #777; }
.research-aff { font-weight: 600; color: #444; }
.research-author { color: #444; }

@media (max-width: 900px) {
    .research-item { grid-template-columns: 1fr; }
    .research-thumb { height: 200px; }
}

/* =====================
   Article (Research detail)
   ===================== */
.article-header {
    display: flex;
    flex-direction: column;
    gap: 0.6em;
    margin-top: 1em;
    margin-bottom: 1.2em;
}
.article-badges { display: flex; gap: 0.5em; align-items: center; }
.article-title {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 900;
    color: #222;
    margin: 0.2em 0 0.1em 0;
    line-height: 1.5;
}
.article-subtitle {
    color: var(--brand-main);
    font-weight: 600;
    margin: 0.1em 0 0.2em 0;
}
.article-meta { display: grid; grid-template-columns: 1fr; gap: 0.2em; color: #444; }
.article-meta-line { font-size: 0.98rem; }
.article-date { color: #777; }

.article-section { margin-top: 1.8em; }
.article-section-title {
    font-size: 1.2rem;
    font-weight: 800;
    color: #222;
    margin: 0 0 0.6em 0;
    padding-bottom: 0.4em;
    border-bottom: 2px solid var(--brand-accent-3);
}
.article-points {
    margin: 0.4em 0 0 0;
    padding-left: 1.2em;
    line-height: 1.9;
}
.article-points li { margin: 0.2em 0; }

.paper-info { display: grid; gap: 0.4em; margin-top: 0.6em; }
.paper-row { display: grid; grid-template-columns: 6em 1fr; gap: 0.6em; align-items: start; }
.paper-label { color: #555; font-weight: 700; }
.paper-value { color: #222; }
.doi-link { color: var(--brand-main); text-decoration: underline; }
.doi-link:hover { color: var(--brand-main); }

/* Abstract paragraph */
.article-abstract {
    line-height: 1.9;
    margin: 0.4em 0 0 0;
}

/* Research detail: figure image above abstract */
.article-figure {
    margin: 1.2em auto 0.8em auto; /* 左右は中央寄せ */
    display: flex;
    justify-content: center; /* 子要素（画像）を中央に */
}
.article-figure img {
    width: 100%;
    max-width: var(--article-image-max);
    height: auto;
    display: block;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
