/* 
 * 理学部共通スタイルシート（style.css併用版）
 * トップページ用と研究紹介ページ用のスタイルを統合
 * 
 * 使用方法：
 * 1. style.css を先に読み込む
 * 2. このファイルを後に読み込む
 * 3. HTML の body タグに data-faculty 属性を設定
 */

/* ========================================
   CSS変数の追加定義
   ======================================== */

/* 研究ページ用のキーワード背景色を追加 */
body[data-faculty="fc_sci"] {
  --keyword-bg-color: #fff0f0;
}

body[data-faculty="fc_env"] {
  --keyword-bg-color: #e8f9ec;
}

body[data-faculty="fc_che"] {
  --keyword-bg-color: #e6f7ff;
}

/* ========================================
   共通スタイル
   ======================================== */

/* ページヘッダー - 学部トップページ用 */
.faculty-page-header {
  background: linear-gradient(135deg, var(--main-color) 0%, var(--main-color) 100%);
  color: white;
  padding: 80px 20px 60px;
  text-align: center;
}

/* ページヘッダー - 研究ページ用（アクセントカラーあり） */
.faculty-page-header.research-header {
  background: linear-gradient(135deg, var(--main-color) 0%, var(--accent-color, var(--main-color)) 100%);
}

.faculty-page-header h1 {
  font-family: 'Noto Serif JP', serif;
  font-size: 4rem;
  font-weight: 700;
  margin-bottom: 10px;
  color: white;
}

.faculty-page-header .subtitle {
  font-size: 1.6rem;
  opacity: 0.9;
  letter-spacing: 0.1em;
}

section .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.content-section {
  padding: 60px 0;
}

@media screen and (max-width: 768px) {
	.content-section {padding:30px 0;}	
}


.content-section:nth-child(even) {
  background-color: #f8f9fa;
}

.content-section .container {
  display: block !important;
}

.content-section:has(.cta-section) {background-color: transparent;}

/* ========================================
   トップページ用スタイル
   ======================================== */

.section-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 15px;
  color: #333;
  border-left: 5px solid var(--main-color);
  padding-left: 20px;
}

.section-title-en {
  font-size: 1.44rem;
  color: #999;
  letter-spacing: 0.1em;
  margin-bottom: 30px;
  padding-left: 25px;
}

.lead-text {
  font-size: 1.76rem;
  line-height: 2;
  margin-bottom: 40px;
  color: #555;
}

.department-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.department-card {
  background: white;
  border-radius: 8px;
  padding: 30px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.department-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 5px 20px rgba(0,0,0,0.15);
}

.department-card h3 {
  font-size: 2.08rem;
  font-weight: 700;
  color: var(--main-color);
  margin-bottom: 15px;
  border-bottom: 2px solid var(--main-color);
  padding-bottom: 10px;
}

.department-card p {
  line-height: 1.8;
  color: #666;
}

.course-list {
  margin-top: 15px;
  padding-left: 20px;
}

.course-list li {
  color: var(--main-color);
  margin-bottom: 8px;
  line-height: 1.6;
}

.course-list li::marker {
  color: var(--main-color);
}

.feature-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.feature-item {
  background: white;
  border-radius: 8px;
  padding: 30px;
  text-align: center;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.feature-item .icon {
  font-size: 4.8rem;
  color: var(--main-color);
  margin-bottom: 20px;
}

.feature-item h3 {
  font-size: 2.0rem;
  font-weight: 700;
  margin-bottom: 15px;
  color: #333;
}

.feature-item p {
  line-height: 1.8;
  color: #666;
  font-size: 1.52rem;
}

.research-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin-top: 30px;
}

.research-tag {
  background: #fff;
  border: 2px solid var(--main-color);
  color: var(--main-color);
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.research-tag:hover {
  background: var(--main-color);
  color: white;
}

.career-section {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 8px;
  padding: 40px;
  margin-top: 40px;
}

.company-list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 30px;
  line-height: 2;
}

.company-list span {
  color: #555;
}

