/* ===============================
   common.css (cleaned)
   - Base layout shared by all pages
   - Menu styles (JS-driven open/close)
   - Optional components (News box)
   - Page-specific minimal styles (Contact/Team/Snapshots/Research/Join/CV)
   =============================== */

/* ---- Base (match index.html look) ---- */
body{
  background-color:#000;
  margin:0;
  padding:0;
  text-align:center;
  color:#fff;
  font-family:sans-serif;
}

img{
  display:block;
  margin:0 auto;
  max-width:100%;
  height:auto;
}

.description{
  max-width:900px;
  margin:40px auto;
  padding:0 20px;
  line-height:1.9;
  font-size:1.1em;
  text-align:left;
}

.divider{
  border-top:1px solid orange;
  opacity:.5;
  max-width:900px;
  margin:40px auto;
}

.footer{
  font-size:.8em;
  color:#ccc;
  text-align:right;
  padding:20px 40px;
}

/* ---- Headings used on multiple pages ---- */
h2{
  color:orange;
  font-size:1.5em;
  border-bottom:1px solid orange;
  padding-bottom:6px;
  margin:0 0 18px 0;
}

/* ===============================
   Menu (shared)
   =============================== */
.menu-label{
  font-size:.9em;
  opacity:.6;
  margin-left:5px;
  vertical-align:baseline;
}

.menu-container{
  position:absolute;
  top:10px;
  right:20px;
  z-index:100;
  font-size:1.2em;
  color:#fff;
}

.menu-icon{
  cursor:pointer;
  padding:10px;
}

.menu-list{
  display:none;
  position:absolute;
  right:0;
  background-color:rgba(0,0,0,.85);
  border:1px solid #666;
  padding:10px;
  text-align:left;
  font-size:.6em;
  width:150px;
}

.menu-list a{
  display:block;
  color:#fff;
  text-decoration:none;
  padding:5px 10px;
}

.menu-list a:hover{
  color:orange;
  background-color:#555;
}

.menu-list a.lang-link{
  font-weight:bold;
  color:#66ccff;
}

.menu-list a.lang-link:hover{
  color:orange;
}

/* JS-driven open/close (common.js toggles .open) */
.menu-container.open .menu-list{ display:block; }

/* ===============================
   News box (JP top page only; harmless if unused)
   =============================== */
.news-box{
  max-width:900px;
  margin:40px auto;
  padding:0 20px;
  text-align:left;
}

.news-panel{
  border:1px solid #ff9a00;
  border-radius:10px;
  background:rgba(255,165,0,.05);
  box-shadow:0 0 12px rgba(255,165,0,.15) inset;
  padding:12px 14px;
  height:220px;
  overflow-y:auto;
}

.news-panel::-webkit-scrollbar{ width:10px; }
.news-panel::-webkit-scrollbar-thumb{
  background:rgba(255,165,0,.5);
  border-radius:8px;
}

.news-title{
  color:orange;
  margin:0 0 10px 0;
}

.news-list{
  list-style:none;
  padding-left:0;
  margin:0;
  line-height:1.8;
  font-size:.95em;
}

.badge{
  display:inline-block;
  margin-left:6px;
  padding:1px 6px;
  border:1px solid #ff9a00;
  border-radius:6px;
  font-size:.8em;
  color:#ffb84d;
  background:rgba(255,165,0,.08);
}

a.ext::after{
  content:"↗";
  font-size:.85em;
  margin-left:4px;
  opacity:.7;
}

.news-list a.ext{
  color:#fff;
  text-decoration:underline;
}
.news-list a.ext:hover{
  color:orange;
  text-decoration:underline;
}

/* ===============================
   Page-specific minimal styles
   =============================== */

/* Contact */
.section-title{
  color:orange;
  margin:0 0 14px 0;
  font-size:1.25em;
}

.contact-info{
  font-size:1.0em;
  line-height:1.9;
}
.contact-info strong{ color:#ffcc66; }

.map{ margin-top:26px; text-align:center; }
.map img,
.map-img{
  max-width:100%;
  height:auto;
  border:1px solid #444;
  border-radius:8px;
}
.map-caption{
  margin-top:10px;
  font-size:.95em;
  opacity:.85;
}

/* Research / Join */
.topic{ margin:18px 0; }
.indent{ margin:8px 0 0 2em; }

.page-title{
  color:orange;
  margin:0 0 14px 0;
  font-size:1.5em;
  border-bottom:1px solid orange;
  padding-bottom:6px;
}

.cta{ margin-top:28px; }
.cta a{
  color:#66ccff;
  text-decoration:underline;
  font-weight:bold;
}

/* Snapshots */
.snapshot{ margin:28px 0; }
.snapshot-title{
  color:#ffcc66;
  font-weight:bold;
  margin-bottom:10px;
  font-size:1.05em;
}
.snapshot img{
  width:100%;
  max-width:800px;
  height:auto;
  border:1px solid #444;
  display:block;
  margin:0 auto;
}

/* Team */
.group{ margin:25px 0; }
.group-title{
  font-weight:bold;
  font-size:1.1em;
  color:#ffcc66;
  margin-top:15px;
}
.name-list{
  margin-left:20px;
  line-height:1.7;
  font-size:.98em;
}
.name-list a{
  color:#66ccff;
  text-decoration:underline;
}
.name-list a:hover{ color:orange; }

/* CV */
.cv-header{
  display:flex;
  gap:14px;
  align-items:flex-start;
  justify-content:flex-start;
  margin-bottom:22px;
}
.cv-portrait{
  width:150px;
  height:150px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.25);
}
.cv-title h1{
  margin:0;
  font-size:1.6em;
  color:orange;
  text-align:left;
}
.cv-title p{
  margin:6px 0 0 0;
  color:#ddd;
  font-size:.95em;
}
ul{ margin:10px 0 0 0; padding-left:22px; }
li{ margin:6px 0; }

/* ===============================
   Mobile tweaks
   =============================== */
@media (max-width:768px){
  body{ font-size:16px; }

  /* menu position (adjust here) */
  .menu-container{
    position:fixed !important;
    top:50px;
    right:8px;
    z-index:9999;
  }
  .menu-icon{ padding:12px; }
  .menu-list{ width:min(75vw,260px); font-size:.95em; }

  .news-panel{ height:auto !important; max-height:50vh; }
  .description,.news-box{ padding-left:14px !important; padding-right:14px !important; }

  .cv-header{ flex-direction:column; align-items:flex-start; }
}
