body {
    margin: 0;
    font-family: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    line-height: 1.7;
    color: #333;
    background: #f7f9fb;
}

.container {
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
}

.hero {
    background: linear-gradient(135deg, #1f4e79, #282d30);
    color: white;
    text-align: center;
    padding: 60px 0 50px;
}
.section-gap-top {
    margin-top: 80px;
}
.hero h1 {
    margin: 0 0 12px 0;
    font-size: 2.2em;
    line-height: 1.35;
}

.hero-en {
    margin: 0;
    font-size: 1.05em;
    opacity: 0.95;
}

nav {
    background: #163a5c;
}

.nav-inner {
    display: flex;
    justify-content: center;
    gap: 18px;
    flex-wrap: wrap;
    padding: 12px 0;
}

nav a {
    color: white;
    text-decoration: none;
    font-weight: bold;
    padding: 8px 12px;
    border-radius: 6px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1.25;
    min-width: 90px;
    text-align: center;
}

.nav-ja {
    font-size: 0.95em;
}

.nav-en {
    font-size: 0.78em;
    font-weight: normal;
    opacity: 0.9;
}

nav a:hover,
nav a.active {
    background: rgba(255, 255, 255, 0.16);
}

main {
    padding: 30px 0;
}

section {
    background: white;
    margin-bottom: 24px;
    padding: 24px;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

section h2 {
    margin-top: 0;
    color: #1f4e79;
    border-bottom: 2px solid #d9e4ef;
    padding-bottom: 8px;
}

h3 {
    margin-top: 24px;
    margin-bottom: 12px;
    color: #1f4e79;
    font-size: 1.15em;
}

ul,
ol {
    padding-left: 22px;
}

/* Profile */
.cv-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.cv-list li {
    margin-bottom: 14px;
}

.cv-year {
    display: inline-block;
    min-width: 210px;
    font-weight: bold;
    color: #1f4e79;
    vertical-align: top;
}

.cv-en {
    display: inline-block;
    margin-left: 0;
    color: #555;
    font-size: 0.95em;
}

.name-block {
    margin-bottom: 24px;
}

.profile-roman {
    margin: 0 0 6px 0;
    color: #555;
    font-size: 1em;
    letter-spacing: 0.03em;
}

.profile-name {
    margin: 0 0 6px 0;
    color: #1f4e79;
}

.profile-name ruby {
    ruby-align: center;
}

.profile-name rt {
    font-size: 0.45em;
    color: #555;
}

.profile-ja-title {
    margin: 0;
    color: #555;
    font-size: 0.95em;
}

/* Publications */
.pub-list {
    padding-left: 1.4em;
}

.pub-list li {
    margin-bottom: 18px;
    line-height: 1.7;
}

/* Contact */
.contact-table {
    width: 100%;
    border-collapse: collapse;
}

.contact-table th,
.contact-table td {
    vertical-align: top;
    padding: 8px 0;
    line-height: 1.8;
    text-align: left;
}

.contact-table th {
    width: 180px;
    font-weight: bold;
    color: #1f4e79;
    padding-right: 20px;
    white-space: nowrap;
}

.contact-table td {
    color: #333;
}

.en-line {
    color: #555;
    font-size: 0.95em;
}

.indent-ja,
.indent-en {
    display: inline-block;
    padding-left: 0;
}

/* Home / News links */
.section-link {
    color: #1f4e79;
    text-decoration: none;
}

.section-link:hover {
    text-decoration: underline;
}

.home-news-list a,
.more-link a {
    color: #333;
    text-decoration: none;
}

.home-news-list a:hover,
.more-link a:hover {
    text-decoration: underline;
}

/* News */
.news-list li {
    margin-bottom: 10px;
}

.news-item {
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid #d9e4ef;
}

.news-date {
    font-weight: bold;
    color: #1f4e79;
    margin-bottom: 10px;
}

.news-ja {
    margin: 0 0 8px 0;
}

.news-en {
    margin: 0 0 14px 0;
    color: #555;
    font-size: 0.95em;
}

.news-image {
    display: block;
    margin: 14px auto 0;
    width: 70%;
    max-width: 700px;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Research */
.research-block {
    margin-bottom: 28px;
}

.research-image {
    display: block;
    margin: 14px auto 0;
    width: 70%;
    max-width: 700px;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Footer */
footer {
    text-align: center;
    padding: 20px 0 30px;
    color: #666;
    font-size: 0.9em;
}
.inline-link {
    color: #1f4e79;
    text-decoration: none;
}

.inline-link:hover {
    text-decoration: underline;
}
/* Animation */
.fade-in {
    animation: fadeInUp 1s ease forwards;
}

.fade-in-delay {
    opacity: 0;
    animation: fadeInUp 1s ease forwards;
    animation-delay: 0.35s;
}
.student-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 8px;
}

.student-table th,
.student-table td {
    vertical-align: top;
    text-align: left;
    padding: 8px 0;
    line-height: 1.8;
}

.student-table th {
    width: 130px;
    color: #1f4e79;
    font-weight: bold;
    padding-right: 20px;
    white-space: nowrap;
}

.student-table td div {
    margin-bottom: 2px;
}

@media (max-width: 768px) {
    .student-table,
    .student-table tbody,
    .student-table tr,
    .student-table th,
    .student-table td {
        display: block;
        width: 100%;
    }

    .student-table th {
        padding-bottom: 0;
        padding-right: 0;
    }
}
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive */
@media (max-width: 768px) {
    .hero h1 {
        font-size: 1.6em;
    }

    .hero-en {
        font-size: 0.95em;
    }

    .contact-table,
    .contact-table tbody,
    .contact-table tr,
    .contact-table th,
    .contact-table td {
        display: block;
        width: 100%;
    }

    .contact-table th {
        padding-bottom: 0;
        padding-right: 0;
    }

    .cv-year {
        min-width: 100%;
        margin-bottom: 4px;
    }

    .news-image,
    .research-image {
        width: 100%;
        max-width: 100%;
    }
}