/* シンプルで読みやすいアカデミックなデザイン */
:root {
    --primary-color: #2c3e50; /* 濃い紺色（知的な印象） */
    --accent-color: #3498db;  /* リンク色 */
    --bg-color: #fcfcfc;
    --text-color: #333;
}

body {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    line-height: 1.6;
    color: var(--text-color);
    background-color: var(--bg-color);
    margin: 0;
    padding: 0;
}

/* レイアウト */
.container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px 40px 60px;
    position: relative; /* 言語ボタンの配置に必要 */
}

/* --- 言語切り替えボタン --- */
.lang-switch {
    position: absolute;
    top: 20px;
    right: 40px;
    font-weight: bold;
    font-size: 0.9rem;
}
.lang-switch a {
    color: #999;
    text-decoration: none;
    margin-left: 5px;
}
.lang-switch a.active {
    color: var(--primary-color);
    border-bottom: 2px solid var(--primary-color);
}
.lang-switch a:hover { color: var(--accent-color); }

/* ヘッダー（名前と所属） */
header {
    text-align: center;
    padding: 50px 0 40px;
    border-bottom: 1px solid #eee;
    margin-bottom: 40px;
}

/* 【追加】顔写真のスタイル */
.profile-image {
    width: 150px;       /* 写真の幅 */
    height: 150px;      /* 写真の高さ */
    border-radius: 50%; /* これで丸くなります */
    object-fit: cover;  /* 写真が歪まないようにトリミング */
    border: 3px solid #fff; /* 白いフチをつける */
    box-shadow: 0 4px 6px rgba(0,0,0,0.1); /* 軽い影をつける */
    margin-bottom: 20px; /* 名前との間隔 */
}

h1 {
    font-size: 2.5rem;
    margin: 0 0 10px 0;
    color: var(--primary-color);
}

.affiliation {
    font-size: 1.1rem;
    color: #666;
    margin-top: 0;
}

/* 各セクション */
section { margin-bottom: 50px; }

/* 大見出し (About Me, News, CV, Publications) */
h2 {
    font-size: 1.5rem;
    color: var(--primary-color);
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
    margin-bottom: 20px;
}

/* 中見出し (Refereed, Non-Refereedなど) */
h3 {
    font-size: 1.2rem;
    color: #444;
    margin-top: 30px;
    margin-bottom: 15px;
    border-left: 4px solid var(--accent-color); /* 左に青い線を入れて区別しやすく */
    padding-left: 10px;
}

h4 { margin-bottom: 10px; color: #555; }

/* リストスタイル */
ul {
    list-style-type: none; /* 点を消す */
    padding-left: 0;
}

li {
    position: relative; /* 日付を絶対配置するための基準点 */
    margin-bottom: 20px;
}

/* --- 【重要】 .date を持っている li だけに適用する設定 --- */
/* ブラウザの機能 (:has) を使い、「中に.dateがあるli」だけを探します */
li:has(.date) {
    padding-left: 175px; /* 日付が入るスペース(155px) + 余白(15px) を左に空ける */
}

.date {
    position: absolute; /* 左に空けたスペースに強制的に配置 */
    left: 0;
    top: 0;
    width: 160px;       /* 日付の幅 */
    font-weight: bold;
    color: #777;
}

.description {
    display: block;
    margin-top: 5px;
    font-size: 0.95rem;
    color: #555;
    max-width: 800px;
}

/* リンク */
a {
    color: var(--accent-color);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* ソーシャルリンクボタン */
.social-links {
    margin-top: 25px;
}

.social-links a {
    margin: 0 10px;
    font-weight: bold;
    display: inline-block;
}

.social-links i {
    margin-right: 5px;
}

/* レスポンシブ対応（スマホ向け） */
@media (max-width: 600px) {
    .container { padding: 15px; }
    /* 日付を通常の配置（元あった場所）に戻す */
    .date {
        position: static; /* absoluteを解除 */
        display: block;
        margin-bottom: 5px;
    }
    .description { margin-left: 0; }
    h1 { font-size: 2rem; }
    .profile-image { width: 120px; height: 120px; }
    /* スマホでは左の空きスペースを無くす */
    li:has(.date) {
        padding-left: 0;
    }
}

/* 文字の改行を禁止するのではなく、「かたまり」として扱うクラス */
.nobreak {
    display: inline-block;
}