.cta-section {
  background: linear-gradient(135deg, var(--main-color) 0%, var(--main-color) 100%);
  color: white;
  border-radius: 8px;
  padding: 50px;
  text-align: center;
  /*margin-top: 60px;*/
}

.cta-section h2 {
  font-size: 2.88rem;
  margin-bottom: 30px;
  color: #fff;
}


@media screen and (max-width: 768px) {
	.cta-section {padding:30px;}
	.cta-section h2 {font-size:2.0rem;}
.content-section:has(.cta-section) {padding-top:0;}
}



.cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
}

.cta-button {
  background: white;
  color: var(--main-color);
  padding: 15px 40px;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 700;
  transition: all 0.3s ease;
  display: inline-block;
}

.cta-button:hover {
  transform: scale(1.05);
  box-shadow: 0 5px 20px rgba(0,0,0,0.2);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.stat-item {
  text-align: center;
  padding: 30px;
  background: white;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.stat-number {
  font-size: 4.8rem;
  font-weight: 700;
  color: var(--main-color);
  display: block;
  margin-bottom: 10px;
}

.stat-label {
  font-size: 1.6rem;
  color: #666;
}

/* ========================================
   研究紹介ページ用スタイル
   ======================================== */

.intro-section {
  text-align: center;
  padding: 80px 0 60px;
}

.intro-section h2 {
  font-family: 'Noto Serif JP', serif;
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 15px;
  color: #333;
}

.intro-section .subtitle-en {
  font-size: 1.44rem;
  color: #999;
  letter-spacing: 0.1em;
  margin-bottom: 30px;
}

.intro-section p {
  font-size: 1.76rem;
  line-height: 2;
  color: #555;
  max-width: 900px;
  margin: 0 auto;
}

.intro-section .container {
  display: block !important;
}

.research-section {
  padding: 80px 0;
  position: relative;
}

.research-section:nth-child(even) {
  background-color: #f8f9fa;
}

.research-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.research-image-box {
  width: 100%;
  height: 400px;
  background: #f5f5f5;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
  position: relative;
}

.research-image-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.research-image-box .placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: linear-gradient(135deg, #f5f5f5 0%, #e0e0e0 100%);
  color: #ccc;
  font-size: 4.8rem;
}

.department-label {
  position: absolute;
  /*top: 20px;*/bottom:20px;
  left: 20px;
  background: rgba(255,255,255,0.95);
  color: var(--main-color);
  padding: 8px 20px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 1.44rem;
}

.research-text-box h3 {
  font-family: 'Noto Serif JP', serif;
  font-size: 2.88rem;
  font-weight: 700;
  color: #333;
  margin-bottom: 20px;
  line-height: 1.5;
}

.research-subtitle {
  font-size: 1.6rem;
  color: var(--main-color);
  font-weight: 700;
  margin-bottom: 15px;
  letter-spacing: 0.05em;
}

.research-description {
  font-size: 1.6rem;
  line-height: 2;
  color: #555;
  margin-bottom: 25px;
}

.research-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 25px;
}

.keyword {
  background: var(--keyword-bg-color, #f0f0f0);
  color: var(--main-color);
  padding: 6px 15px;
  border-radius: 15px;
  font-size: 1.36rem;
  font-weight: 600;
}

.student-voice {
  background: #fff;
  border-left: 4px solid var(--main-color);
  padding: 20px;
  border-radius: 8px;
  margin-top: 20px;
}

.student-info {
  font-weight: 700;
  color: var(--main-color);
  margin-bottom: 15px;
  font-size: 1.52rem;
}

.student-voice .question {
  font-weight: 700;
  color: #333;
  margin-top: 15px;
  margin-bottom: 8px;
  font-size: 1.44rem;
}

.student-voice .answer {
  color: #666;
  line-height: 1.8;
  font-size: 1.52rem;
  margin-bottom: 15px;
}

.more-link {
  display: inline-block;
  margin-top: 20px;
  color: var(--main-color);
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s ease;
}

.more-link:hover {
  opacity: 0.7;
}

.more-link i {
  margin-left: 5px;
  transition: transform 0.3s ease;
}

.more-link:hover i {
  transform: translateX(5px);
}

/* ========================================
   レスポンシブ対応
   ======================================== */

@media (max-width: 968px) {
  .research-content {
    grid-template-columns: 1fr !important;
    gap: 40px;
  }
  
  .research-image-box {
    height: 300px;
  }
  
  .faculty-page-header h1 {
    font-size: 2.88rem;
  }
  
  .research-text-box h3 {
    font-size: 2.4rem;
  }
}

@media (max-width: 768px) {
  .faculty-page-header h1 {
    font-size: 2.88rem;
  }
  
  .section-title {
    font-size: 2.4rem;
  }
  
  .department-grid,
  .feature-list {
    grid-template-columns: 1fr;
  }
}


/*OBGG*/

.tab-section .tab-container {
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 20px;
      }

 /* タブナビゲーション */
      .tab-section {
        background-color: #f8f9fa;
        padding: 60px 0 80px;width:100vw !important;max-width:100% !important;
      }
      
      .tab-navigation {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center;
        gap: 15px;
        margin-bottom: 50px;
        border-bottom: 2px solid #e0e0e0;
        padding-bottom: 0;
      }
      
      .tab-button {
        background: none;
        border: none;
        padding: 15px 30px;
        font-size: 1.6rem;
        font-weight: 700;
        color: #666;
        cursor: pointer;
        border-bottom: 3px solid transparent;
        transition: all 0.3s ease;
        position: relative;
        bottom: -2px;
      }
      
      .tab-button:hover {
        color: #333;
      }
      
      .tab-button.active {
        color: var(--main-color);
        border-bottom-color: var(--main-color);
      }
      
      /* タブコンテンツ */
      .tab-content {
        display: none;
      }
      
      .tab-content.active {
        display: block;
        animation: fadeIn 0.5s ease;
      }
      
      @keyframes fadeIn {
        from { opacity: 0; transform: translateY(10px); }
        to { opacity: 1; transform: translateY(0); }
      }
      
      /* 学科タイトル */
      .department-title {
        text-align: left;
        margin-bottom: 40px;
        padding-left: 20px;
        border-left: 5px solid var(--main-color);
      }
      
      .department-title h3 {
        font-family: 'Noto Serif JP', serif;
        font-size: 2.4rem;
        font-weight: 700;
        color: #333;
        margin-bottom: 5px;
      }
      
      .department-title .title-en {
        font-size: 2rem;
        color: #333;
        font-weight: 600;
        letter-spacing: 0.05em;
      }
      
      /* 卒業生カード */
      .alumni-card {
        background: #fff;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 20px rgba(0,0,0,0.08);
        margin-bottom: 40px;
      }
      
      .alumni-content {
        display: grid;
        grid-template-columns: 300px 1fr;
        gap: 40px;
        padding: 40px;
        align-items: start;
      }
      
      .alumni-left {
        display: flex;
        flex-direction: column;
        gap: 20px;
      }
      
      .alumni-image {
        width: 100%;
        aspect-ratio: 3/4;
        background: linear-gradient(135deg, #f5f5f5 0%, #e0e0e0 100%);
        border-radius: 8px;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      
      .alumni-image img {
        width: 100%;
        height: 100%;
        object-fit: cover !important;
      }
      
      .alumni-image .placeholder {
        font-size: 4.8rem;
        color: #ccc;width:100%;height:100%;
      }
      
      .alumni-info-box {
        background: #f8f9fa;
        padding: 20px;
        border-radius: 8px;
      }
      
      .company-name {
        color: var(--main-color);
        font-weight: 700;
        font-size: 1.52rem;
        margin-bottom: 15px;
        line-height: 1.6;
      }
      
      .graduation-info {
        font-size: 1.44rem;
        color: #666;
        line-height: 1.8;
        margin-bottom: 15px;
      }
      
      .alumni-name {
        font-size: 2rem;
        font-weight: 700;
        color: #333;
        padding-top: 15px;
        border-top: 1px solid #ddd;
      }
      
      .alumni-right {
        display: flex;
        flex-direction: column;
        gap: 30px;
      }
      
      .message-section {
        line-height: 2;
      }
      
      .message-title {
        font-size: 2rem;
        font-weight: 700;
        color: #333;
        margin-bottom: 20px;
        line-height: 1.5;
      }
      
      .message-text {
        font-size: 1.52rem;
        color: #555;
        line-height: 2;
      }
      
      .highlight-section {
        background: var(--keyword-bg-color);
        border-left: 4px solid var(--main-color);
        padding: 25px;
        border-radius: 8px;
      }
      
      .highlight-title {
        color: var(--main-color);
        font-weight: 700;
        font-size: 1.76rem;
        margin-bottom: 15px;
        display: flex;
        align-items: center;
        gap: 8px;
      }
      
      .highlight-title::before {
        content: '';
        width: 4px;
        height: 20px;
        background: var(--main-color);
        display: inline-block;
      }
      
      .highlight-text {
        font-size: 1.52rem;
        color: #555;
        line-height: 2;
      }
      
      /* レスポンシブ */
      @media (max-width: 968px) {
        .page-header h1 {
          font-size: 1.8rem;
        }
        
        .tab-button {
          padding: 12px 20px;
          font-size: 1.44rem;
        }
        
        .alumni-content {
          grid-template-columns: 1fr;
          gap: 30px;
          padding: 30px;
        }
        
        .intro-section {
          padding: 50px 0 40px;
        }
        
        .tab-section {
          padding: 40px 0 60px;
        }
      }
      
      @media (max-width: 768px) {
        .alumni-info-box {
          padding: 15px;
        }
        
        .message-title {
          font-size: 1.76rem;
        }
        
        .highlight-section {
          padding: 20px;
        }
}



/*進路・就職*/

      /* 就職/進路状況セクション */
      .career-section {
        background: #fff;
        border-radius: 12px;
        padding: 40px;
        margin-bottom: 40px;
        box-shadow: 0 2px 10px rgba(0,0,0,0.05);
      }

@media screen and (max-width: 768px) {
	.career-section {margin-bottom:10px;padding:20px 10px 40px;margin-top:0;}
	
}


      .section-title {
        font-family: 'Noto Serif JP', serif;
        font-size: 2.4rem;
        font-weight: 700;
        color: #333;
        margin-bottom: 30px;
        padding-bottom: 15px;
        border-bottom: 2px solid #e0e0e0;
      }
      
      .career-stats {
        /*display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;*/
        margin-top: 30px;
      }
      
      .stat-card {
        text-align: center;
      }
      
      .stat-label {
        font-size: 1.44rem;
        color: #666;
        margin-bottom: 10px;
      }
      
      .chart-container {
        position: relative;
        margin: 20px auto;
        /*max-width: 400px;*/width:100%;
      }
      
      .chart-placeholder {
        width: 100%;
        /*aspect-ratio: 1;*/
        background: #fbfbfb;
        /*border-radius: 50%;*/
        display: flex;
        align-items: center;
        justify-content: center;
        color: #999;
        font-size: 1.44rem;
      }

@media screen and (max-width: 768px) {
	.chart-placeholder img {width:100%;}
}



      .decision-rate {
        position: absolute;
        top: 50%;
        right: -80px;
        transform: translateY(-50%);
        text-align: center;
      }
      
      .rate-label {
        font-size: 1.44rem;
        color: #666;
        margin-bottom: 5px;
      }
      
      .rate-value {
        font-size: 4.0rem;
        font-weight: 700;
        color: var(--main-color);
      }
      
      .rate-percent {
        font-size: 1.5rem;
      }
      
      /* 進路先テーブル */
      .destination-section {
        background: #fff;
        border-radius: 12px;
        padding: 40px 10px;
        box-shadow: 0 2px 10px rgba(0,0,0,0.05);
      }
      
      .destination-note {
        font-size: 1.36rem;
        color: #666;
        margin-bottom: 20px;
        line-height: 1.8;
      }
      
      .accordion-item2 {
        margin-bottom: 15px;
        border-radius: 8px;
        overflow: hidden;
        border: 1px solid #e0e0e0;
      }
      
      .accordion-header2 {
        display: flex;
        align-items: center;
        padding: 20px;
        cursor: pointer;
        transition: background-color 0.3s ease;
        user-select: none;
      }
      
      .accordion-header2 h4 {
        margin: 0;
        flex: 1;
      }
      
      .accordion-header2:hover {
        background-color: #f8f9fa;
      }
      
      .accordion-header2.active {
        background-color: #f8f9fa;
      }
      
      .destination-table {
        width: 100%;
        border-collapse: collapse;
        margin-top: 20px;
      }
      
      .destination-table th {
        background-color: #f8f9fa;
        padding: 15px;
        text-align: left;
        font-weight: 700;
        border-bottom: 2px solid #e0e0e0;
        color: #333;
      }
      
      .destination-table td {
        padding: 15px;
        border-bottom: 1px solid #e0e0e0;
        line-height: 1.8;
      }
      
      .destination-table tbody tr:last-child td {
        border-bottom: none;
      }
      
      .destination-table tbody tr:hover {
        background-color: #f8f9fa;
      }
      
      .category-dot {
        display: inline-block;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        margin-right: 8px;
      }
      
      .percentage-cell {
        font-weight: 700;
        color: #666;
        text-align: center;
        width: 100px;
      }
      
      .category-color {
        width: 80px;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 700;
        font-size: 1.44rem;
        color: #fff;
        padding: 10px;
        text-align: center;
        line-height: 1.4;
        flex-shrink: 0;
      }
      
      .category-label {
        flex: 1;
        padding: 0 20px;
        font-weight: 700;
        color: #333;
      }
      
      .percentage {
        font-size: 1.92rem;
        font-weight: 700;
        color: #333;
        margin-right: 20px;
      }
      
      .accordion-icon2 {
        font-size: 1.92rem;
        color: #666;
        transition: transform 0.3s ease;
        margin-right: 10px;
      }
      
      .accordion-header2.active .accordion-icon2 {
        transform: rotate(180deg);
      }
      
      .accordion-content2 {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        background-color: #fafafa;
      }
      
      .accordion-content2.active {
        max-height: 5000px !important;
      }
      
      .company-list {
        padding: 25px 30px;
        line-height: 2;
        font-size: 1.44rem;
        color: #555;
      }

@media screen and (max-width: 768px) {
	.company-list {padding:20px 20px;margin-top:10px;line-height:1.2;}
}


      /* カテゴリー色 */
      .color-manufacturing { background: linear-gradient(135deg, #8bb4e7 0%, #6a9fd8 100%); }
      .color-information { background: linear-gradient(135deg, #d4a5d4 0%, #c48fc4 100%); }
      .color-construction { background: linear-gradient(135deg, #99d4a5 0%, #7bc48a 100%); }
      .color-research { background: linear-gradient(135deg, #ffd966 0%, #ffcc33 100%); }
      .color-education { background: linear-gradient(135deg, #ffb380 0%, #ff9966 100%); }
      .color-publicservice { background: linear-gradient(135deg, #a8d8d8 0%, #8cc8c8 100%); }
      .color-graduate { background: linear-gradient(135deg, #ffaaaa 0%, #ff8888 100%); }
      
      @media (max-width: 968px) {
        .career-stats {
          grid-template-columns: 1fr;
        }
        
        .decision-rate {
          position: static;
          transform: none;
          margin-top: 20px;
        }
        
        .tab-button {
          padding: 12px 20px;
          font-size: 1.44rem;
        }
        
        .category-color {
          width: 60px;
          font-size: 1.3rem;
        }
}

.department-intro {font-size:1.6rem;}
.destination-table {font-size:1.6rem;}
.accordion-content2 {padding-left:20px;padding-right:20px;}

.accordion-content2.active h5 {font-size:1.6rem;color:var(--main-color);}
.accordion-content2.active table {border:1px solid #e0e0e0;margin-bottom:30px;}

td:has(.category-dot) {width:20%;}
td.percentage-cell {width:10%;}

@media (max-width: 768px) {
	.destination-table tr {display:flex;flex-wrap:wrap;}
	.destination-table td {flex-basis:100%;}
}