/* =========================================================
   common.css   –  吉田研究室サイト共通スタイル
   配色基調 : #003366（サイト共通メインカラー）
   ========================================================= */
:root{
  --lab-main:#003366;
  --lab-link:#007acc;
}

/* ---------------------------------------------------------
   0. リセット & 基本
--------------------------------------------------------- */
*{box-sizing:border-box;}
body{
  margin:0;
  padding:0;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  color:#333;
  line-height:1.6;
  background:#fff;
  text-align:center;
}

/* ---------------------------------------------------------
   1. ヘッダー
--------------------------------------------------------- */
header{
  background:#fff;
  border-bottom:1px solid #ccc;
}
.header-container{
  max-width:1200px;
  margin:auto;
  padding:20px 0;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
}
.logo-text{
  font-size:20px;
  font-weight:bold;
  white-space:nowrap;
  margin-right:20px;
}
.nav-menu{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:35px;
}
.nav-item a{
  display:flex;
  align-items:center;
  gap:5px;
  text-decoration:none;
  color:#333;
  font-size:14px;
  transition:color .3s;
}
.nav-item a:hover{color:var(--lab-link);}
.icon{font-size:16px;}
.nav-item.dropdown{position:relative;}
.dropdown-menu{
  display:none;
  position:absolute;
  top:100%;left:0;
  min-width:160px;
  list-style:none;
  margin:0;padding:0;
  border:1px solid #ccc;
  background:#fff;
  z-index:1000;
  text-align:left;
}
.dropdown-menu li a{
  display:block;
  padding:10px;
  color:#333;
  text-decoration:none;
  white-space:nowrap;
}
.nav-item.dropdown:hover .dropdown-menu{display:block;}
.dropdown-menu li a:hover{background:#f0f0f0;}

/* ---------------------------------------------------------
   2. 汎用レイアウト/タイポ
--------------------------------------------------------- */
main{max-width:1000px;margin:20px auto;padding:0 20px;}
h2,h3{
  margin-top:30px;
  padding-bottom:5px;
  border-bottom:2px solid #ccc;
  text-align:center;
}
h2{font-size:24px;}
h3{font-size:20px;}
.major{
  margin:2.5rem 0 1.5rem;
  padding:.4rem .8rem;
  border-left:6px solid var(--lab-main);
  background:#f2f6fa;
  font-size:1.55rem;
  font-weight:700;
}
.minor{
  margin:1.8rem 0 .8rem;
  padding-left:.4rem;
  border-left:4px solid #7aa0c8;
  font-size:1.25rem;
  font-weight:600;
}
.content p{line-height:1.8;margin:.4rem 0;}
.flex-block{display:flex;gap:1.5rem;flex-wrap:wrap;}
.flex-block img{max-width:300px;border:1px solid #ccc;border-radius:6px}

/* ---------------------------------------------------------
   3. 画像/メディア共通
--------------------------------------------------------- */
.img-responsive{max-width:100%;height:auto;}
.img-centered,
.img-large,
.img-medium,
.img-small,
.img-logo{
  display:block;
  margin-left:auto;
  margin-right:auto;
}
.img-large  {width:100%;max-width:800px;}
.img-medium {width:75%; max-width:800px;}
.img-small  {width:50%; max-width:800px;}
.img-logo   {height:60px;width:auto;}
.img-bordered{border:1px solid #ccc;padding:4px;}
.img-rounded{border-radius:10px;}
.image-block,
.image-center{display:flex;justify-content:center;margin:20px 0;}
.photo-grid{display:flex;flex-wrap:wrap;gap:20px;margin-top:10px;justify-content:center;}
.photo-grid img{width:100%;max-width:200px;}
.video-container{
  position:relative;
  width:100%;
  max-width:1200px;
  padding-top:56.25%;
  margin:20px auto;
}
.video-container iframe{
  position:absolute;top:0;left:0;width:100%;height:100%;
}

/* ---------------------------------------------------------
   4. ホーム・ニュース
--------------------------------------------------------- */
.news-table{width:100%;border-collapse:collapse;}
.news-table td{
  padding:8px 10px;
  vertical-align:top;
  border-bottom:1px solid #ccc;
}
.news-date{width:120px;font-weight:bold;white-space:nowrap;}

/* ---------------------------------------------------------
   5. 研究紹介（論文リスト等）
--------------------------------------------------------- */
.paper li{text-align:left;}

/* ---------------------------------------------------------
   6. メンバー
--------------------------------------------------------- */
.section-title{
  margin-top:30px;
  padding:5px 0;
  border-bottom:4px solid #6A5ACD;
  font-size:1.3em;
  color:#333;
}
.staff-card{
  display:flex;
  border-bottom:1px dotted #999;
  padding:10px 0;
  text-align:left;
  flex-wrap:wrap;
}
.staff-photo{width:150px;height:150px;margin-right:20px;border-radius:4px;}
.staff-info{flex-grow:1;}
.staff-title{font-weight:bold;font-size:1.1em;margin-bottom:3px;}
.staff-email{font-size:.9em;color:#555;}
.student-list{list-style:disc inside;margin-top:10px;text-align:left;}
.student-list li{margin:5px 0;}
.ob{margin:40px auto;width:80%;}
.ob-list{text-align:left;max-width:600px;margin:auto;padding-left:20px;}
#toggle-ob-btn{
  margin-top:1em;padding:.5em 1em;font-size:1em;
  background:#f0f0f0;border:1px solid #ccc;border-radius:5px;cursor:pointer;
}

/* ---------------------------------------------------------
   7. イベント
--------------------------------------------------------- */
.year-selector{text-align:left;margin-bottom:20px;}
.year-selector button{
  margin-right:10px;padding:8px 12px;
  background:var(--lab-main);color:#fff;
  border:none;border-radius:5px;cursor:pointer;
}
.season{margin-bottom:40px;padding:10px;border-radius:10px;}
.spring{background:#ffe6f0;}
.summer{background:#e6ffe6;}
.autumn{background:#ffe6e6;}
.winter{background:#e6f0ff;}
.event-block{
  display:flex;align-items:center;gap:20px;
  margin:10px 0;flex-wrap:wrap;
  text-align:center;
  justify-content:left;
}
.event-block img{width:100%;max-width:200px;border-radius:10px; text-align: left;}
.event-text h3{margin:0;font-size:18px;}
.event-text p{width:550px;max-width:550px;margin:5px auto 0;font-size:14px;word-wrap:break-word;overflow-wrap:break-word;}
.event-text h3 a{text-decoration:none;color:var(--lab-main);}
.event-detail{
  max-width:960px;margin:40px auto;padding:0 20px;
  font-size:16px;text-align:center;
}
.event-detail h2{font-size:28px;color:var(--lab-main);margin-bottom:10px;}
.event-detail p,
.event-detail ul,
.event-detail ol,
.event-detail h3,
.event-detail h4{text-align:center !important;}
.event-photo-gallery{
  display:flex;flex-wrap:wrap;
  gap:16px;justify-content:center;
}
.event-photo{
  max-width:300px;width:100%;
  border-radius:8px;
  box-shadow:0 2px 6px rgba(0,0,0,.2);
}
.back-link{text-align:left;margin-top:40px;}
.back-link a{color:var(--lab-main);text-decoration:none;}
.back-link a:hover{text-decoration:underline;}

/* ---------------------------------------------------------
   8. お問い合わせ（地図など）
--------------------------------------------------------- */
.map-images{display:flex;gap:20px;margin-top:10px;flex-wrap:wrap;justify-content:center;}
.map-images img{width:100%;max-width:400px;}
.contact{text-align:left;}

/* ---------------------------------------------------------
   9. 学部生向けガイド
--------------------------------------------------------- */
.student-voice{
  margin:10px 0;padding:10px 15px;
  background:#f7f9ff;border-left:4px solid var(--lab-main);
  font-style:italic;
}
.room-block{
  display:flex;gap:20px;margin:10px 0;text-align:left;
  flex-wrap:wrap;
  justify-content:center;
}
.room-block img{width:100%;max-width:400px;margin-left:20px;}
.room-block p{text-align:center;}

/* ---------------------------------------------------------
   10. フッター
--------------------------------------------------------- */
footer{
  background:var(--lab-main);color:#fff;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:10px 20px;font-size:14px;text-align:center;
}
.footer-content{
  display:flex;flex-wrap:wrap;align-items:center;gap:15px;justify-content:center;
}
footer img{width:75px;height:auto;}
footer a{color:#aaccff;text-decoration:none;}
footer a:hover{text-decoration:underline;}

/* ---------------------------------------------------------
   11. その他機能（戻るボタンなど）
--------------------------------------------------------- */
.back-to-top{
  position:fixed;bottom:20px;right:20px;
  width:48px;height:48px;line-height:48px;
  border-radius:50%;
  background:var(--lab-link);color:#fff;font-size:20px;text-decoration:none;
  box-shadow:0 2px 5px rgba(0,0,0,.3);
  text-align:center;
  transition:background .3s;
  z-index:1000;
}
.back-to-top:hover{background:#005b99;}

/* ---------------------------------------------------------
   12. レスポンシブデザイン
--------------------------------------------------------- */
@media (max-width: 600px) {
  .header-container, .footer-content {
    flex-direction: column;
    gap: 10px;
  }
  .nav-menu {
    flex-direction: column;
    gap: 10px;
  }
  .event-block {
    flex-direction: column;
    align-items: center;
  }
  .event-text p {
    width: 100%;
  }
  .room-block {
    flex-direction: column;
  }
  .room-block img {
    margin-left: 0;
  }
}

/* ---------------------------------------------------------
   12. ハンバーガーメニュー（スマホ用）
--------------------------------------------------------- */
.hamburger {
  display: none;
  font-size: 26px;
  cursor: pointer;
  padding: 10px;
}

/* スマホサイズ以下 */
@media screen and (max-width: 768px) {
  .nav-menu {
    display: none;
    flex-direction: column;
    width: 100%;
    background: #fff;
    border-top: 1px solid #ccc;
    padding: 10px 0;
  }

  .nav-menu.show {
    display: flex;
  }

  .hamburger {
    display: block;
  }

  .nav-item {
    padding: 10px;
    text-align: center;
  }
}
