@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/
/* 一番上に追加してください */



/* 京都皇帝早生桐 CO₂吸収メカニズム専用CSS *//* 京都皇帝早生桐 CO₂吸収メカニズム専用CSS *//* 京都皇帝早生桐 CO₂吸収メカニズム専用CSS */
/* 京都皇帝早生桐 CO₂吸収メカニズム専用CSS *//* 京都皇帝早生桐 CO₂吸収メカニズム専用CSS *//* 京都皇帝早生桐 CO₂吸収メカニズム専用CSS */
/* 京都皇帝早生桐 CO₂吸収メカニズム セクション専用CSS - 企業レベル仕様 */
/* 京都皇帝早生桐 CO₂吸収メカニズム セクション CSS */

.kiri-eco-impact-mechanism-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 20px;
  background: linear-gradient(135deg, #f8fbf4 0%, #e8f5e8 100%);
  border-radius: 20px;
  box-shadow: 0 15px 40px rgba(76, 175, 80, 0.1);
  position: relative;
  overflow: hidden;
}

.kiri-eco-impact-mechanism-section::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(139, 195, 74, 0.05) 0%, transparent 50%);
  pointer-events: none;
  animation: rotate-background 20s linear infinite;
}

@keyframes rotate-background {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* ヘッダーセクション */
.kiri-mechanism-header-container {
  text-align: center;
  margin-bottom: 50px;
  position: relative;
  z-index: 2;
}

.kiri-mechanism-main-title {
  font-size: 2.8rem;
  font-weight: 800;
  color: #2e7d32;
  margin-bottom: 15px;
  line-height: 1.3;
  position: relative;
}

.kiri-title-highlight {
  background: linear-gradient(135deg, #4caf50, #8bc34a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  position: relative;
}

.kiri-title-highlight::after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 4px;
  background: linear-gradient(90deg, #4caf50, #8bc34a);
  border-radius: 2px;
}

.kiri-mechanism-subtitle {
  font-size: 1.3rem;
  color: #558b2f;
  font-weight: 600;
  margin-top: 20px;
  opacity: 0;
  animation: fadeInUp 1s ease-out 0.5s forwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 導入文セクション */
.kiri-intro-content-wrapper {
  margin-bottom: 50px;
  position: relative;
  z-index: 2;
}

.kiri-intro-text-block {
  background: rgba(255, 255, 255, 0.9);
  padding: 40px;
  border-radius: 15px;
  border-left: 6px solid #4caf50;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(10px);
}

.kiri-intro-paragraph {
  font-size: 1.2rem;
  line-height: 1.8;
  color: #2c3e50;
  margin: 0;
  text-align: justify;
}

.kiri-emphasis-green {
  color: #2e7d32;
  font-weight: 700;
  background: linear-gradient(135deg, #c8e6c9, #a5d6a7);
  padding: 2px 8px;
  border-radius: 6px;
}

/* 特徴カードグリッド */
.kiri-feature-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-bottom: 60px;
  position: relative;
  z-index: 2;
}

.kiri-feature-card {
  background: rgba(255, 255, 255, 0.95);
  padding: 35px;
  border-radius: 20px;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden;
}

.kiri-feature-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(76, 175, 80, 0.1), transparent);
  transition: left 0.6s ease;
}

.kiri-feature-card:hover::before {
  left: 100%;
}

.kiri-feature-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 25px 50px rgba(76, 175, 80, 0.2);
}

.kiri-card-icon {
  font-size: 3rem;
  margin-bottom: 20px;
  display: block;
}

.kiri-card-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #2e7d32;
  margin-bottom: 15px;
}

.kiri-card-description {
  font-size: 1.1rem;
  line-height: 1.7;
  color: #37474f;
}

.kiri-highlight-text {
  background: linear-gradient(135deg, #ffeb3b, #ffc107);
  padding: 3px 8px;
  border-radius: 6px;
  font-weight: 600;
  color: #e65100;
}

.kiri-emphasis-blue {
  color: #1976d2;
  font-weight: 700;
  background: rgba(33, 150, 243, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
}

/* データ比較セクション */
.kiri-data-comparison-container {
  background: linear-gradient(135deg, #ffffff 0%, #f1f8e9 100%);
  padding: 50px;
  border-radius: 20px;
  margin-bottom: 50px;
  border: 2px solid #c8e6c9;
  position: relative;
  z-index: 2;
}

.kiri-comparison-header {
  text-align: center;
  margin-bottom: 40px;
}

.kiri-comparison-title {
  font-size: 2.2rem;
  font-weight: 800;
  color: #1b5e20;
  margin-bottom: 10px;
}

.kiri-comparison-subtitle {
  font-size: 1.1rem;
  color: #558b2f;
  font-style: italic;
}

.kiri-comparison-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 40px;
  margin-bottom: 40px;
}

.kiri-comparison-item {
  background: rgba(255, 255, 255, 0.9);
  padding: 30px;
  border-radius: 15px;
  text-align: center;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.kiri-comparison-item:hover {
  transform: translateY(-5px);
}

.kiri-koutei-data {
  border: 3px solid #4caf50;
  background: linear-gradient(135deg, #e8f5e8, #c8e6c9);
}

.kiri-sugi-data {
  border: 3px solid #8d6e63;
  background: linear-gradient(135deg, #efebe9, #d7ccc8);
}

.kiri-data-icon {
  font-size: 2.5rem;
  margin-bottom: 15px;
}

.kiri-data-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: #2e7d32;
  margin-bottom: 10px;
}

.kiri-data-value {
  font-size: 2rem;
  font-weight: 800;
  color: #1b5e20;
  margin-bottom: 8px;
}

.kiri-highlight-value {
  color: #2e7d32;
  background: linear-gradient(135deg, #81c784, #66bb6a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: pulse-glow 2s ease-in-out infinite;
}

@keyframes pulse-glow {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}

.kiri-data-source {
  font-size: 0.9rem;
  color: #666;
  font-style: italic;
}

.kiri-detailed-explanation {
  background: rgba(139, 195, 74, 0.1);
  padding: 30px;
  border-radius: 15px;
  border-left: 5px solid #8bc34a;
}

.kiri-detail-text {
  font-size: 1.15rem;
  line-height: 1.8;
  color: #2c3e50;
  margin: 0;
  text-align: justify;
}

.kiri-emphasis-orange {
  color: #f57c00;
  font-weight: 700;
  background: rgba(255, 152, 0, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
}

.kiri-emphasis-red {
  color: #c62828;
  font-weight: 700;
  background: rgba(244, 67, 54, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
}

/* 成長期間解析セクション */
.kiri-growth-period-analysis {
  background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%);
  padding: 50px;
  border-radius: 20px;
  margin-bottom: 50px;
  position: relative;
  z-index: 2;
}

.kiri-growth-header {
  text-align: center;
  margin-bottom: 40px;
}

.kiri-growth-title {
  font-size: 2rem;
  font-weight: 800;
  color: #e65100;
  margin-bottom: 15px;
}

.kiri-growth-timeline {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  flex-wrap: wrap;
}

.kiri-timeline-item {
  flex: 1;
  min-width: 200px;
  background: rgba(255, 255, 255, 0.9);
  padding: 25px;
  border-radius: 15px;
  text-align: center;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  position: relative;
}

.kiri-peak-period {
  border: 3px solid #ff5722;
  background: linear-gradient(135deg, #ffccbc, #ffab91);
  transform: scale(1.05);
}

.kiri-timeline-year {
  font-size: 1.1rem;
  font-weight: 700;
  color: #ff5722;
  margin-bottom: 10px;
}

.kiri-timeline-label {
  font-size: 1rem;
  font-weight: 600;
  color: #2e7d32;
  margin-bottom: 8px;
}

.kiri-timeline-content p {
  font-size: 0.95rem;
  line-height: 1.5;
  color: #37474f;
  margin: 0;
}

/* 画像ショーケース */
.kiri-image-showcase {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 30px;
  margin-bottom: 50px;
  position: relative;
  z-index: 2;
}

.kiri-image-container {
  background: rgba(255, 255, 255, 0.95);
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
}

.kiri-image-placeholder {
  padding: 60px 30px;
  text-align: center;
  background: linear-gradient(135deg, #f5f5f5, #e0e0e0);
  border: 2px dashed #4caf50;
}

.kiri-image-icon {
  font-size: 3rem;
  margin-bottom: 20px;
  display: block;
}

.kiri-image-text {
  font-size: 1rem;
  color: #37474f;
  line-height: 1.6;
}

/* kiri-image-text セクション内でも h2, p, li など個別に色指定して制御 */
.kiri-image-text {
  color: inherit !important;
}

.kiri-image-text h2,
.kiri-image-text p,
.kiri-image-text li,
.kiri-image-text span,
.kiri-image-text strong {
  color: #2c3e50 !important;
}




.kiri-image-text em {
  color: #666;
  font-style: italic;
}

/* 環境インパクト統計 */
.kiri-environmental-impact-stats {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  padding: 50px;
  border-radius: 20px;
  margin-bottom: 50px;
  position: relative;
  z-index: 2;
}

.kiri-stats-header {
  text-align: center;
  margin-bottom: 40px;
}

.kiri-stats-title {
  font-size: 2.2rem;
  font-weight: 800;
  color: #0d47a1;
  margin-bottom: 15px;
}

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

.kiri-stat-item {
  background: rgba(255, 255, 255, 0.9);
  padding: 30px;
  border-radius: 15px;
  text-align: center;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.kiri-stat-item:hover {
  transform: translateY(-8px);
}

.kiri-stat-number {
  font-size: 2.5rem;
  font-weight: 800;
  color: #1976d2;
  margin-bottom: 10px;
  animation: counter-up 2s ease-out;
}

@keyframes counter-up {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.kiri-stat-label {
  font-size: 1rem;
  color: #37474f;
  font-weight: 600;
  line-height: 1.4;
}

/* まとめセクション */
.kiri-section-conclusion {
  background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%);
  padding: 50px;
  border-radius: 20px;
  text-align: center;
  border: 3px solid #4caf50;
  position: relative;
  z-index: 2;
}

.kiri-conclusion-title {
  font-size: 2.2rem;
  font-weight: 800;
  color: #1b5e20;
  margin-bottom: 25px;
}

.kiri-conclusion-text {
  font-size: 1.2rem;
  line-height: 1.8;
  color: #2c3e50;
  margin: 0;
  text-align: justify;
  max-width: 800px;
  margin: 0 auto;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .kiri-eco-impact-mechanism-section {
    padding: 40px 15px;
  }

  .kiri-mechanism-main-title {
    font-size: 2.2rem;
  }

  .kiri-mechanism-subtitle {
    font-size: 1.1rem;
  }

  .kiri-feature-cards-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .kiri-comparison-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .kiri-growth-timeline {
    flex-direction: column;
    gap: 15px;
  }

  .kiri-stats-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .kiri-image-showcase {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .kiri-data-comparison-container,
  .kiri-growth-period-analysis,
  .kiri-environmental-impact-stats,
  .kiri-section-conclusion {
    padding: 30px 20px;
  }

  .kiri-intro-text-block {
    padding: 25px;
  }

  .kiri-intro-paragraph {
    font-size: 1.1rem;
  }

  .kiri-comparison-title {
    font-size: 1.8rem;
  }

  .kiri-stats-title {
    font-size: 1.8rem;
  }

  .kiri-conclusion-title {
    font-size: 1.8rem;
  }

  .kiri-stat-number {
    font-size: 2rem;
  }
}

@media (max-width: 480px) {
  .kiri-mechanism-main-title {
    font-size: 1.8rem;
  }

  .kiri-data-value {
    font-size: 1.6rem;
  }

  .kiri-feature-card,
  .kiri-comparison-item,
  .kiri-timeline-item,
  .kiri-stat-item {
    padding: 20px;
  }

  .kiri-card-title {
    font-size: 1.3rem;
  }

  .kiri-comparison-title,
  .kiri-stats-title,
  .kiri-conclusion-title {
    font-size: 1.5rem;
  }
}
/* 京都皇帝早生桐 成長速度比較セクション CSS *//* 京都皇帝早生桐 成長速度比較セクション CSS *//* 京都皇帝早生桐 成長速度比較セクション CSS */
/* 京都皇帝早生桐 成長速度比較セクション CSS *//* 京都皇帝早生桐 成長速度比較セクション CSS *//* 京都皇帝早生桐 成長速度比較セクション CSS */
/* 京都皇帝早生桐 成長速度比較セクション CSS */

.koutei-growth-speed-comparison-zone {
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 25px;
  background: linear-gradient(135deg, #f1f8e9 0%, #e8f5e8 50%, #dcedc8 100%);
  border-radius: 25px;
  box-shadow: 0 20px 60px rgba(46, 125, 50, 0.15);
  position: relative;
  overflow: hidden;
}

.koutei-growth-speed-comparison-zone::before {
  content: '';
  position: absolute;
  top: -30px;
  left: -30px;
  right: -30px;
  bottom: -30px;
  background: 
    radial-gradient(circle at 20% 30%, rgba(139, 195, 74, 0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(76, 175, 80, 0.06) 0%, transparent 50%);
  pointer-events: none;
  z-index: 1;
}

/* ヘッダーセクション */
.koutei-section-header-wrapper {
  text-align: center;
  margin-bottom: 50px;
  position: relative;
  z-index: 2;
}

.koutei-main-heading-title {
  font-size: 2.8rem;
  font-weight: 800;
  color: #1b5e20;
  margin-bottom: 20px;
  line-height: 1.2;
  position: relative;
}

.koutei-title-accent-line {
  background: linear-gradient(135deg, #388e3c, #4caf50, #66bb6a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  position: relative;
  display: inline-block;
}

.koutei-title-accent-line::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 4px;
  background: linear-gradient(90deg, #4caf50, #8bc34a, #cddc39);
  border-radius: 2px;
  animation: title-glow 3s ease-in-out infinite;
}

@keyframes title-glow {
  0%, 100% { opacity: 0.8; transform: translateX(-50%) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleX(1.1); }
}

.koutei-subtitle-description {
  font-size: 1.4rem;
  color: #2e7d32;
  font-weight: 600;
  margin-top: 25px;
  opacity: 0;
  animation: fadeInUp 1.2s ease-out 0.5s forwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 導入説明セクション */
.koutei-intro-explanation-container {
  margin-bottom: 60px;
  position: relative;
  z-index: 2;
}

.koutei-intro-text-panel {
  background: rgba(255, 255, 255, 0.95);
  padding: 35px 40px;
  border-radius: 18px;
  border: 3px solid #a5d6a7;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(10px);
  position: relative;
}

.koutei-intro-text-panel::before {
  content: '📊';
  position: absolute;
  top: -15px;
  left: 30px;
  background: #4caf50;
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 1.2rem;
}

.koutei-intro-content-text {
  font-size: 1.25rem;
  line-height: 1.8;
  color: #2c3e50;
  margin: 0;
  text-align: justify;
}

.koutei-strong-accent-green {
  color: #1b5e20;
  font-weight: 800;
  background: linear-gradient(135deg, #c8e6c9, #a5d6a7);
  padding: 3px 10px;
  border-radius: 8px;
  border: 2px solid #81c784;
}

/* 樹種詳細比較エリア */
.koutei-species-detail-comparison-area {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  margin-bottom: 70px;
  position: relative;
  z-index: 2;
}

.koutei-tree-species-info-card {
  background: rgba(255, 255, 255, 0.95);
  padding: 40px;
  border-radius: 20px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden;
}

.koutei-tree-species-info-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(76, 175, 80, 0.08), transparent);
  transition: left 0.8s ease;
}

.koutei-tree-species-info-card:hover::before {
  left: 100%;
}

.koutei-tree-species-info-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 25px 60px rgba(76, 175, 80, 0.2);
}

/* 各樹種の専用カラー */
.koutei-sugi-info {
  border-left: 8px solid #4c796d;
  background: linear-gradient(135deg, #ffffff 0%, #f1f8f6 100%);
}

.koutei-hinoki-info {
  border-left: 8px solid #669e8b;
  background: linear-gradient(135deg, #ffffff 0%, #f3f9f7 100%);
}

.koutei-walnut-info {
  border-left: 8px solid #8b6959;
  background: linear-gradient(135deg, #ffffff 0%, #f7f5f4 100%);
}

.koutei-koutei-kiri-special {
  border: 4px solid #4caf50;
  background: linear-gradient(135deg, #e8f5e8 0%, #f1f8e9 50%, #e0f2f1 100%);
  position: relative;
  transform: scale(1.02);
}

.koutei-special-crown-icon {
  position: absolute;
  top: -20px;
  right: 30px;
  font-size: 2.5rem;
  animation: crown-float 3s ease-in-out infinite;
}

@keyframes crown-float {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(5deg); }
}

/* 樹種アイコンエリア */
.koutei-species-icon-area {
  display: flex;
  align-items: center;
  margin-bottom: 30px;
  gap: 20px;
}

.koutei-tree-icon {
  font-size: 2.8rem;
  background: linear-gradient(135deg, #4caf50, #66bb6a);
  padding: 15px;
  border-radius: 15px;
  box-shadow: 0 8px 20px rgba(76, 175, 80, 0.3);
}

.koutei-special-icon {
  background: linear-gradient(135deg, #ff9800, #ffc107, #ffeb3b);
  animation: special-pulse 2s ease-in-out infinite;
}

@keyframes special-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 8px 20px rgba(255, 152, 0, 0.3); }
  50% { transform: scale(1.1); box-shadow: 0 12px 30px rgba(255, 152, 0, 0.5); }
}

.koutei-species-name-title {
  font-size: 1.8rem;
  font-weight: 700;
  color: #1b5e20;
  margin: 0;
  flex-grow: 1;
}

.koutei-special-title {
  background: linear-gradient(135deg, #e65100, #ff5722, #ff9800);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-size: 2rem;
  font-weight: 800;
}

/* 成長統計グリッド */
.koutei-growth-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 20px;
  margin-bottom: 25px;
}

.koutei-special-stats {
  background: rgba(255, 193, 7, 0.1);
  padding: 20px;
  border-radius: 15px;
  border: 2px solid #ffc107;
}

.koutei-stat-item {
  background: rgba(255, 255, 255, 0.8);
  padding: 20px;
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease;
  position: relative;
}

.koutei-stat-item:hover {
  transform: translateY(-5px);
}

.koutei-breakthrough-stat {
  border: 3px solid #ff5722;
  background: linear-gradient(135deg, #fff3e0, #ffe0b2);
  position: relative;
  overflow: hidden;
}

.koutei-stat-breakthrough {
  position: absolute;
  top: -8px;
  right: -8px;
  background: #ff5722;
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 8px;
  transform: rotate(15deg);
}

.koutei-stat-label {
  display: block;
  font-size: 0.95rem;
  color: #37474f;
  font-weight: 600;
  margin-bottom: 8px;
}

.koutei-stat-value {
  display: block;
  font-size: 1.4rem;
  font-weight: 800;
  margin-bottom: 5px;
}

/* 各樹種の値カラー */
.koutei-sugi-color { color: #4c796d; }
.koutei-hinoki-color { color: #669e8b; }
.koutei-walnut-color { color: #8b6959; }
.koutei-kiri-color { 
  background: linear-gradient(135deg, #4caf50, #66bb6a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: value-glow 2s ease-in-out infinite;
}

@keyframes value-glow {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}

/* 樹種説明文 */
.koutei-species-description {
  font-size: 1.1rem;
  line-height: 1.7;
  color: #2c3e50;
  margin: 0;
  text-align: justify;
}

.koutei-special-description {
  background: rgba(255, 235, 59, 0.1);
  padding: 20px;
  border-radius: 12px;
  border-left: 5px solid #ffeb3b;
  font-weight: 500;
}

.koutei-emphasis-text {
  background: linear-gradient(135deg, #fff9c4, #fff176);
  padding: 2px 8px;
  border-radius: 6px;
  font-weight: 600;
  color: #f57c00;
}

.koutei-special-emphasis {
  background: linear-gradient(135deg, #ffccbc, #ffab91);
  padding: 3px 10px;
  border-radius: 8px;
  font-weight: 700;
  color: #d84315;
}

.koutei-bold-highlight {
  color: #1b5e20;
  font-weight: 700;
  background: rgba(139, 195, 74, 0.2);
  padding: 2px 6px;
  border-radius: 5px;
}

.koutei-special-bold {
  background: linear-gradient(135deg, #4caf50, #8bc34a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 800;
}

.koutei-color-accent-orange { color: #f57c00; font-weight: 600; }
.koutei-color-accent-purple { color: #7b1fa2; font-weight: 600; }
.koutei-color-accent-gold { color: #ff8f00; font-weight: 700; }
.koutei-ultra-highlight { 
  background: linear-gradient(135deg, #ff5722, #ff9800);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 800;
}

/* チャート視覚化エリア */
.koutei-chart-visualization-area {
  background: rgba(255, 255, 255, 0.95);
  padding: 50px;
  border-radius: 20px;
  margin-bottom: 60px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
  border: 3px solid #81c784;
  position: relative;
  z-index: 2;
}

.koutei-chart-title {
  font-size: 2.2rem;
  font-weight: 800;
  color: #1b5e20;
  text-align: center;
  margin-bottom: 30px;
}

.koutei-chart-container {
  position: relative;
  height: 400px;
  background: rgba(248, 251, 244, 0.8);
  border-radius: 15px;
  padding: 20px;
}

/* 画像ギャラリーセクション */
.koutei-image-gallery-section {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  margin-bottom: 60px;
  position: relative;
  z-index: 2;
}

.koutei-image-display-container {
  background: rgba(255, 255, 255, 0.95);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.1);
  border: 2px solid #c8e6c9;
}

.koutei-image-placeholder-box {
  padding: 50px 30px;
  text-align: center;
  background: linear-gradient(135deg, #f8faf8, #f1f8e9);
  border: 3px dashed #81c784;
  position: relative;
}

.koutei-image-placeholder-icon {
  font-size: 3.5rem;
  margin-bottom: 20px;
  display: block;
  animation: float-icon 3s ease-in-out infinite;
}

@keyframes float-icon {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
}

.koutei-image-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #1b5e20;
  margin-bottom: 15px;
}

.koutei-image-description {
  font-size: 1.1rem;
  color: #37474f;
  line-height: 1.6;
  margin: 0;
}

.koutei-image-description strong {
  color: #2e7d32;
  font-weight: 700;
}

.koutei-image-description em {
  color: #558b2f;
  font-style: italic;
  background: rgba(139, 195, 74, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
}

.koutei-image-note {
  display: block;
  margin-top: 10px;
  color: #f57c00;
  font-weight: 600;
  font-size: 0.95rem;
}

/* CO₂インパクト分析セクション */
.koutei-co2-impact-analysis-section {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 50%, #90caf9 100%);
  padding: 50px;
  border-radius: 20px;
  margin-bottom: 50px;
  border: 3px solid #42a5f5;
  position: relative;
  z-index: 2;
}

.koutei-impact-header {
  text-align: center;
  margin-bottom: 40px;
}

.koutei-impact-title {
  font-size: 2.2rem;
  font-weight: 800;
  color: #0d47a1;
  margin-bottom: 15px;
}

.koutei-impact-content-wrapper {
  max-width: 800px;
  margin: 0 auto;
}

.koutei-impact-text-panel {
  background: rgba(255, 255, 255, 0.95);
  padding: 30px;
  border-radius: 15px;
  margin-bottom: 30px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

.koutei-impact-explanation {
  font-size: 1.2rem;
  line-height: 1.8;
  color: #2c3e50;
  margin: 0;
  text-align: justify;
}

.koutei-color-accent-red {
  color: #c62828;
  font-weight: 700;
  background: rgba(244, 67, 54, 0.1);
  padding: 2px 8px;
  border-radius: 6px;
}

.koutei-bold-highlight-blue {
  background: linear-gradient(135deg, #1976d2, #2196f3);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 800;
}

/* 倍率比較グリッド */
.koutei-multiplier-comparison-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 25px;
}

.koutei-multiplier-item {
  background: rgba(255, 255, 255, 0.9);
  padding: 25px;
  border-radius: 15px;
  text-align: center;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.koutei-multiplier-item:hover {
  transform: translateY(-8px);
}

.koutei-multiplier-label {
  font-size: 1rem;
  color: #37474f;
  font-weight: 600;
  margin-bottom: 10px;
}

.koutei-multiplier-value {
  font-size: 2rem;
  font-weight: 800;
  margin-bottom: 5px;
}

.koutei-sugi-comparison { color: #4c796d; }
.koutei-hinoki-comparison { color: #669e8b; }
.koutei-walnut-comparison { color: #8b6959; }

/* 環境まとめ結論 */
.koutei-environmental-summary-conclusion {
  background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 50%, #a5d6a7 100%);
  padding: 50px;
  border-radius: 20px;
  text-align: center;
  border: 4px solid #4caf50;
  position: relative;
  z-index: 2;
}

.koutei-conclusion-content-area {
  max-width: 900px;
  margin: 0 auto;
}

.koutei-conclusion-heading {
  font-size: 2.4rem;
  font-weight: 800;
  color: #1b5e20;
  margin-bottom: 25px;
}

.koutei-conclusion-text {
  font-size: 1.3rem;
  line-height: 1.8;
  color: #2c3e50;
  margin: 0;
  text-align: justify;
}

.koutei-highlight-gold {
  background: linear-gradient(135deg, #ffb300, #ffc107);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 800;
}

.koutei-bold-emphasis-green {
  color: #1b5e20;
  font-weight: 800;
  background: rgba(139, 195, 74, 0.2);
  padding: 3px 8px;
  border-radius: 6px;
}

.koutei-color-accent-blue {
  color: #1976d2;
  font-weight: 700;
  background: rgba(33, 150, 243, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .koutei-growth-speed-comparison-zone {
    padding: 40px 20px;
  }

  .koutei-main-heading-title {
    font-size: 2.2rem;
  }

  .koutei-subtitle-description {
    font-size: 1.2rem;
  }

  .koutei-intro-text-panel {
    padding: 25px 20px;
  }

  .koutei-intro-content-text {
    font-size: 1.1rem;
  }

  .koutei-tree-species-info-card {
    padding: 25px 20px;
  }

  .koutei-species-icon-area {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
  }

  .koutei-species-name-title {
    font-size: 1.5rem;
  }

  .koutei-special-title {
    font-size: 1.6rem;
  }

  .koutei-growth-stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }

  .koutei-chart-visualization-area {
    padding: 30px 20px;
  }

  .koutei-chart-title {
    font-size: 1.8rem;
  }

  .koutei-chart-container {
    height: 300px;
    padding: 15px;
  }

  .koutei-image-placeholder-box {
    padding: 30px 20px;
  }

  .koutei-co2-impact-analysis-section {
    padding: 30px 20px;
  }

  .koutei-impact-title {
    font-size: 1.8rem;
  }

  .koutei-multiplier-comparison-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .koutei-environmental-summary-conclusion {
    padding: 30px 20px;
  }

  .koutei-conclusion-heading {
    font-size: 1.9rem;
  }

  .koutei-conclusion-text {
    font-size: 1.1rem;
  }
}

@media (max-width: 480px) {
  .koutei-main-heading-title {
    font-size: 1.8rem;
  }

  .koutei-growth-stats-grid {
    grid-template-columns: 1fr;
  }

  .koutei-tree-icon {
    font-size: 2.2rem;
    padding: 12px;
  }

  .koutei-species-name-title {
    font-size: 1.3rem;
  }

  .koutei-stat-value {
    font-size: 1.2rem;
  }

  .koutei-chart-container {
    height: 250px;
    padding: 10px;
  }

  .koutei-image-placeholder-icon {
    font-size: 2.5rem;
  }

  .koutei-impact-explanation {
    font-size: 1.1rem;
  }

  .koutei-multiplier-value {
    font-size: 1.6rem;
  }

  .koutei-conclusion-heading {
    font-size: 1.6rem;
  }
}
/* ============================================
   京都皇帝早生桐 - 単位面積あたりのCO₂吸収量
   環境への貢献セクション - 派手で大胆なデザイン
   ============================================ */

/* メインセクション */
.co2-absorption-area-section-unique2025 {
  width: 100%;
  background: linear-gradient(180deg, #ffffff 0%, #f5faf3 50%, #edf7e9 100%);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}

.co2-absorption-area-section-unique2025::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: 
    radial-gradient(circle at 20% 30%, rgba(143, 200, 102, 0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(74, 124, 89, 0.06) 0%, transparent 50%);
  pointer-events: none;
}

.absorption-container-supreme {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 1;
}

/* ダイナミックヘッダー */
.dynamic-header-absorption {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  margin-bottom: 50px;
  position: relative;
}

.header-decoration-left,
.header-decoration-right {
  flex: 1;
  height: 3px;
  background: linear-gradient(90deg, transparent, #8fc866, transparent);
  position: relative;
}

.header-decoration-left::after,
.header-decoration-right::after {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  background: #4a7c59;
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
}

.header-decoration-left::after {
  right: 0;
}

.header-decoration-right::after {
  left: 0;
}

.absorption-main-title {
  font-size: 42px;
  font-weight: 800;
  text-align: center;
  position: relative;
  padding: 20px 40px;
  background: white;
  border-radius: 20px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
}

.title-prefix-absorption {
  display: block;
  font-size: 32px;
  color: #666;
  font-weight: 400;
  margin-bottom: 8px;
}

.title-emphasis-co2 {
  display: block;
  font-size: 48px;
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 50%, #8fc866 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 2px;
}

/* イントロステートメント */
.intro-statement-absorption {
  text-align: center;
  margin-bottom: 60px;
}

.lead-text-supreme {
  font-size: 20px;
  color: #444;
  line-height: 1.8;
  max-width: 800px;
  margin: 0 auto;
}

.keyword-highlight-absorption {
  color: #4a7c59;
  font-weight: 700;
  position: relative;
  padding-bottom: 3px;
  border-bottom: 3px solid #8fc866;
}

/* サークル型レイアウト - スギ林 */
.species-block-sugi {
  margin-bottom: 80px;
}

.circular-info-card {
  display: flex;
  align-items: center;
  gap: 60px;
  background: white;
  border-radius: 30px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.circular-info-card::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -10%;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(122, 157, 138, 0.1) 0%, transparent 70%);
  border-radius: 50%;
}

.circle-visual-sugi {
  flex-shrink: 0;
}

.circle-chart {
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.1));
}

.species-content-detailed {
  flex: 1;
}

.species-title-sugi {
  font-size: 32px;
  color: #2c5530;
  font-weight: 700;
  margin-bottom: 25px;
  display: flex;
  align-items: center;
  gap: 15px;
}

.tree-icon {
  font-size: 40px;
}

.absorption-description {
  font-size: 18px;
  line-height: 2;
  color: #444;
}

.data-point-absorption {
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  padding: 4px 12px;
  border-radius: 6px;
  font-weight: 600;
  color: #2c5530;
}

.value-emphasis {
  color: #4a7c59;
  font-weight: 700;
  font-size: 20px;
}

.carbon-conversion {
  color: #666;
  font-weight: 600;
  background: #f8f8f8;
  padding: 2px 8px;
  border-radius: 4px;
}

.highlight-text-green {
  color: #4a7c59;
  font-weight: 600;
}

.important-fact {
  color: #2c5530;
  font-weight: 700;
  border-bottom: 2px solid #8fc866;
  padding-bottom: 2px;
}

/* グリッドカード - ヒノキ林 */
.species-block-hinoki {
  margin-bottom: 80px;
}

.grid-layout-card {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 50px;
  background: linear-gradient(135deg, #ffffff 0%, #f8fdf5 100%);
  border-radius: 30px;
  padding: 50px;
  box-shadow: 0 15px 50px rgba(74, 124, 89, 0.12);
}

.grid-visual-section {
  display: flex;
  align-items: center;
  justify-content: center;
}

.bar-chart-vertical {
  width: 100%;
  height: 250px;
  background: white;
  border-radius: 20px;
  padding: 30px;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}

.bar-wrapper-hinoki {
  width: 80px;
  height: 180px;
  background: #f0f4f8;
  border-radius: 10px;
  position: relative;
  overflow: hidden;
}

.bar-fill-hinoki {
  position: absolute;
  bottom: 0;
  width: 100%;
  background: linear-gradient(180deg, #8daaa0 0%, #a8c5b9 100%);
  border-radius: 10px 10px 0 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 15px;
  animation: growHeight 1.5s ease-out;
}

.bar-label-value {
  color: white;
  font-weight: 700;
  font-size: 16px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.chart-label-hinoki {
  margin-top: 15px;
  font-size: 14px;
  color: #666;
  font-weight: 600;
}

.species-title-hinoki {
  font-size: 32px;
  color: #2c5530;
  font-weight: 700;
  margin-bottom: 25px;
  display: flex;
  align-items: center;
  gap: 15px;
}

.tree-emoji {
  font-size: 40px;
}

.main-text-hinoki {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 20px;
}

.comparison-point {
  color: #d9534f;
  font-weight: 600;
}

.annual-absorption {
  color: #4a7c59;
  font-weight: 700;
  font-size: 20px;
}

.carbon-data {
  background: #f0f4f8;
  padding: 3px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #555;
}

.detail-box-hinoki {
  background: white;
  border-left: 4px solid #a8c5b9;
  padding: 20px;
  border-radius: 10px;
  margin-top: 20px;
}

.detail-text {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
}

.growth-speed {
  color: #d9534f;
  font-weight: 600;
}

.material-value {
  color: #4a7c59;
  font-weight: 700;
}

.long-term-benefit {
  background: linear-gradient(180deg, transparent 60%, #e8f5e0 60%);
  padding: 2px 0;
}

/* フレックスボックスレイアウト - ウォールナット */
.species-block-walnut {
  margin-bottom: 80px;
}

.flex-card-walnut {
  background: white;
  border-radius: 30px;
  padding: 50px;
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.12);
  position: relative;
}

.flex-card-walnut::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 200px;
  height: 200px;
  background: linear-gradient(135deg, rgba(139, 115, 85, 0.1) 0%, transparent 70%);
  border-radius: 0 30px 0 0;
}

.flex-header-walnut {
  display: flex;
  align-items: center;
  gap: 25px;
  margin-bottom: 40px;
}

.icon-container-walnut {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, #f5e6d3 0%, #e8d4bb 100%);
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.walnut-icon {
  font-size: 48px;
}

.species-title-walnut {
  font-size: 32px;
  color: #2c5530;
  font-weight: 700;
}

.flex-body-walnut {
  display: flex;
  gap: 50px;
  align-items: center;
}

.data-visualization-walnut {
  flex-shrink: 0;
}

.circular-progress {
  position: relative;
}

.progress-ring {
  position: relative;
  width: 120px;
  height: 120px;
}

.progress-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

.progress-text .value {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: #2c5530;
}

.progress-text .unit {
  display: block;
  font-size: 14px;
  color: #666;
}

.content-description-walnut {
  flex: 1;
}

.walnut-text {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 20px;
}

.slow-growth {
  color: #d9534f;
  font-weight: 600;
}

.absorption-amount {
  color: #8b7355;
  font-weight: 700;
  font-size: 20px;
}

.carbon-equivalent {
  background: #faf5f0;
  padding: 3px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #666;
}

.special-note-walnut {
  display: flex;
  gap: 15px;
  background: linear-gradient(135deg, #fffaf5 0%, #fff5ed 100%);
  border-radius: 15px;
  padding: 20px;
  margin-top: 20px;
}

.note-icon {
  font-size: 28px;
  flex-shrink: 0;
}

.note-text {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
}

.high-density {
  color: #8b7355;
  font-weight: 700;
}

.carbon-fixation {
  color: #4a7c59;
  font-weight: 600;
}

/* ヒーローセクション - 京都皇帝早生桐 */
.hero-section-kiri {
  margin-bottom: 80px;
}

.hero-card-supreme {
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 100%);
  border-radius: 40px;
  padding: 60px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(44, 85, 48, 0.3);
}

.hero-card-supreme::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(143, 200, 102, 0.2) 0%, transparent 70%);
  animation: rotate 20s linear infinite;
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.hero-badge {
  position: absolute;
  top: 30px;
  right: 30px;
  background: #ffeb3b;
  color: #2c5530;
  padding: 10px 25px;
  border-radius: 25px;
  font-weight: 700;
  font-size: 16px;
  box-shadow: 0 5px 15px rgba(255, 235, 59, 0.4);
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

.hero-header {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-bottom: 40px;
}

.hero-icon-wrapper {
  width: 100px;
  height: 100px;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px);
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kiri-icon-svg {
  filter: drop-shadow(0 5px 10px rgba(0, 0, 0, 0.2));
}

.hero-title-kiri {
  color: white;
}

.title-main {
  display: block;
  font-size: 40px;
  font-weight: 800;
  margin-bottom: 5px;
}

.title-sub {
  display: block;
  font-size: 24px;
  font-weight: 400;
  opacity: 0.9;
}

.hero-content-grid {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 50px;
  position: relative;
  z-index: 1;
}

.data-card-primary {
  background: white;
  border-radius: 25px;
  padding: 30px;
  margin-bottom: 20px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
}

.data-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.data-icon {
  font-size: 28px;
}

.data-label {
  font-size: 18px;
  color: #666;
  font-weight: 600;
}

.data-value-huge {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 15px;
}

.value-number {
  font-size: 56px;
  font-weight: 800;
  color: #2c5530;
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.value-unit {
  font-size: 28px;
  font-weight: 600;
  color: #4a7c59;
}

.data-comparison {
  background: #ffeb3b;
  padding: 10px 20px;
  border-radius: 15px;
  display: inline-block;
}

.comparison-text {
  font-size: 18px;
  font-weight: 700;
  color: #2c5530;
}

.carbon-conversion-card {
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  padding: 25px;
  text-align: center;
}

.conversion-header {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 10px;
}

.conversion-value {
  font-size: 28px;
  font-weight: 700;
  color: white;
}

.hero-description-section {
  color: white;
}

.hero-main-text {
  font-size: 20px;
  line-height: 2;
  margin-bottom: 30px;
}

.growth-period {
  background: rgba(255, 255, 255, 0.2);
  padding: 4px 12px;
  border-radius: 6px;
  font-weight: 600;
}

.massive-absorption {
  font-size: 24px;
  font-weight: 800;
  color: #ffeb3b;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.carbon-highlight {
  border-bottom: 3px solid #8fc866;
  padding-bottom: 2px;
}

.special-attention-box {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  padding: 30px;
  border: 2px solid rgba(255, 255, 255, 0.3);
}

.attention-header {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
}

.attention-icon {
  font-size: 32px;
}

.attention-title {
  font-size: 22px;
  font-weight: 700;
}

.attention-text {
  font-size: 18px;
  line-height: 1.9;
}

.rapid-effect {
  color: #ffeb3b;
  font-weight: 700;
  font-size: 20px;
}

.already-fixing {
  background: rgba(143, 200, 102, 0.3);
  padding: 3px 10px;
  border-radius: 5px;
  font-weight: 600;
}

/* 研究所データセクション */
.research-section-infographic {
  margin-bottom: 80px;
}

.research-header-modern {
  text-align: center;
  margin-bottom: 50px;
}

.research-icon-wrapper {
  display: inline-flex;
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, #4a7c59 0%, #8fc866 100%);
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  box-shadow: 0 10px 30px rgba(74, 124, 89, 0.3);
}

.research-icon {
  font-size: 40px;
}

.research-title {
  font-size: 32px;
  color: #2c5530;
  font-weight: 700;
  margin-bottom: 10px;
}

.research-subtitle {
  font-size: 18px;
  color: #666;
}

/* 要因グリッド */
.factors-grid-layout {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.factor-card-lai,
.factor-card-growth,
.factor-card-photosynthesis {
  background: white;
  border-radius: 25px;
  padding: 40px 30px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.factor-card-lai:hover,
.factor-card-growth:hover,
.factor-card-photosynthesis:hover {
  transform: translateY(-10px);
  box-shadow: 0 25px 60px rgba(74, 124, 89, 0.15);
}

.factor-number {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 48px;
  font-weight: 800;
  color: rgba(143, 200, 102, 0.2);
}

.factor-title {
  font-size: 20px;
  color: #2c5530;
  font-weight: 700;
  margin-bottom: 20px;
}

.factor-visual {
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

.leaf-comparison {
  display: flex;
  justify-content: center;
}

.timeline-visual {
  width: 100%;
  height: 60px;
  background: #f0f4f8;
  border-radius: 30px;
  position: relative;
  overflow: hidden;
}

.season-bar {
  display: flex;
  height: 100%;
}

.spring, .summer, .autumn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  color: white;
  font-size: 14px;
}

.spring {
  background: #8fc866;
}

.summer {
  background: #6fa750;
}

.autumn {
  background: #4a7c59;
}

.growth-indicator {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: #ffeb3b;
}

.efficiency-meter {
  width: 100%;
  height: 40px;
  background: #f0f4f8;
  border-radius: 20px;
  overflow: hidden;
}

.meter-background {
  height: 100%;
  position: relative;
}

.meter-fill {
  height: 100%;
  background: linear-gradient(90deg, #8fc866 0%, #4a7c59 100%);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 15px;
}

.meter-label {
  color: white;
  font-weight: 600;
  font-size: 14px;
}

.factor-description {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
}

.large-leaves,
.long-season,
.high-efficiency {
  color: #4a7c59;
  font-weight: 700;
}

.rapid-expansion,
.photosynthesis-area,
.efficiency-boost,
.annual-activity,
.maximized-efficiency {
  font-weight: 600;
  color: #2c5530;
}

.c3-plant {
  background: #f0f4f8;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
}

.optimal-conditions {
  color: #8fc866;
  font-weight: 600;
}

/* 比較サマリーテーブル */
.comparison-summary-section {
  margin-bottom: 60px;
}

.summary-table-container {
  background: white;
  border-radius: 30px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
}

.summary-title {
  font-size: 28px;
  color: #2c5530;
  font-weight: 700;
  text-align: center;
  margin-bottom: 40px;
}

.responsive-table-wrapper {
  overflow-x: auto;
}

.absorption-comparison-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 20px;
  overflow: hidden;
}

.absorption-comparison-table thead {
  background: linear-gradient(135deg, #4a7c59 0%, #6fa750 100%);
}

.absorption-comparison-table th {
  padding: 20px;
  color: white;
  font-weight: 600;
  text-align: left;
  font-size: 16px;
}

.absorption-comparison-table tbody tr {
  border-bottom: 1px solid #e0e8e0;
  transition: background-color 0.3s ease;
}

.absorption-comparison-table tbody tr:hover {
  background: #f8fdf5;
}

.absorption-comparison-table tbody tr.highlight-row-kiri {
  background: linear-gradient(90deg, #e8f5e0 0%, #f0f7ed 100%);
}

.absorption-comparison-table td {
  padding: 20px;
  font-size: 16px;
  color: #444;
}

.value-high {
  font-size: 20px;
  font-weight: 700;
  color: #4a7c59;
}

.feature-best {
  background: #ffeb3b;
  padding: 5px 15px;
  border-radius: 15px;
  font-weight: 600;
  color: #2c5530;
}

/* 画像プレースホルダー */
.image-section-absorption {
  margin-top: 60px;
}

.image-placeholder-full {
  width: 100%;
  min-height: 400px;
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  border: 3px dashed #8fc866;
  border-radius: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.image-instruction-box {
  text-align: center;
  padding: 40px;
}

.image-title {
  font-size: 20px;
  color: #4a7c59;
  font-weight: 700;
  margin-bottom: 15px;
}

.image-description {
  font-size: 16px;
  color: #666;
  line-height: 1.6;
}

/* フェードインアニメーション */
.fade-in-ready {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in-active {
  opacity: 1;
  transform: translateY(0);
}

/* 追加アニメーション */
@keyframes growHeight {
  from {
    height: 0;
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* レスポンシブデザイン */
@media (max-width: 1024px) {
  .hero-content-grid {
    grid-template-columns: 1fr;
  }
  
  .factors-grid-layout {
    grid-template-columns: 1fr;
  }
  
  .grid-layout-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .absorption-main-title {
    font-size: 32px;
    padding: 15px 25px;
  }
  
  .title-prefix-absorption {
    font-size: 24px;
  }
  
  .title-emphasis-co2 {
    font-size: 36px;
  }
  
  .circular-info-card {
    flex-direction: column;
    padding: 30px;
  }
  
  .flex-body-walnut {
    flex-direction: column;
  }
  
  .hero-card-supreme {
    padding: 40px 30px;
  }
  
  .title-main {
    font-size: 32px;
  }
  
  .value-number {
    font-size: 42px;
  }
  
  .absorption-comparison-table {
    font-size: 14px;
  }
  
  .absorption-comparison-table th,
  .absorption-comparison-table td {
    padding: 15px 10px;
  }
}

@media (max-width: 480px) {
  .absorption-container-supreme {
    padding: 0 15px;
  }
  
  .co2-absorption-area-section-unique2025 {
    padding: 60px 0;
  }
  
  .dynamic-header-absorption {
    flex-direction: column;
    gap: 20px;
  }
  
  .header-decoration-left,
  .header-decoration-right {
    display: none;
  }
  
  .absorption-main-title {
    font-size: 28px;
  }
  
  .title-emphasis-co2 {
    font-size: 32px;
  }
  
  .species-title-sugi,
  .species-title-hinoki,
  .species-title-walnut {
    font-size: 24px;
  }
  
  .lead-text-supreme {
    font-size: 18px;
  }
  
  .hero-badge {
    top: 15px;
    right: 15px;
    padding: 8px 20px;
    font-size: 14px;
  }
}

/* 京都皇帝早生桐 生理学的特性とCO₂吸収能力セクション CSS *//* 京都皇帝早生桐 生理学的特性とCO₂吸収能力セクション CSS *//* 京都皇帝早生桐 生理学的特性とCO₂吸収能力セクション CSS *//* 京都皇帝早生桐 生理学的特性とCO₂吸収能力セクション CSS *//* 京都皇帝早生桐 生理学的特性とCO₂吸収能力セクション CSS */
 /* 京都皇帝早生桐 生理学的特性とCO₂吸収能力セクション CSS */
/* ============================================
   京都皇帝早生桐 - 樹木の生理学的特性とCO₂吸収能力
   環境への貢献セクション 2-1 
   ============================================ */

/* メインセクションコンテナ */
.physiology-co2-section-2025 {
  width: 100%;
  background: linear-gradient(135deg, #f8fdf5 0%, #ffffff 50%, #f0f7ed 100%);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

.physiology-co2-section-2025::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -10%;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(143, 200, 102, 0.05) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

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

/* セクションヘッダー */
.section-header-elegant {
  text-align: center;
  margin-bottom: 60px;
  animation: fadeInUp 0.8s ease-out;
}

.main-title-physiology {
  font-size: 36px;
  font-weight: 700;
  color: #2c5530;
  margin-bottom: 20px;
  line-height: 1.4;
}

.title-accent {
  display: block;
  font-size: 32px;
  color: #4a7c59;
  margin-bottom: 8px;
}

.title-highlight {
  display: block;
  font-size: 42px;
  background: linear-gradient(90deg, #4a7c59 0%, #8fc866 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
}

.section-lead-text {
  font-size: 18px;
  color: #555;
  line-height: 1.8;
  max-width: 800px;
  margin: 0 auto;
}

.emphasis-green {
  color: #4a7c59;
  font-weight: 600;
}

/* 根系の発達セクション */
.content-block-roots {
  margin-bottom: 60px;
}

.feature-card-elegant {
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
  padding: 40px;
  position: relative;
  overflow: hidden;
}

.feature-card-elegant::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(180deg, #8fc866 0%, #4a7c59 100%);
}

.card-header-roots {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 30px;
}

.icon-wrapper-roots {
  width: 64px;
  height: 64px;
  background: linear-gradient(135deg, #e8f5e0 0%, #d4ecc4 100%);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.subsection-title-roots {
  font-size: 28px;
  color: #2c5530;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 12px;
}

.title-number {
  font-size: 20px;
  color: #8fc866;
  font-weight: 300;
}

.main-description {
  font-size: 17px;
  line-height: 1.8;
  color: #444;
  margin-bottom: 30px;
}

.highlight-strong {
  color: #4a7c59;
  font-weight: 600;
  border-bottom: 2px solid #8fc866;
  padding-bottom: 2px;
}

.data-emphasis {
  font-weight: 600;
  color: #2c5530;
  font-size: 18px;
}

.data-point {
  background: linear-gradient(90deg, #e8f5e0 0%, #d4ecc4 100%);
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
  color: #2c5530;
}

/* データビジュアライゼーション */
.data-visualization-roots {
  background: #f8fdf5;
  border-radius: 12px;
  padding: 30px;
  margin-bottom: 30px;
}

.comparison-chart {
  width: 100%;
}

.chart-title {
  font-size: 18px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 20px;
  text-align: center;
}

.chart-bars {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.bar-item {
  display: flex;
  align-items: center;
  gap: 15px;
}

.bar-label {
  min-width: 120px;
  font-size: 14px;
  color: #555;
  font-weight: 500;
}

.bar-container {
  flex: 1;
  height: 36px;
  background: #f0f4f8;
  border-radius: 18px;
  position: relative;
  overflow: hidden;
}

.bar-fill {
  height: 100%;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 12px;
  transition: width 1s ease-out;
  position: relative;
}

.kiri-bar {
  background: linear-gradient(90deg, #8fc866 0%, #6fa750 100%);
}

.sugi-bar {
  background: linear-gradient(90deg, #94b8a3 0%, #7a9d8a 100%);
}

.hinoki-bar {
  background: linear-gradient(90deg, #a8c5b9 0%, #8daaa0 100%);
}

.bar-value {
  color: white;
  font-weight: 600;
  font-size: 14px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.benefits-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.benefit-item, .comparison-note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  background: #ffffff;
  border-radius: 8px;
  border: 1px solid #e0e8e0;
}

.benefit-icon, .note-icon {
  font-size: 24px;
  flex-shrink: 0;
}

.benefit-text, .note-text {
  font-size: 16px;
  line-height: 1.7;
  color: #444;
}

.emphasis-red {
  color: #d9534f;
  font-weight: 600;
}

/* 葉の構造と機能セクション */
.content-block-leaves {
  margin-bottom: 60px;
}

.feature-card-gradient {
  background: linear-gradient(135deg, #ffffff 0%, #f8fdf5 100%);
  border-radius: 16px;
  box-shadow: 0 15px 45px rgba(74, 124, 89, 0.1);
  padding: 40px;
  position: relative;
}

.card-header-leaves {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 30px;
}

.section-badge {
  width: 48px;
  height: 48px;
  background: #4a7c59;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 18px;
}

.subsection-title-leaves {
  font-size: 28px;
  color: #2c5530;
  font-weight: 600;
}

.leaves-content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-bottom: 30px;
}

.size-highlight {
  background: #e8f5e0;
  padding: 2px 8px;
  border-radius: 4px;
  color: #2c5530;
}

.leaf-features {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 20px;
}

.feature-box-leaf {
  display: flex;
  gap: 16px;
  padding: 20px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.feature-box-leaf:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(74, 124, 89, 0.15);
}

.feature-icon-circle {
  width: 48px;
  height: 48px;
  background: #f0f7ed;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}

.feature-title {
  font-size: 16px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 8px;
}

.feature-content p {
  font-size: 15px;
  line-height: 1.6;
  color: #555;
  margin: 0;
}

.emphasis-efficiency {
  color: #4a7c59;
  font-weight: 600;
}

/* 画像プレースホルダー */
.image-placeholder-leaves {
  display: flex;
  align-items: center;
  justify-content: center;
}

.image-frame {
  width: 100%;
  height: 300px;
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  border: 2px dashed #8fc866;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.image-content {
  text-align: center;
  padding: 20px;
}

.image-instruction {
  font-size: 16px;
  color: #4a7c59;
  font-weight: 600;
  margin-bottom: 10px;
}

.image-description {
  font-size: 14px;
  color: #666;
}

/* 比較セクション */
.comparison-section-leaves {
  background: #f8fdf5;
  border-radius: 12px;
  padding: 24px;
  border-left: 4px solid #8fc866;
}

.comparison-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.comparison-icon {
  font-size: 24px;
}

.comparison-title {
  font-size: 18px;
  font-weight: 600;
  color: #2c5530;
}

.comparison-text {
  font-size: 16px;
  line-height: 1.7;
  color: #444;
}

.limitation {
  color: #d9534f;
  font-weight: 500;
}

.advantage {
  color: #4a7c59;
  font-weight: 600;
}

/* 木部形成と炭素固定セクション */
.content-block-wood {
  margin-bottom: 60px;
}

.wood-formation-card {
  background: white;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.card-header-modern {
  background: linear-gradient(135deg, #4a7c59 0%, #6fa750 100%);
  padding: 30px 40px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.section-number-circle {
  width: 48px;
  height: 48px;
  background: white;
  color: #4a7c59;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 20px;
}

.subsection-title-wood {
  color: white;
  font-size: 28px;
  font-weight: 600;
}

.wood-content-wrapper {
  padding: 40px;
}

.intro-text-wood p {
  font-size: 17px;
  line-height: 1.8;
  color: #444;
  margin-bottom: 30px;
}

.highlight-efficiency {
  color: #4a7c59;
  font-weight: 600;
  position: relative;
}

/* 成長速度インフォグラフィック */
.growth-infographic {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 30px;
  margin-bottom: 40px;
}

.growth-stat-card {
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  border-radius: 16px;
  padding: 30px;
  display: flex;
  gap: 20px;
  align-items: center;
}

.stat-icon {
  font-size: 48px;
}

.stat-value {
  font-size: 36px;
  font-weight: 700;
  color: #2c5530;
  margin-bottom: 8px;
}

.stat-unit {
  font-size: 20px;
  font-weight: 400;
  color: #4a7c59;
}

.stat-label {
  font-size: 16px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 600;
}

.stat-description {
  font-size: 14px;
  color: #777;
  line-height: 1.5;
}

.carbon-fixation-visual {
  background: white;
  border: 2px solid #e0e8e0;
  border-radius: 16px;
  padding: 30px;
}

.fixation-title {
  font-size: 18px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 20px;
  text-align: center;
}

.process-flow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.process-step {
  flex: 1;
  text-align: center;
}

.step-icon {
  font-size: 32px;
  margin-bottom: 10px;
}

.step-text {
  font-size: 14px;
  color: #555;
  font-weight: 500;
}

.arrow {
  color: #8fc866;
  font-size: 24px;
  font-weight: bold;
}

/* 木材密度比較テーブル */
.density-comparison-table {
  background: #f8fdf5;
  border-radius: 16px;
  padding: 30px;
  margin-bottom: 30px;
}

.table-title {
  font-size: 20px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 20px;
  text-align: center;
}

.table-wrapper {
  overflow-x: auto;
}

.comparison-table-modern {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.comparison-table-modern thead {
  background: linear-gradient(135deg, #4a7c59 0%, #6fa750 100%);
}

.comparison-table-modern th {
  padding: 16px;
  color: white;
  font-weight: 600;
  text-align: left;
  font-size: 15px;
}

.comparison-table-modern tbody tr {
  border-bottom: 1px solid #e0e8e0;
  transition: background-color 0.3s ease;
}

.comparison-table-modern tbody tr:hover {
  background: #f8fdf5;
}

.comparison-table-modern tbody tr.highlight-row {
  background: #e8f5e0;
}

.comparison-table-modern td {
  padding: 16px;
  font-size: 15px;
  color: #444;
}

.density-value {
  font-weight: 600;
  color: #2c5530;
}

.speed-fast {
  color: #4a7c59;
  font-weight: 600;
}

.speed-medium {
  color: #f0ad4e;
  font-weight: 500;
}

.speed-slow {
  color: #d9534f;
  font-weight: 500;
}

.speed-very-slow {
  color: #c9302c;
  font-weight: 500;
}

.fixation-high {
  color: #4a7c59;
  font-weight: 600;
  position: relative;
}

.fixation-medium {
  color: #f0ad4e;
  font-weight: 500;
}

.fixation-low {
  color: #d9534f;
  font-weight: 500;
}

/* キーポイントボックス */
.key-point-box {
  background: linear-gradient(135deg, #fff9e6 0%, #fff5d6 100%);
  border-left: 4px solid #f0ad4e;
  border-radius: 8px;
  padding: 24px;
}

.key-point-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.key-icon {
  font-size: 24px;
}

.key-title {
  font-size: 18px;
  font-weight: 600;
  color: #2c5530;
}

.key-point-text {
  font-size: 16px;
  line-height: 1.8;
  color: #444;
}

.emphasis-density {
  background: #fff5d6;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 500;
}

.growth-advantage {
  color: #4a7c59;
  font-weight: 600;
}

.result-emphasis {
  color: #2c5530;
  font-weight: 700;
  border-bottom: 2px solid #f0ad4e;
}

.limitation-text {
  color: #d9534f;
  font-weight: 500;
}

/* 窒素利用効率セクション */
.content-block-nitrogen {
  margin-bottom: 60px;
}

.nitrogen-efficiency-card {
  background: white;
  border-radius: 20px;
  box-shadow: 0 15px 45px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.card-header-final {
  background: linear-gradient(90deg, #8fc866 0%, #4a7c59 100%);
  padding: 30px 40px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.section-indicator {
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  color: white;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 20px;
}

.subsection-title-nitrogen {
  color: white;
  font-size: 28px;
  font-weight: 600;
}

.nitrogen-content {
  padding: 40px;
}

.main-text-nitrogen {
  font-size: 17px;
  line-height: 1.8;
  color: #444;
  margin-bottom: 30px;
}

.nue-highlight {
  color: #4a7c59;
  font-weight: 600;
  background: linear-gradient(180deg, transparent 60%, #e8f5e0 60%);
}

/* 効率比較チャート */
.efficiency-comparison {
  background: #f8fdf5;
  border-radius: 16px;
  padding: 30px;
  margin-bottom: 30px;
}

.chart-title-nitrogen {
  font-size: 18px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 20px;
  text-align: center;
}

.efficiency-bars {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.efficiency-item {
  display: grid;
  grid-template-columns: 150px 1fr 150px;
  align-items: center;
  gap: 20px;
}

.species-label {
  font-size: 15px;
  font-weight: 600;
  color: #2c5530;
}

.efficiency-bar-wrapper {
  height: 40px;
  background: #e0e8e0;
  border-radius: 20px;
  position: relative;
  overflow: hidden;
}

.efficiency-bar {
  height: 100%;
  background: linear-gradient(90deg, #8fc866 0%, #6fa750 100%);
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  animation: growWidth 1.5s ease-out;
}

.kiri-efficiency .efficiency-bar {
  background: linear-gradient(90deg, #4a7c59 0%, #8fc866 100%);
}

.sugi-efficiency {
  background: linear-gradient(90deg, #94b8a3 0%, #7a9d8a 100%);
}

.hinoki-efficiency {
  background: linear-gradient(90deg, #a8c5b9 0%, #8daaa0 100%);
}

.efficiency-value {
  color: white;
  font-weight: 600;
  font-size: 14px;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.efficiency-description {
  font-size: 13px;
  color: #666;
  text-align: right;
}

/* 研究結果 */
.research-findings {
  background: white;
  border: 2px solid #e0e8e0;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 30px;
}

.findings-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.research-icon {
  font-size: 24px;
}

.findings-title {
  font-size: 18px;
  font-weight: 600;
  color: #2c5530;
}

.findings-text {
  font-size: 16px;
  line-height: 1.7;
  color: #444;
}

.data-strong {
  color: #4a7c59;
  font-weight: 700;
  font-size: 17px;
}

/* 画像セクション */
.image-section-nitrogen {
  margin-top: 20px;
}

.image-placeholder-nitrogen {
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  border: 2px dashed #8fc866;
  border-radius: 12px;
  padding: 40px;
  text-align: center;
}

.image-note {
  font-size: 16px;
  color: #4a7c59;
  font-weight: 600;
  margin-bottom: 10px;
}

/* まとめセクション */
.section-summary {
  margin-top: 60px;
}

.summary-card {
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 100%);
  border-radius: 20px;
  padding: 40px;
  color: white;
}

.summary-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 30px;
}

.summary-icon {
  font-size: 32px;
}

.summary-title {
  font-size: 24px;
  font-weight: 600;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.summary-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border-radius: 12px;
  transition: transform 0.3s ease, background 0.3s ease;
}

.summary-item:hover {
  transform: translateX(5px);
  background: rgba(255, 255, 255, 0.15);
}

.check-icon {
  font-size: 20px;
  flex-shrink: 0;
}

.summary-text {
  font-size: 16px;
  line-height: 1.6;
}

/* アニメーション */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes growWidth {
  from {
    width: 0;
  }
}

/* レスポンシブデザイン */
@media (max-width: 768px) {
  .main-title-physiology {
    font-size: 28px;
  }
  
  .title-accent {
    font-size: 26px;
  }
  
  .title-highlight {
    font-size: 32px;
  }
  
  .leaves-content-grid {
    grid-template-columns: 1fr;
  }
  
  .growth-infographic {
    grid-template-columns: 1fr;
  }
  
  .efficiency-item {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  
  .species-label {
    text-align: center;
  }
  
  .efficiency-description {
    text-align: center;
  }
  
  .summary-grid {
    grid-template-columns: 1fr;
  }
  
  .comparison-table-modern {
    font-size: 13px;
  }
  
  .comparison-table-modern th,
  .comparison-table-modern td {
    padding: 12px 8px;
  }
  
  .feature-card-elegant,
  .feature-card-gradient,
  .wood-formation-card,
  .nitrogen-efficiency-card {
    padding: 30px 20px;
  }
  
  .process-flow {
    flex-direction: column;
    gap: 20px;
  }
  
  .arrow {
    transform: rotate(90deg);
  }
}

@media (max-width: 480px) {
  .section-container-kiri {
    padding: 0 15px;
  }
  
  .physiology-co2-section-2025 {
    padding: 60px 0;
  }
  
  .main-title-physiology {
    font-size: 24px;
  }
  
  .title-accent {
    font-size: 22px;
  }
  
  .title-highlight {
    font-size: 28px;
  }
  
  .section-lead-text {
    font-size: 16px;
  }
  
  .bar-label {
    min-width: 80px;
    font-size: 12px;
  }
  
  .subsection-title-roots,
  .subsection-title-leaves,
  .subsection-title-wood,
  .subsection-title-nitrogen {
    font-size: 22px;
  }
}

/* ============================================
   京都皇帝早生桐 - 樹齢とCO₂吸収能力の関係
   シックで貫禄のあるプレミアムデザイン
   ============================================ */

/* メインセクション */
.tree-age-co2-relation-premium2025 {
  width: 100%;
  background: linear-gradient(180deg, #fafafa 0%, #f5f5f5 100%);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}

.tree-age-co2-relation-premium2025::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: 
    radial-gradient(circle at 10% 20%, rgba(74, 124, 89, 0.03) 0%, transparent 40%),
    radial-gradient(circle at 90% 80%, rgba(143, 200, 102, 0.03) 0%, transparent 40%);
  pointer-events: none;
}

.premium-container-treeage {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 1;
}

/* プレミアムヘッダー */
.premium-header-section {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-bottom: 60px;
}

.header-line-decoration {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, #2c5530, transparent);
  max-width: 200px;
}

.main-title-treeage {
  font-size: 46px;
  font-weight: 300;
  text-align: center;
  letter-spacing: 3px;
  position: relative;
}

.title-kanji {
  font-weight: 300;
  color: #333;
  font-size: 42px;
}

.title-emphasis-co2 {
  font-weight: 700;
  color: #2c5530;
  font-size: 48px;
  margin: 0 8px;
}

.title-relation {
  font-weight: 400;
  color: #333;
  font-size: 42px;
}

/* 導入ブロック */
.introduction-block-treeage {
  max-width: 900px;
  margin: 0 auto 80px;
  text-align: center;
}

.intro-text-premium {
  font-size: 19px;
  line-height: 2;
  color: #444;
  font-weight: 300;
}

.keyword-absorption {
  color: #2c5530;
  font-weight: 600;
  border-bottom: 2px solid #8fc866;
  padding-bottom: 2px;
}

.emphasis-age {
  font-weight: 500;
  color: #4a7c59;
}

.brand-kiri {
  font-weight: 700;
  color: #2c5530;
  font-size: 20px;
}

.unique-characteristic {
  background: linear-gradient(180deg, transparent 60%, rgba(143, 200, 102, 0.3) 60%);
  padding: 2px 4px;
  font-weight: 500;
}

/* 若齢期セクション - タイムライン */
.young-age-section-timeline {
  margin-bottom: 100px;
  position: relative;
}

.section-indicator-young,
.section-indicator-mature,
.section-indicator-cumulative {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 40px;
  padding: 12px 30px;
  background: white;
  border-radius: 50px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
}

.indicator-number {
  width: 40px;
  height: 40px;
  background: #2c5530;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 18px;
}

.indicator-label {
  font-size: 18px;
  font-weight: 500;
  color: #333;
}

.timeline-container-premium {
  background: white;
  border-radius: 20px;
  padding: 50px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
}

.timeline-header {
  margin-bottom: 30px;
}

.subsection-title-young,
.subsection-title-mature,
.subsection-title-cumulative {
  font-size: 32px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 20px;
}

.timeline-description {
  font-size: 18px;
  line-height: 2;
  color: #444;
  margin-bottom: 40px;
}

.young-period {
  color: #4a7c59;
  font-weight: 600;
}

.co2-maximum {
  font-weight: 500;
  color: #2c5530;
}

.kiri-emphasis {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
}

.critical-period {
  background: #f0f7ed;
  padding: 3px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #2c5530;
}

.maximum-ability {
  color: #4a7c59;
  font-weight: 700;
  font-size: 19px;
}

.comparison-point {
  color: #666;
  font-style: italic;
}

/* 比較タイムライン */
.comparison-timeline-visual {
  background: #fafafa;
  border-radius: 15px;
  padding: 40px;
  margin-bottom: 30px;
}

.timeline-item-kiri,
.timeline-item-sugi,
.timeline-item-walnut {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-bottom: 25px;
  position: relative;
}

.timeline-bar-kiri,
.timeline-bar-sugi,
.timeline-bar-walnut {
  height: 50px;
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 600;
  font-size: 16px;
  position: relative;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
}

.timeline-bar-kiri {
  width: 150px;
  background: linear-gradient(90deg, #4a7c59 0%, #8fc866 100%);
}

.timeline-bar-sugi {
  width: 300px;
  background: linear-gradient(90deg, #7a9d8a 0%, #94b8a3 100%);
}

.timeline-bar-walnut {
  width: 400px;
  background: linear-gradient(90deg, #8b7355 0%, #a08870 100%);
}

.years-label {
  font-size: 18px;
  font-weight: 700;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.timeline-info {
  flex: 1;
}

.species-name {
  font-size: 20px;
  font-weight: 600;
  color: #333;
  margin-bottom: 5px;
}

.peak-description {
  font-size: 15px;
  color: #666;
}

.timeline-conclusion {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-top: 30px;
  padding: 20px;
  background: #f8fdf5;
  border-left: 4px solid #4a7c59;
  border-radius: 8px;
}

.period-sugi,
.period-walnut {
  font-weight: 600;
  color: #4a7c59;
}

.conclusion-emphasis {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
  display: block;
  margin-top: 10px;
}

/* 画像プレースホルダー */
.image-placeholder-timeline,
.image-placeholder-mature,
.image-placeholder-cumulative,
.image-placeholder-additional {
  width: 100%;
  min-height: 350px;
  background: linear-gradient(135deg, #f5f5f5 0%, #efefef 100%);
  border: 2px dashed #ccc;
  border-radius: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 40px 0;
}

.image-instruction-area {
  text-align: center;
  padding: 30px;
}

.image-title-instruction {
  font-size: 18px;
  font-weight: 600;
  color: #4a7c59;
  margin-bottom: 12px;
}

.image-detail-instruction {
  font-size: 15px;
  color: #666;
  line-height: 1.6;
  max-width: 600px;
  margin: 0 auto;
}

/* 成熟期セクション - グリッド */
.mature-age-section-grid {
  margin-bottom: 100px;
}

.grid-container-mature {
  background: white;
  border-radius: 20px;
  padding: 50px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
}

.grid-header-mature {
  margin-bottom: 40px;
}

.grid-content-mature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
}

.mature-description {
  font-size: 18px;
  line-height: 2;
  color: #444;
  margin-bottom: 30px;
}

.growth-decline {
  color: #d9534f;
  font-weight: 500;
}

.co2-reduction {
  color: #d9534f;
  font-weight: 600;
}

.age-80 {
  font-weight: 600;
  color: #666;
}

.half-reduction {
  background: #fff5f5;
  padding: 3px 10px;
  border-radius: 5px;
  color: #d9534f;
  font-weight: 600;
}

/* 削減ビジュアル */
.reduction-visual {
  background: #fafafa;
  border-radius: 15px;
  padding: 30px;
}

.chart-title-reduction {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 20px;
  text-align: center;
}

.reduction-bars {
  display: flex;
  gap: 30px;
  justify-content: center;
}

.bar-young,
.bar-old {
  text-align: center;
}

.bar-label {
  font-size: 14px;
  color: #666;
  margin-bottom: 10px;
  display: block;
}

.bar-fill-young,
.bar-fill-old {
  width: 80px;
  border-radius: 5px;
  margin: 0 auto 10px;
}

.bar-fill-young {
  height: 100px;
  background: linear-gradient(180deg, #8fc866 0%, #4a7c59 100%);
}

.bar-fill-old {
  height: 45px;
  background: linear-gradient(180deg, #ccc 0%, #999 100%);
}

.percentage {
  font-size: 18px;
  font-weight: 700;
  color: #333;
}

/* 京都皇帝早生桐特別ボックス */
.kiri-special-box {
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  border-radius: 15px;
  padding: 35px;
  height: 100%;
}

.box-title-kiri {
  font-size: 22px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 2px solid #8fc866;
}

.kiri-mature-text {
  font-size: 17px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 25px;
}

.age-limit {
  font-weight: 600;
  color: #4a7c59;
}

.commercial-value {
  color: #2c5530;
  font-weight: 700;
}

.continuous-ability {
  background: white;
  padding: 3px 10px;
  border-radius: 5px;
  font-weight: 600;
}

.rotation-concept {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: white;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
}

.concept-icon {
  font-size: 36px;
  flex-shrink: 0;
}

.concept-text {
  font-size: 16px;
  line-height: 1.8;
  color: #444;
}

.short-rotation {
  color: #4a7c59;
  font-weight: 700;
  font-size: 17px;
}

.very-efficient {
  color: #2c5530;
  font-weight: 600;
}

/* 累積量比較セクション */
.cumulative-section-infographic {
  margin-bottom: 80px;
}

.infographic-container {
  background: white;
  border-radius: 20px;
  padding: 50px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
}

.infographic-header {
  text-align: center;
  margin-bottom: 50px;
}

.cumulative-intro {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  max-width: 800px;
  margin: 0 auto;
}

.timespan {
  font-size: 20px;
  font-weight: 700;
  color: #2c5530;
}

.cumulative-amount {
  color: #4a7c59;
  font-weight: 600;
}

/* 比較カード */
.comparison-cards-container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
  margin-bottom: 50px;
}

.species-card-sugi-cumulative,
.species-card-hinoki-cumulative,
.species-card-walnut-cumulative,
.species-card-kiri-cumulative {
  background: #fafafa;
  border-radius: 15px;
  padding: 30px 20px;
  text-align: center;
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 1px solid #e0e0e0;
}

.species-card-sugi-cumulative:hover,
.species-card-hinoki-cumulative:hover,
.species-card-walnut-cumulative:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

.species-card-kiri-cumulative {
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 100%);
  color: white;
  border: none;
  transform: scale(1.05);
  box-shadow: 0 20px 40px rgba(44, 85, 48, 0.3);
}

.species-card-kiri-cumulative:hover {
  transform: scale(1.08) translateY(-5px);
  box-shadow: 0 25px 50px rgba(44, 85, 48, 0.4);
}

.premium-badge {
  position: absolute;
  top: -15px;
  right: 20px;
  background: #ffeb3b;
  color: #2c5530;
  padding: 8px 20px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 14px;
  box-shadow: 0 3px 10px rgba(255, 235, 59, 0.3);
}

.card-header-species {
  margin-bottom: 20px;
}

.species-icon {
  font-size: 40px;
  margin-bottom: 10px;
  display: block;
}

.species-title {
  font-size: 20px;
  font-weight: 600;
  color: #333;
  margin: 0;
}

.species-card-kiri-cumulative .species-title {
  color: white;
}

.planting-method {
  font-size: 14px;
  color: #666;
  margin-bottom: 20px;
  line-height: 1.5;
}

.species-card-kiri-cumulative .planting-method {
  color: rgba(255, 255, 255, 0.9);
}

.co2-amount-display {
  margin-bottom: 10px;
}

.amount-number {
  font-size: 32px;
  font-weight: 700;
  color: #2c5530;
  display: block;
}

.species-card-kiri-cumulative .amount-number {
  color: #ffeb3b;
  font-size: 36px;
}

.amount-unit {
  font-size: 16px;
  font-weight: 500;
  color: #666;
}

.species-card-kiri-cumulative .amount-unit {
  color: rgba(255, 255, 255, 0.9);
}

.absorption-label {
  font-size: 14px;
  color: #666;
  margin: 0;
}

.species-card-kiri-cumulative .absorption-label {
  color: rgba(255, 255, 255, 0.8);
}

.card-footer-emphasis {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
}

.emphasis-text {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
}

.emphasis-text strong {
  color: #ffeb3b;
  font-size: 18px;
}

/* 結論セクション */
.conclusion-section-cumulative {
  margin-top: 40px;
}

.conclusion-box {
  background: linear-gradient(135deg, #f8fdf5 0%, #f0f7ed 100%);
  border-radius: 15px;
  padding: 35px;
  display: flex;
  align-items: center;
  gap: 25px;
  border-left: 5px solid #4a7c59;
}

.conclusion-icon {
  font-size: 48px;
  flex-shrink: 0;
}

.conclusion-text {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin: 0;
}

.rotation-emphasis {
  color: #4a7c59;
  font-weight: 700;
}

.kiri-brand {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
}

.extremely-efficient {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
  background: linear-gradient(180deg, transparent 60%, rgba(143, 200, 102, 0.3) 60%);
  padding: 2px 4px;
}

/* 追加画像セクション */
.additional-image-section {
  margin-top: 60px;
}

/* レスポンシブデザイン */
@media (max-width: 1024px) {
  .comparison-cards-container {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .grid-content-mature {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .main-title-treeage {
    font-size: 36px;
  }
  
  .title-kanji,
  .title-relation {
    font-size: 32px;
  }
  
  .title-emphasis-co2 {
    font-size: 38px;
  }
  
  .comparison-cards-container {
    grid-template-columns: 1fr;
  }
  
  .timeline-bar-kiri,
  .timeline-bar-sugi,
  .timeline-bar-walnut {
    width: 100% !important;
    max-width: 300px;
  }
  
  .timeline-item-kiri,
  .timeline-item-sugi,
  .timeline-item-walnut {
    flex-direction: column;
    text-align: center;
  }
  
  .premium-header-section {
    flex-direction: column;
    gap: 20px;
  }
  
  .header-line-decoration {
    display: none;
  }
}

@media (max-width: 480px) {
  .premium-container-treeage {
    padding: 0 15px;
  }
  
  .tree-age-co2-relation-premium2025 {
    padding: 60px 0;
  }
  
  .main-title-treeage {
    font-size: 28px;
  }
  
  .title-kanji,
  .title-relation {
    font-size: 26px;
  }
  
  .title-emphasis-co2 {
    font-size: 30px;
  }
  
  .timeline-container-premium,
  .grid-container-mature,
  .infographic-container {
    padding: 30px 20px;
  }
  
  .subsection-title-young,
  .subsection-title-mature,
  .subsection-title-cumulative {
    font-size: 24px;
  }
  
  .amount-number {
    font-size: 28px;
  }
  
  .species-card-kiri-cumulative .amount-number {
    font-size: 32px;
  }
  
  .reduction-bars {
    flex-direction: column;
    align-items: center;
  }
}


/* ============================================
   京都皇帝早生桐 - 環境適応性と生態系への影響
   派手で大胆なプレミアムデザイン
   ============================================ */

/* メインセクション */
.environmental-adaptation-ecosystem-premium2025 {
  width: 100%;
  background: linear-gradient(180deg, #ffffff 0%, #fafcf8 50%, #f5f9f3 100%);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}

.environmental-adaptation-ecosystem-premium2025::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(143, 200, 102, 0.05) 0%, transparent 70%);
  animation: float 20s ease-in-out infinite;
}

.environmental-adaptation-ecosystem-premium2025::after {
  content: '';
  position: absolute;
  bottom: -100px;
  left: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(74, 124, 89, 0.05) 0%, transparent 70%);
  animation: float 20s ease-in-out infinite reverse;
}

@keyframes float {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(30px, -30px) rotate(120deg); }
  66% { transform: translate(-20px, 20px) rotate(240deg); }
}

.ecosystem-container-supreme {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 1;
}

/* ダイナミックヘッダー */
.dynamic-header-ecosystem {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  margin-bottom: 60px;
  position: relative;
}

.header-decoration-svg {
  opacity: 0;
  animation: fadeIn 1s ease forwards;
}

@keyframes drawPath {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}

.main-title-ecosystem {
  text-align: center;
  padding: 30px 50px;
  background: white;
  border-radius: 20px;
  box-shadow: 0 15px 50px rgba(0, 0, 0, 0.08);
  position: relative;
  overflow: hidden;
}

.main-title-ecosystem::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #4a7c59 0%, #8fc866 50%, #4a7c59 100%);
  animation: shimmer 3s ease-in-out infinite;
}

@keyframes shimmer {
  0%, 100% { transform: translateX(-100%); }
  50% { transform: translateX(100%); }
}

.title-line-one {
  display: block;
  font-size: 38px;
  font-weight: 400;
  color: #333;
  margin-bottom: 8px;
}

.title-line-two {
  display: block;
  font-size: 44px;
  font-weight: 700;
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 50%, #8fc866 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* 導入ブロック */
.introduction-block-ecosystem {
  margin-bottom: 80px;
}

.intro-wrapper-premium {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
  padding: 30px;
  background: linear-gradient(135deg, rgba(255,255,255,0.9) 0%, rgba(248,253,245,0.9) 100%);
  border-radius: 15px;
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.intro-text-ecosystem {
  font-size: 20px;
  line-height: 2;
  color: #444;
  font-weight: 300;
}

.co2-evaluation {
  color: #2c5530;
  font-weight: 700;
  font-size: 21px;
}

.adaptation-emphasis {
  background: linear-gradient(180deg, transparent 60%, rgba(143, 200, 102, 0.3) 60%);
  padding: 2px 6px;
  font-weight: 600;
}

.ecosystem-impact {
  color: #4a7c59;
  font-weight: 600;
  border-bottom: 2px solid #8fc866;
  padding-bottom: 2px;
}

/* 気候適応性セクション */
.climate-adaptation-section {
  margin-bottom: 100px;
  opacity: 0;
  transform: translateY(30px);
}

.climate-adaptation-section.visible {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.8s ease;
}

.section-badge-climate,
.section-badge-soil,
.section-badge-biodiversity,
.section-badge-water {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  padding: 15px 35px;
  background: linear-gradient(135deg, #4a7c59 0%, #6fa750 100%);
  color: white;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(74, 124, 89, 0.3);
  margin-bottom: 40px;
  position: relative;
  overflow: hidden;
}

.section-badge-climate::before,
.section-badge-soil::before,
.section-badge-biodiversity::before,
.section-badge-water::before {
  content: '';
  position: absolute;
  top: 50%;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  animation: slide 3s ease-in-out infinite;
}

@keyframes slide {
  0% { left: -100%; }
  100% { left: 100%; }
}

.badge-number {
  font-size: 24px;
  font-weight: 700;
}

.badge-text {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1px;
}

.climate-content-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
  position: relative;
}

.subsection-title-climate,
.subsection-title-soil,
.subsection-title-biodiversity,
.subsection-title-water {
  font-size: 34px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 30px;
  position: relative;
  padding-bottom: 15px;
}

.subsection-title-climate::after,
.subsection-title-soil::after,
.subsection-title-biodiversity::after,
.subsection-title-water::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #8fc866 0%, transparent 100%);
}

.climate-text-primary {
  font-size: 18px;
  line-height: 2;
  color: #444;
  margin-bottom: 30px;
}

.kiri-species {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
}

.climate-range {
  background: #f0f7ed;
  padding: 3px 10px;
  border-radius: 5px;
  font-weight: 600;
}

.japan-climate {
  color: #4a7c59;
  font-weight: 600;
}

.temperature-condition {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
}

.cold-resistance {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  padding: 3px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #1565c0;
}

/* 温度範囲ビジュアル */
.temperature-range-visual {
  background: linear-gradient(135deg, #f5f5f5 0%, #eeeeee 100%);
  border-radius: 20px;
  padding: 30px;
  margin: 30px 0;
}

.temp-scale {
  position: relative;
}

.temp-bar {
  height: 60px;
  background: linear-gradient(90deg, 
    #1565c0 0%, 
    #4caf50 30%, 
    #8bc34a 50%, 
    #ffeb3b 70%, 
    #ff9800 100%);
  border-radius: 30px;
  position: relative;
  box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.1);
}

.optimal-range {
  position: absolute;
  left: 30%;
  right: 30%;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.95);
  padding: 8px 15px;
  border-radius: 20px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.range-label {
  font-size: 14px;
  font-weight: 600;
  color: #333;
}

.range-value {
  font-size: 16px;
  font-weight: 700;
  color: #4a7c59;
}

.tolerance-range {
  position: absolute;
  left: 10%;
  top: -40px;
  background: white;
  padding: 5px 12px;
  border-radius: 15px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
}

.tolerance-label {
  font-size: 12px;
  color: #666;
  margin-right: 8px;
}

.tolerance-value {
  font-size: 14px;
  font-weight: 700;
  color: #1565c0;
}

.comparison-paragraph {
  font-size: 18px;
  line-height: 2;
  color: #444;
  padding: 25px;
  background: #fafafa;
  border-left: 4px solid #d9534f;
  border-radius: 8px;
}

.weakness-dry {
  color: #d9534f;
  font-weight: 600;
}

.climate-change {
  background: #fff5f5;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}

.growth-problem {
  color: #d9534f;
  font-weight: 700;
}

.drought-resistant {
  color: #4a7c59;
  font-weight: 700;
  font-size: 19px;
}

.rainfall-requirement {
  background: #e3f2fd;
  padding: 3px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #1565c0;
}

/* 画像プレースホルダー */
.image-placeholder-climate,
.image-placeholder-soil,
.image-placeholder-biodiversity,
.image-placeholder-water,
.image-placeholder-additional-eco {
  width: 100%;
  min-height: 400px;
  background: linear-gradient(135deg, #f8f8f8 0%, #f0f0f0 100%);
  border: 3px dashed #ccc;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 40px 0;
  position: relative;
  overflow: hidden;
}

.image-placeholder-climate::before,
.image-placeholder-soil::before,
.image-placeholder-biodiversity::before,
.image-placeholder-water::before,
.image-placeholder-additional-eco::before {
  content: '📷';
  position: absolute;
  font-size: 80px;
  opacity: 0.1;
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

.image-instruction-wrapper {
  text-align: center;
  padding: 40px;
  z-index: 1;
  position: relative;
}

.image-title-inst {
  font-size: 20px;
  font-weight: 700;
  color: #4a7c59;
  margin-bottom: 15px;
}

.image-desc-inst {
  font-size: 16px;
  color: #666;
  line-height: 1.8;
  max-width: 600px;
  margin: 0 auto;
}

/* 土壌適応性セクション - サークル型 */
.soil-adaptation-section {
  margin-bottom: 100px;
  opacity: 0;
  transform: translateY(30px);
}

.soil-adaptation-section.visible {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.8s ease 0.2s;
}

.soil-content-circular {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.soil-circles-layout {
  display: flex;
  justify-content: space-around;
  gap: 30px;
  margin-top: 40px;
}

.soil-circle-kiri,
.soil-circle-sugi,
.soil-circle-walnut {
  flex: 1;
  background: linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%);
  border-radius: 50%;
  padding: 40px;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.soil-circle-kiri {
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  border: 3px solid #8fc866;
}

.soil-circle-sugi {
  background: linear-gradient(135deg, #f5f5f5 0%, #eeeeee 100%);
  border: 3px solid #94b8a3;
}

.soil-circle-walnut {
  background: linear-gradient(135deg, #faf5f0 0%, #f5ebe0 100%);
  border: 3px solid #a08870;
}

.soil-circle-kiri:hover,
.soil-circle-sugi:hover,
.soil-circle-walnut:hover {
  transform: translateY(-10px) scale(1.05);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
}

.circle-content {
  text-align: center;
}

.species-name-soil {
  font-size: 22px;
  font-weight: 700;
  color: #2c5530;
  margin-bottom: 20px;
}

.ph-range,
.soil-preference,
.soil-requirement {
  background: white;
  border-radius: 15px;
  padding: 15px;
  margin-bottom: 20px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
}

.ph-label,
.pref-label,
.req-label {
  display: block;
  font-size: 12px;
  color: #666;
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.ph-value,
.pref-value,
.req-value {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: #4a7c59;
}

.soil-description {
  font-size: 15px;
  line-height: 1.8;
  color: #555;
}

.soil-adaptability {
  color: #4a7c59;
  font-weight: 700;
}

.poor-nutrition {
  background: #fff5ed;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}

.fertile-soil {
  color: #2c5530;
  font-weight: 700;
}

.acidic-soil {
  color: #d9534f;
  font-weight: 600;
}

.soil-sensitive {
  color: #ff9800;
  font-weight: 700;
}

.fertile-deep {
  color: #8b7355;
  font-weight: 600;
}

.growth-failure {
  color: #d9534f;
  font-weight: 700;
}

/* 生物多様性セクション */
.biodiversity-impact-section {
  margin-bottom: 100px;
  opacity: 0;
  transform: translateY(30px);
}

.biodiversity-impact-section.visible {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.8s ease 0.4s;
}

.biodiversity-infographic {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.biodiversity-text {
  font-size: 18px;
  line-height: 2;
  color: #444;
  margin-bottom: 40px;
}

.biodiversity-impact {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
}

.feature-grid-biodiversity {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 40px;
}

.bio-feature-card {
  background: linear-gradient(135deg, #f8fdf5 0%, #f0f7ed 100%);
  border-radius: 20px;
  padding: 35px;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
  position: relative;
  overflow: hidden;
}

.bio-feature-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, transparent 0%, rgba(143, 200, 102, 0.1) 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.bio-feature-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(74, 124, 89, 0.15);
}

.bio-feature-card:hover::before {
  opacity: 1;
}

.feature-icon-bio {
  font-size: 48px;
  margin-bottom: 20px;
  display: block;
}

.feature-title-bio {
  font-size: 20px;
  font-weight: 700;
  color: #2c5530;
  margin-bottom: 15px;
}

.feature-desc-bio {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
}

.broadleaf {
  color: #4a7c59;
  font-weight: 700;
}

.organic-matter {
  background: #f5f0e6;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}

.soil-organisms {
  color: #2c5530;
  font-weight: 700;
}

.numerous-flowers {
  color: #e91e63;
  font-weight: 600;
}

.nectar-source {
  color: #4a7c59;
  font-weight: 700;
}

.planting-spacing {
  background: #e8f5e0;
  padding: 2px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #2c5530;
}

.diverse-undergrowth {
  color: #4a7c59;
  font-weight: 700;
}

.habitat-diversity {
  color: #2c5530;
  font-weight: 600;
}

.comparison-alert {
  display: flex;
  gap: 20px;
  background: linear-gradient(135deg, #fff5f5 0%, #ffebee 100%);
  border-left: 5px solid #d9534f;
  border-radius: 10px;
  padding: 30px;
  margin-top: 30px;
}

.alert-icon {
  font-size: 36px;
  flex-shrink: 0;
}

.alert-title {
  font-size: 20px;
  font-weight: 700;
  color: #d9534f;
  margin-bottom: 10px;
}

.alert-text {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
}

.monoculture {
  color: #d9534f;
  font-weight: 600;
}

.biodiversity-issue {
  color: #d9534f;
  font-weight: 700;
}

.dense-planting {
  background: #fff5f5;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}

.biodiversity-decline {
  color: #c62828;
  font-weight: 700;
}

/* 水源涵養機能セクション */
.water-conservation-section {
  margin-bottom: 100px;
  opacity: 0;
  transform: translateY(30px);
}

.water-conservation-section.visible {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.8s ease 0.6s;
}

.water-content-columns {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.two-column-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin-top: 40px;
}

.water-intro-text {
  font-size: 18px;
  line-height: 2;
  color: #444;
  margin-bottom: 25px;
}

.water-function {
  color: #1976d2;
  font-weight: 700;
  font-size: 19px;
}

.feature-heading-water,
.comparison-heading-water {
  font-size: 22px;
  font-weight: 700;
  color: #2c5530;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #8fc866;
}

.water-description {
  font-size: 17px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 20px;
}

.deep-root {
  color: #4a7c59;
  font-weight: 700;
}

.soil-depth {
  background: #f5f0e6;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}

.soil-improvement {
  color: #2c5530;
  font-weight: 700;
}

.water-permeability {
  color: #1976d2;
  font-weight: 600;
}

.water-benefit-box {
  display: flex;
  align-items: center;
  gap: 20px;
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  border-radius: 15px;
  padding: 20px;
  margin-top: 20px;
}

.benefit-icon-water {
  font-size: 36px;
  flex-shrink: 0;
}

.benefit-text-water {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
  margin: 0;
}

.deciduous {
  color: #ff9800;
  font-weight: 600;
}

.humus {
  color: #795548;
  font-weight: 700;
}

.water-retention {
  color: #1976d2;
  font-weight: 700;
}

.comparison-text-water {
  font-size: 17px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 25px;
}

.proper-management {
  background: #e8f5e0;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}

.thinning-delay {
  color: #d9534f;
  font-weight: 700;
}

.undergrowth-loss {
  color: #ff9800;
  font-weight: 600;
}

.water-retention-decline {
  color: #d9534f;
  font-weight: 700;
}

.water-cycle-visual {
  margin-top: 20px;
  padding: 20px;
  background: linear-gradient(135deg, #f5f5f5 0%, #eeeeee 100%);
  border-radius: 15px;
}

/* 追加画像セクション */
.additional-image-section-eco {
  margin-top: 60px;
}

/* フェードインセクション共通 */
.fade-in-section {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in-section.visible {
  opacity: 1;
  transform: translateY(0);
}

/* レスポンシブデザイン */
@media (max-width: 1024px) {
  .feature-grid-biodiversity {
    grid-template-columns: 1fr;
  }
  
  .soil-circles-layout {
    flex-direction: column;
    align-items: center;
  }
  
  .soil-circle-kiri,
  .soil-circle-sugi,
  .soil-circle-walnut {
    max-width: 400px;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .main-title-ecosystem {
    padding: 20px 30px;
  }
  
  .title-line-one {
    font-size: 30px;
  }
  
  .title-line-two {
    font-size: 36px;
  }
  
  .two-column-layout {
    grid-template-columns: 1fr;
  }
  
  .dynamic-header-ecosystem {
    flex-direction: column;
    gap: 20px;
  }
  
  .header-decoration-svg {
    width: 150px;
    height: 45px;
  }
  
  .climate-content-wrapper,
  .soil-content-circular,
  .biodiversity-infographic,
  .water-content-columns {
    padding: 30px 20px;
  }
  
  .subsection-title-climate,
  .subsection-title-soil,
  .subsection-title-biodiversity,
  .subsection-title-water {
    font-size: 28px;
  }
}

@media (max-width: 480px) {
  .ecosystem-container-supreme {
    padding: 0 15px;
  }
  
  .environmental-adaptation-ecosystem-premium2025 {
    padding: 60px 0;
  }
  
  .title-line-one {
    font-size: 26px;
  }
  
  .title-line-two {
    font-size: 30px;
  }
  
  .intro-text-ecosystem {
    font-size: 18px;
  }
  
  .section-badge-climate,
  .section-badge-soil,
  .section-badge-biodiversity,
  .section-badge-water {
    padding: 12px 25px;
  }
  
  .badge-number {
    font-size: 20px;
  }
  
  .badge-text {
    font-size: 16px;
  }
  
  .bio-feature-card {
    padding: 25px;
  }
  
  .feature-icon-bio {
    font-size: 36px;
  }
  
  .comparison-alert {
    flex-direction: column;
    text-align: center;
  }
}

/* ============================================
   京都皇帝早生桐 - 木材としての利用価値とCO₂固定
   プレミアムデザイン - 完全版
   ============================================ */

/* メインセクション */
.timber-co2-fixation-supreme2025 {
  width: 100%;
  background: linear-gradient(180deg, #ffffff 0%, #fafafa 50%, #f7f7f7 100%);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}

.timber-co2-fixation-supreme2025::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: 
    radial-gradient(circle at 20% 30%, rgba(74, 124, 89, 0.04) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(143, 200, 102, 0.04) 0%, transparent 50%);
  pointer-events: none;
}

.timber-master-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 1;
}

/* ダイナミックヘッダー */
.dynamic-header-timber-co2 {
  position: relative;
  text-align: center;
  margin-bottom: 80px;
  padding: 60px 0;
}

.parallax-bg-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(74, 124, 89, 0.03) 0%, rgba(143, 200, 102, 0.03) 100%);
  transform: translateZ(-1px) scale(1.1);
  z-index: -1;
}

.main-title-timber-co2 {
  font-size: 48px;
  font-weight: 300;
  letter-spacing: 2px;
  position: relative;
  display: inline-block;
  padding: 30px 60px;
  background: white;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.title-timber-part {
  display: block;
  font-size: 38px;
  color: #333;
  margin-bottom: 10px;
  font-weight: 400;
}

.title-co2-part {
  display: block;
  font-size: 52px;
  font-weight: 700;
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 50%, #8fc866 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.title-decoration-line {
  width: 100px;
  height: 4px;
  background: linear-gradient(90deg, #8fc866 0%, #4a7c59 50%, #8fc866 100%);
  margin: 30px auto 0;
  border-radius: 2px;
  animation: slideWidth 3s ease-in-out infinite;
}

@keyframes slideWidth {
  0%, 100% { width: 100px; }
  50% { width: 150px; }
}

/* 導入セクション */
.introduction-timber-section {
  margin-bottom: 80px;
}

.intro-content-wrapper-timber {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px;
  background: white;
  border-radius: 20px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06);
  border-left: 5px solid #4a7c59;
}

.intro-paragraph-timber {
  font-size: 19px;
  line-height: 2;
  color: #444;
  text-align: center;
}

.co2-fixation-keyword {
  color: #2c5530;
  font-weight: 700;
  font-size: 20px;
}

.timber-usage-keyword {
  background: linear-gradient(180deg, transparent 60%, rgba(143, 200, 102, 0.3) 60%);
  padding: 2px 6px;
  font-weight: 600;
}

.long-term-products {
  color: #4a7c59;
  font-weight: 600;
}

.carbon-continues-fixed {
  color: #2c5530;
  font-weight: 700;
  font-size: 20px;
  border-bottom: 3px solid #8fc866;
  padding-bottom: 2px;
}

/* ジグザグレイアウトセクション */
.durability-usage-zigzag-section {
  margin-bottom: 100px;
  position: relative;
}

.section-badge-durability,
.section-badge-efficiency,
.section-badge-cascade,
.section-badge-reforestation {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  padding: 15px 35px;
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 100%);
  color: white;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(44, 85, 48, 0.25);
  margin-bottom: 50px;
  position: relative;
  overflow: hidden;
}

.section-badge-durability::before,
.section-badge-efficiency::before,
.section-badge-cascade::before,
.section-badge-reforestation::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  animation: shine 3s ease-in-out infinite;
}

@keyframes shine {
  0% { left: -100%; }
  100% { left: 100%; }
}

.badge-num-timber {
  font-size: 24px;
  font-weight: 700;
}

.badge-label-timber {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1px;
}

.zigzag-content-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.zigzag-block-left,
.zigzag-block-right {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-bottom: 40px;
  padding: 30px;
  background: linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%);
  border-radius: 20px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.zigzag-block-left {
  flex-direction: row;
  margin-right: 50px;
}

.zigzag-block-right {
  flex-direction: row-reverse;
  margin-left: 50px;
}

.zigzag-block-left:hover,
.zigzag-block-right:hover {
  transform: translateY(-5px);
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.12);
}

.species-icon-wrapper {
  width: 100px;
  height: 100px;
  background: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}

.species-icon-kiri,
.species-icon-sugi,
.species-icon-hinoki,
.species-icon-walnut {
  font-size: 48px;
}

.species-title-zigzag {
  font-size: 26px;
  font-weight: 700;
  color: #2c5530;
  margin-bottom: 20px;
}

.species-subtitle-zigzag {
  font-size: 22px;
  font-weight: 600;
  color: #4a7c59;
  margin-bottom: 15px;
}

.species-description-zigzag {
  font-size: 17px;
  line-height: 1.9;
  color: #555;
}

.lightweight-property {
  color: #4a7c59;
  font-weight: 700;
}

.dimensional-stability {
  background: #f0f7ed;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
}

.furniture-use {
  color: #8b7355;
  font-weight: 600;
}

.instrument-use {
  color: #d4a574;
  font-weight: 600;
}

.footwear-use {
  color: #a0826d;
  font-weight: 600;
}

.usage-duration {
  color: #2c5530;
  font-weight: 700;
  font-size: 18px;
}

.carbon-fixation-continues {
  color: #2c5530;
  font-weight: 700;
  background: linear-gradient(180deg, transparent 60%, rgba(143, 200, 102, 0.3) 60%);
  padding: 2px 4px;
}

.construction-material {
  color: #1976d2;
  font-weight: 600;
}

.fixation-period-sugi {
  color: #4a7c59;
  font-weight: 700;
}

.durability-high {
  color: #2c5530;
  font-weight: 700;
}

.centuries-fixation {
  color: #2c5530;
  font-weight: 700;
  font-size: 18px;
}

.luxury-furniture {
  color: #8b4513;
  font-weight: 600;
}

.long-term-usage {
  color: #4a7c59;
  font-weight: 700;
}

/* 画像プレースホルダー */
.image-placeholder-timber-1,
.image-placeholder-timber-2,
.image-placeholder-timber-3,
.image-placeholder-timber-4,
.image-placeholder-timber-5 {
  width: 100%;
  min-height: 400px;
  background: linear-gradient(135deg, #f8f8f8 0%, #f0f0f0 100%);
  border: 3px dashed #ddd;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 40px 0;
  position: relative;
  overflow: hidden;
}

.image-placeholder-timber-1::before,
.image-placeholder-timber-2::before,
.image-placeholder-timber-3::before,
.image-placeholder-timber-4::before,
.image-placeholder-timber-5::before {
  content: '🖼️';
  position: absolute;
  font-size: 80px;
  opacity: 0.08;
  animation: float 4s ease-in-out infinite;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}

.image-instruction-timber {
  text-align: center;
  padding: 40px;
  z-index: 1;
  position: relative;
}

.image-title-timber {
  font-size: 20px;
  font-weight: 700;
  color: #4a7c59;
  margin-bottom: 15px;
}

.image-desc-timber {
  font-size: 16px;
  color: #666;
  line-height: 1.8;
  max-width: 600px;
  margin: 0 auto;
}

/* 炭素固定効率セクション */
.carbon-fixation-efficiency-section {
  margin-bottom: 100px;
}

.efficiency-infographic-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.subsection-title-efficiency,
.subsection-title-cascade,
.subsection-title-reforestation {
  font-size: 32px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 30px;
  text-align: center;
  position: relative;
  padding-bottom: 20px;
}

.subsection-title-efficiency::after,
.subsection-title-cascade::after,
.subsection-title-reforestation::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, transparent, #8fc866, transparent);
}

.efficiency-description {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 40px;
  text-align: center;
}

.density-factor {
  color: #666;
  font-weight: 600;
}

.mass-production {
  color: #4a7c59;
  font-weight: 700;
}

.time-efficiency {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
}

/* 生産量比較グラフィック */
.production-comparison-graphic {
  background: linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%);
  border-radius: 20px;
  padding: 40px;
  margin: 30px 0;
}

.graphic-title {
  font-size: 22px;
  font-weight: 700;
  color: #2c5530;
  text-align: center;
  margin-bottom: 40px;
}

.production-bars-container {
  margin-bottom: 30px;
}

.production-item-kiri,
.production-item-other {
  margin-bottom: 30px;
}

.production-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.species-name-production {
  font-size: 18px;
  font-weight: 600;
  color: #333;
}

.production-bar-wrapper {
  height: 50px;
  background: #e0e0e0;
  border-radius: 25px;
  position: relative;
  overflow: hidden;
}

.production-bar-kiri,
.production-bar-sugi,
.production-bar-hinoki,
.production-bar-walnut {
  height: 100%;
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 0;
}

@keyframes growWidth {
  from { width: 0; }
}

.production-bar-kiri {
  background: linear-gradient(90deg, #4a7c59 0%, #8fc866 100%);
}

.production-bar-sugi {
  background: linear-gradient(90deg, #7a9d8a 0%, #94b8a3 100%);
}

.production-bar-hinoki {
  background: linear-gradient(90deg, #8daaa0 0%, #a8c5b9 100%);
}

.production-bar-walnut {
  background: linear-gradient(90deg, #8b7355 0%, #a08870 100%);
}

.volume-text {
  color: white;
  font-weight: 700;
  font-size: 16px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.production-details {
  background: white;
  border-radius: 15px;
  padding: 20px;
  margin-top: 15px;
  border-left: 4px solid #4a7c59;
}

.detail-text {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
}

.volume-highlight {
  color: #4a7c59;
  font-weight: 700;
  font-size: 18px;
}

.dry-weight {
  background: #f5f0e6;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
}

.carbon-amount {
  color: #2c5530;
  font-weight: 700;
  font-size: 18px;
}

.co2-equivalent {
  color: #ff9800;
  font-weight: 600;
}

.comparison-conclusion {
  font-size: 17px;
  line-height: 1.8;
  color: #555;
  padding: 20px;
  background: white;
  border-radius: 15px;
  margin-top: 20px;
}

.volume-data {
  color: #666;
  font-weight: 600;
}

/* カスケード利用セクション */
.cascade-utilization-section {
  margin-bottom: 100px;
}

.cascade-flow-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.cascade-description {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 40px;
  text-align: center;
}

.cascade-concept {
  color: #2c5530;
  font-weight: 700;
  font-size: 20px;
}

.high-value {
  color: #4a7c59;
  font-weight: 600;
}

.recycle-process {
  background: #e8f5e0;
  padding: 2px 10px;
  border-radius: 5px;
  font-weight: 600;
}

/* カスケードフロー図 */
.cascade-flow-diagram {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  padding: 40px;
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  border-radius: 20px;
  margin: 40px 0;
}

.flow-step {
  flex: 1;
  background: white;
  border-radius: 20px;
  padding: 30px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
}

.flow-step:hover {
  transform: translateY(-10px) scale(1.05);
  box-shadow: 0 20px 50px rgba(74, 124, 89, 0.15);
}

.step-number {
  position: absolute;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
  background: #4a7c59;
  color: white;
  padding: 5px 15px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 700;
}

.step-icon {
  font-size: 48px;
  margin-bottom: 20px;
}

.step-title {
  font-size: 18px;
  font-weight: 700;
  color: #2c5530;
  margin-bottom: 10px;
}

.step-text {
  font-size: 15px;
  color: #666;
  line-height: 1.6;
}

.flow-arrow {
  font-size: 36px;
  color: #8fc866;
  font-weight: bold;
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.2); }
}

.cascade-kiri-text {
  font-size: 17px;
  line-height: 1.8;
  color: #555;
  padding: 25px;
  background: #fafafa;
  border-radius: 15px;
  border-left: 4px solid #8fc866;
}

.initial-use {
  color: #8b7355;
  font-weight: 600;
}

.secondary-use {
  color: #666;
  font-weight: 600;
}

.final-use {
  color: #ff9800;
  font-weight: 600;
}

.carbon-period-extension {
  color: #2c5530;
  font-weight: 700;
  font-size: 18px;
}

/* 再造林セクション */
.reforestation-sustainable-section {
  margin-bottom: 100px;
}

.reforestation-content-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.reforestation-description {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 40px;
}

.sustainable-absorption {
  color: #2c5530;
  font-weight: 700;
  font-size: 19px;
}

.sprouting {
  background: #f0f7ed;
  padding: 2px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #4a7c59;
}

.labor-reduction {
  color: #4a7c59;
  font-weight: 700;
}

.new-planting {
  color: #666;
  font-weight: 600;
}

/* 比較テーブル */
.comparison-table-wrapper {
  overflow-x: auto;
  margin: 40px 0;
}

.reforestation-comparison-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.reforestation-comparison-table thead {
  background: linear-gradient(135deg, #4a7c59 0%, #6fa750 100%);
}

.reforestation-comparison-table th {
  padding: 20px;
  color: white;
  font-weight: 600;
  text-align: left;
  font-size: 16px;
}

.reforestation-comparison-table tbody tr {
  border-bottom: 1px solid #e0e0e0;
  transition: background-color 0.3s ease;
}

.reforestation-comparison-table tbody tr:hover {
  background: #fafafa;
}

.highlight-row-kiri-table {
  background: linear-gradient(90deg, #f0f7ed 0%, #e8f5e0 100%);
}

.reforestation-comparison-table td {
  padding: 20px;
  font-size: 16px;
  color: #555;
}

.ability-high {
  color: #4caf50;
  font-weight: 700;
}

.ability-low {
  color: #f44336;
  font-weight: 700;
}

.cost-advantage {
  color: #4a7c59;
  font-weight: 700;
  font-size: 17px;
}

.conclusion-text {
  font-size: 17px;
  line-height: 1.8;
  color: #555;
  padding: 25px;
  background: linear-gradient(135deg, #fff5f5 0%, #ffebee 100%);
  border-radius: 15px;
  border-left: 4px solid #d9534f;
  margin-top: 30px;
}

.low-sprouting {
  color: #d9534f;
  font-weight: 600;
}

.replanting-required {
  color: #d9534f;
  font-weight: 700;
}

.cost-benefit {
  color: #4a7c59;
  font-weight: 700;
  font-size: 18px;
}

/* 追加画像セクション */
.additional-image-timber-section {
  margin-top: 60px;
}

/* レスポンシブデザイン */
@media (max-width: 1024px) {
  .cascade-flow-diagram {
    flex-direction: column;
  }
  
  .flow-arrow {
    transform: rotate(90deg);
  }
}

@media (max-width: 768px) {
  .main-title-timber-co2 {
    font-size: 36px;
    padding: 20px 30px;
  }
  
  .title-timber-part {
    font-size: 30px;
  }
  
  .title-co2-part {
    font-size: 40px;
  }
  
  .zigzag-block-left,
  .zigzag-block-right {
    flex-direction: column;
    margin: 0 0 30px 0;
  }
  
  .production-bar-wrapper {
    height: 40px;
  }
  
  .reforestation-comparison-table {
    font-size: 14px;
  }
  
  .reforestation-comparison-table th,
  .reforestation-comparison-table td {
    padding: 15px 10px;
  }
}

@media (max-width: 480px) {
  .timber-master-container {
    padding: 0 15px;
  }
  
  .timber-co2-fixation-supreme2025 {
    padding: 60px 0;
  }
  
  .main-title-timber-co2 {
    font-size: 28px;
  }
  
  .title-timber-part {
    font-size: 24px;
  }
  
  .title-co2-part {
    font-size: 32px;
  }
  
  .zigzag-content-wrapper,
  .efficiency-infographic-wrapper,
  .cascade-flow-wrapper,
  .reforestation-content-wrapper {
    padding: 30px 20px;
  }
  
  .subsection-title-efficiency,
  .subsection-title-cascade,
  .subsection-title-reforestation {
    font-size: 26px;
  }
  
  .flow-step {
    padding: 20px;
  }
  
  .step-icon {
    font-size: 36px;
  }
}


/* ============================================
   京都皇帝早生桐 - 経済性とCO₂吸収のバランス
   究極のプレミアムデザイン - レスポンシブ完全対応
   ============================================ */

/* メインセクション */
.economy-co2-balance-ultimate2025 {
  width: 100%;
  background: linear-gradient(180deg, #ffffff 0%, #fafcfa 50%, #f7faf7 100%);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}

.economy-co2-balance-ultimate2025::before {
  content: '';
  position: absolute;
  top: -200px;
  right: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(74, 124, 89, 0.03) 0%, transparent 60%);
  animation: rotateGradient 30s linear infinite;
}

.economy-co2-balance-ultimate2025::after {
  content: '';
  position: absolute;
  bottom: -200px;
  left: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(143, 200, 102, 0.03) 0%, transparent 60%);
  animation: rotateGradient 30s linear infinite reverse;
}

@keyframes rotateGradient {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.economy-supreme-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 1;
}

/* ダイナミックヘッダー */
.dynamic-header-economy-co2 {
  position: relative;
  text-align: center;
  margin-bottom: 80px;
  padding: 40px 0;
}

.wave-decoration-top,
.wave-decoration-bottom {
  position: absolute;
  width: 100%;
  height: 60px;
  left: 0;
}

.wave-decoration-top {
  top: 0;
  animation: waveMove 6s ease-in-out infinite;
}

.wave-decoration-bottom {
  bottom: 0;
  animation: waveMove 6s ease-in-out infinite reverse;
}

@keyframes waveMove {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-20px); }
}

.main-title-economy-balance {
  position: relative;
  display: inline-block;
  padding: 40px 80px;
  background: white;
  border-radius: 25px;
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.08);
  z-index: 2;
}

.main-title-economy-balance::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(135deg, #4a7c59, #8fc866, #4a7c59);
  border-radius: 25px;
  z-index: -1;
  opacity: 0.3;
  animation: shimmerBorder 4s ease-in-out infinite;
}

@keyframes shimmerBorder {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.6; }
}

.title-economy-part {
  display: block;
  font-size: 36px;
  font-weight: 400;
  color: #333;
  margin-bottom: 8px;
  letter-spacing: 2px;
}

.title-co2-part {
  display: block;
  font-size: 48px;
  font-weight: 700;
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 50%, #8fc866 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 1px;
}

/* 導入セクション */
.introduction-economy-section {
  margin-bottom: 80px;
}

.intro-premium-wrapper {
  max-width: 900px;
  margin: 0 auto;
  padding: 45px;
  background: linear-gradient(135deg, #ffffff 0%, #fafcfa 100%);
  border-radius: 20px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06);
  border-left: 5px solid transparent;
  background-image: 
    linear-gradient(135deg, #ffffff 0%, #fafcfa 100%),
    linear-gradient(180deg, #4a7c59, #8fc866);
  background-origin: padding-box, border-box;
  background-clip: padding-box, border-box;
  position: relative;
}

.intro-text-economy {
  font-size: 19px;
  line-height: 2;
  color: #444;
  text-align: center;
}

.environmental-aspect {
  color: #4a7c59;
  font-weight: 600;
}

.economic-aspect {
  color: #2c5530;
  font-weight: 700;
  font-size: 20px;
}

.co2-economy-balance {
  background: linear-gradient(180deg, transparent 60%, rgba(143, 200, 102, 0.2) 60%);
  padding: 2px 6px;
  font-weight: 700;
  color: #2c5530;
}

.kiri-advantage {
  color: #4a7c59;
  font-weight: 600;
}

/* セクションインジケーター共通 */
.section-indicator-cost,
.section-indicator-labor,
.section-indicator-credit,
.section-indicator-regional {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  padding: 18px 40px;
  background: linear-gradient(135deg, #2c5530 0%, #4a7c59 100%);
  color: white;
  border-radius: 50px;
  box-shadow: 0 12px 35px rgba(44, 85, 48, 0.25);
  margin-bottom: 50px;
  position: relative;
  overflow: hidden;
}

.section-indicator-cost::before,
.section-indicator-labor::before,
.section-indicator-credit::before,
.section-indicator-regional::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  animation: slideShine 4s ease-in-out infinite;
}

@keyframes slideShine {
  0% { left: -100%; }
  100% { left: 100%; }
}

.indicator-num-economy {
  font-size: 26px;
  font-weight: 700;
}

.indicator-text-economy {
  font-size: 19px;
  font-weight: 500;
  letter-spacing: 1px;
}

/* アコーディオンレイアウト */
.cultivation-cost-revenue-section {
  margin-bottom: 100px;
}

.fade-section {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-section.visible {
  opacity: 1;
  transform: translateY(0);
}

.accordion-layout-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.subsection-title-cultivation,
.subsection-title-labor,
.subsection-title-credit,
.subsection-title-regional {
  font-size: 34px;
  font-weight: 600;
  color: #2c5530;
  margin-bottom: 40px;
  text-align: center;
  position: relative;
}

.subsection-title-cultivation::after,
.subsection-title-labor::after,
.subsection-title-credit::after,
.subsection-title-regional::after {
  content: '';
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 4px;
  background: linear-gradient(90deg, transparent, #8fc866, transparent);
  border-radius: 2px;
}

.accordion-item-kiri,
.accordion-item-sugi,
.accordion-item-walnut {
  margin-bottom: 20px;
  border-radius: 15px;
  overflow: hidden;
  transition: all 0.3s ease;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.06);
}

.accordion-item-kiri {
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
}

.accordion-item-sugi {
  background: linear-gradient(135deg, #f5f5f5 0%, #eeeeee 100%);
}

.accordion-item-walnut {
  background: linear-gradient(135deg, #faf5f0 0%, #f5ebe0 100%);
}

.accordion-header-kiri,
.accordion-header-sugi,
.accordion-header-walnut {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 25px 30px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  position: relative;
}

.accordion-header-kiri:hover,
.accordion-header-sugi:hover,
.accordion-header-walnut:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

.header-icon-wrapper {
  width: 60px;
  height: 60px;
  background: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.species-icon-economy {
  font-size: 32px;
}

.header-content {
  flex: 1;
}

.species-name-economy {
  font-size: 22px;
  font-weight: 700;
  color: #2c5530;
  margin-bottom: 5px;
}

.cultivation-period {
  font-size: 15px;
  color: #666;
}

.advantage-badge {
  position: absolute;
  top: 15px;
  right: 20px;
  background: #ffeb3b;
  color: #2c5530;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 3px 10px rgba(255, 235, 59, 0.3);
}

.accordion-body-kiri,
.accordion-body-sugi,
.accordion-body-walnut {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s ease;
  padding: 0 30px;
}

.accordion-item-kiri.active .accordion-body-kiri,
.accordion-item-sugi.active .accordion-body-sugi,
.accordion-item-walnut.active .accordion-body-walnut {
  max-height: 500px;
  padding: 0 30px 25px;
}

.accordion-text {
  font-size: 17px;
  line-height: 1.9;
  color: #555;
  margin-bottom: 20px;
}

.fast-growth {
  color: #4a7c59;
  font-weight: 700;
}

.short-period {
  background: #fff;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
}

.quick-return {
  color: #2c5530;
  font-weight: 700;
  font-size: 18px;
}

.period-years {
  color: #4a7c59;
  font-weight: 600;
}

.low-risk {
  color: #4caf50;
  font-weight: 700;
}

.economic-metrics {
  display: flex;
  gap: 30px;
  padding: 20px;
  background: white;
  border-radius: 12px;
}

.metric-item {
  flex: 1;
  text-align: center;
}

.metric-label {
  display: block;
  font-size: 14px;
  color: #666;
  margin-bottom: 8px;
}

.metric-value {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: #2c5530;
}

.low-risk-indicator {
  color: #4caf50;
}

.long-period {
  color: #ff9800;
  font-weight: 600;
}

.maintenance-cost {
  color: #d9534f;
  font-weight: 700;
}

.cost-details {
  color: #666;
  font-style: italic;
}

.extremely-long {
  color: #d9534f;
  font-weight: 700;
  font-size: 18px;
}

/* 画像プレースホルダー */
.image-placeholder-economy-1,
.image-placeholder-economy-2,
.image-placeholder-economy-3,
.image-placeholder-economy-4,
.image-placeholder-economy-5 {
  width: 100%;
  min-height: 400px;
  background: linear-gradient(135deg, #f9f9f9 0%, #f3f3f3 100%);
  border: 3px dashed #ddd;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 40px 0;
  position: relative;
  overflow: hidden;
}

.image-placeholder-economy-1::before,
.image-placeholder-economy-2::before,
.image-placeholder-economy-3::before,
.image-placeholder-economy-4::before,
.image-placeholder-economy-5::before {
  content: '📈';
  position: absolute;
  font-size: 100px;
  opacity: 0.05;
  animation: floatIcon 5s ease-in-out infinite;
}

@keyframes floatIcon {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-20px) rotate(10deg); }
}

.image-instruction-economy {
  text-align: center;
  padding: 40px;
  z-index: 1;
  position: relative;
}

.image-title-economy {
  font-size: 20px;
  font-weight: 700;
  color: #4a7c59;
  margin-bottom: 15px;
}

.image-desc-economy {
  font-size: 16px;
  color: #666;
  line-height: 1.8;
  max-width: 600px;
  margin: 0 auto;
}

/* 労働投入量マトリックス */
.labor-input-comparison-section {
  margin-bottom: 100px;
}

.matrix-layout-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.labor-description {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 40px;
  text-align: center;
}

.kiri-efficiency {
  color: #4a7c59;
  font-weight: 700;
  font-size: 19px;
}

.less-maintenance {
  background: #f0f7ed;
  padding: 2px 10px;
  border-radius: 5px;
  font-weight: 600;
}

.no-thinning {
  color: #4caf50;
  font-weight: 700;
}

.labor-matrix-grid {
  background: #fafafa;
  border-radius: 15px;
  padding: 30px;
  margin: 30px 0;
  overflow-x: auto;
}

.matrix-header,
.matrix-row {
  display: grid;
  grid-template-columns: 180px repeat(4, 1fr);
  gap: 15px;
  align-items: center;
}

.matrix-header {
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 2px solid #e0e0e0;
}

.matrix-cell {
  padding: 15px;
  text-align: center;
  font-size: 16px;
}

.header-cell {
  font-weight: 700;
  color: #2c5530;
}

.species-cell {
  text-align: left;
  font-weight: 600;
  color: #333;
  display: flex;
  align-items: center;
  gap: 10px;
}

.species-icon-small {
  font-size: 24px;
}

.data-cell {
  background: white;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.labor-level-low {
  color: #4caf50;
  font-weight: 700;
}

.labor-level-none {
  color: #2196f3;
  font-weight: 700;
}

.labor-level-medium {
  color: #ff9800;
  font-weight: 600;
}

.labor-level-high {
  color: #f44336;
  font-weight: 700;
}

.rating-cell {
  font-size: 20px;
}

.rating-excellent {
  color: #ffc107;
}

.rating-moderate {
  color: #ccc;
}

.kiri-row {
  background: linear-gradient(90deg, rgba(143, 200, 102, 0.1) 0%, transparent 100%);
  border-radius: 10px;
  padding: 10px 0;
}

.conclusion-text-labor {
  font-size: 17px;
  line-height: 1.8;
  color: #555;
  padding: 25px;
  background: #fff5f5;
  border-left: 4px solid #d9534f;
  border-radius: 8px;
  margin-top: 30px;
}

.regular-thinning {
  color: #d9534f;
  font-weight: 600;
}

.major-cost {
  color: #d9534f;
  font-weight: 700;
  font-size: 18px;
}

/* CO₂クレジットシミュレーション */
.co2-credit-potential-section {
  margin-bottom: 100px;
}

.simulation-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.credit-description {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 40px;
  text-align: center;
}

.co2-absorption {
  background: #e3f2fd;
  padding: 2px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #1976d2;
}

.massive-absorption {
  color: #4a7c59;
  font-weight: 700;
  font-size: 19px;
}

.credit-advantage {
  color: #2c5530;
  font-weight: 700;
}

.simulation-calculator {
  background: linear-gradient(135deg, #f0f7ed 0%, #e8f5e0 100%);
  border-radius: 20px;
  padding: 40px;
  margin: 30px 0;
}

.calculation-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-bottom: 40px;
}

.calc-icon {
  font-size: 36px;
}

.calc-title {
  font-size: 24px;
  font-weight: 700;
  color: #2c5530;
}

.calculation-steps {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
}

.calc-step {
  width: 100%;
  max-width: 600px;
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.calc-step:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(74, 124, 89, 0.15);
}

.step-label {
  font-size: 14px;
  color: #666;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 15px;
}

.step-text {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
  margin-bottom: 15px;
}

.absorption-amount {
  color: #4a7c59;
  font-weight: 700;
  font-size: 18px;
}

.annual-amount {
  color: #2c5530;
  font-weight: 700;
  font-size: 18px;
}

.credit-price {
  background: #fff3e0;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
  color: #e65100;
}

.annual-revenue {
  color: #2c5530;
  font-weight: 700;
  font-size: 20px;
}

.step-value {
  text-align: center;
  padding: 20px;
  background: #f5f5f5;
  border-radius: 10px;
  margin-top: 15px;
}

.value-number {
  font-size: 32px;
  font-weight: 700;
  color: #2c5530;
  display: block;
}

.value-unit {
  font-size: 16px;
  color: #666;
  margin-top: 5px;
  display: block;
}

.revenue-value {
  background: linear-gradient(135deg, #fff9c4 0%, #fff59d 100%);
}

.calc-arrow {
  font-size: 30px;
  color: #8fc866;
  margin: 10px 0;
  animation: bounceArrow 2s ease-in-out infinite;
}

@keyframes bounceArrow {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(10px); }
}

.calculation-note {
  margin-top: 30px;
  padding: 25px;
  background: white;
  border-radius: 12px;
  border-left: 4px solid #4a7c59;
}

.note-text {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
}

.additional-income {
  color: #ff9800;
  font-weight: 600;
}

.economic-improvement {
  color: #4a7c59;
  font-weight: 700;
}

/* 地域経済への貢献 - サークル型 */
.regional-economy-contribution-section {
  margin-bottom: 100px;
}

.impact-circle-wrapper {
  background: white;
  border-radius: 25px;
  padding: 50px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.regional-description {
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 50px;
  text-align: center;
}

.regular-income {
  color: #4a7c59;
  font-weight: 700;
  font-size: 19px;
}

.income-irregularity {
  background: #fff5f5;
  padding: 2px 10px;
  border-radius: 5px;
  font-weight: 600;
  color: #d9534f;
}

.sustainable-management {
  color: #2c5530;
  font-weight: 700;
}

.regional-revitalization {
  color: #4a7c59;
  font-weight: 700;
}

.impact-circles-container {
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 600px;
  margin: 0 auto;
}

.center-circle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 150px;
  height: 150px;
  background: linear-gradient(135deg, #4a7c59 0%, #8fc866 100%);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: white;
  box-shadow: 0 15px 40px rgba(74, 124, 89, 0.3);
  z-index: 2;
}

.center-icon {
  font-size: 48px;
  margin-bottom: 10px;
}

.center-text {
  font-size: 14px;
  font-weight: 700;
  text-align: center;
}

.impact-circle {
  position: absolute;
  width: 140px;
  height: 140px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(0);
  transition: all 0.5s ease;
}

.impact-circle.animate-in {
  opacity: 1;
  transform: scale(1);
}

.circle-1 {
  top: 50px;
  left: 50%;
  transform: translateX(-50%);
}

.circle-2 {
  top: 50%;
  right: 50px;
  transform: translateY(-50%);
}

.circle-3 {
  bottom: 50px;
  left: 50%;
  transform: translateX(-50%);
}

.circle-4 {
  top: 50%;
  left: 50px;
  transform: translateY(-50%);
}

.circle-content {
  text-align: center;
  padding: 15px;
}

.impact-icon {
  font-size: 32px;
  display: block;
  margin-bottom: 8px;
}

.impact-label {
  font-size: 14px;
  font-weight: 700;
  color: #2c5530;
  display: block;
  margin-bottom: 4px;
}

.impact-desc {
  font-size: 12px;
  color: #666;
}

/* 追加画像セクション */
.additional-image-economy-section {
  margin-top: 60px;
}

/* レスポンシブデザイン - 完全対応 */
@media (max-width: 1200px) {
  .economy-supreme-container {
    max-width: 1024px;
  }
}

@media (max-width: 1024px) {
  .main-title-economy-balance {
    padding: 30px 50px;
  }
  
  .impact-circles-container {
    height: 500px;
    max-width: 500px;
  }
  
  .center-circle {
    width: 120px;
    height: 120px;
  }
  
  .impact-circle {
    width: 110px;
    height: 110px;
  }
}

@media (max-width: 768px) {
  .economy-co2-balance-ultimate2025 {
    padding: 60px 0;
  }
  
  .main-title-economy-balance {
    padding: 25px 40px;
  }
  
  .title-economy-part {
    font-size: 28px;
  }
  
  .title-co2-part {
    font-size: 36px;
  }
  
  .intro-premium-wrapper {
    padding: 30px;
  }
  
  .accordion-layout-wrapper,
  .matrix-layout-wrapper,
  .simulation-wrapper,
  .impact-circle-wrapper {
    padding: 30px;
  }
  
  .subsection-title-cultivation,
  .subsection-title-labor,
  .subsection-title-credit,
  .subsection-title-regional {
    font-size: 28px;
  }
  
  .matrix-header,
  .matrix-row {
    grid-template-columns: 150px repeat(4, 80px);
    font-size: 14px;
  }
  
  .calculation-steps {
    gap: 15px;
  }
  
  .calc-step {
    padding: 20px;
  }
  
  .value-number {
    font-size: 26px;
  }
  
  .impact-circles-container {
    height: 400px;
    max-width: 400px;
  }
  
  .circle-1 { top: 20px; }
  .circle-2 { right: 20px; }
  .circle-3 { bottom: 20px; }
  .circle-4 { left: 20px; }
}

@media (max-width: 600px) {
  .matrix-header,
  .matrix-row {
    display: block;
  }
  
  .matrix-cell {
    display: flex;
    justify-content: space-between;
    padding: 10px;
    border-bottom: 1px solid #e0e0e0;
  }
  
  .matrix-cell::before {
    content: attr(data-label);
    font-weight: 600;
    color: #666;
  }
  
  .header-cell {
    display: none;
  }
}

@media (max-width: 480px) {
  .economy-supreme-container {
    padding: 0 15px;
  }
  
  .dynamic-header-economy-co2 {
    padding: 20px 0;
    margin-bottom: 50px;
  }
  
  .main-title-economy-balance {
    padding: 20px 25px;
    border-radius: 15px;
  }
  
  .title-economy-part {
    font-size: 24px;
  }
  
  .title-co2-part {
    font-size: 30px;
  }
  
  .wave-decoration-top,
  .wave-decoration-bottom {
    height: 40px;
  }
  
  .intro-text-economy {
    font-size: 17px;
  }
  
  .section-indicator-cost,
  .section-indicator-labor,
  .section-indicator-credit,
  .section-indicator-regional {
    padding: 12px 25px;
    gap: 10px;
  }
  
  .indicator-num-economy {
    font-size: 20px;
  }
  
  .indicator-text-economy {
    font-size: 16px;
  }
  
  .accordion-layout-wrapper,
  .matrix-layout-wrapper,
  .simulation-wrapper,
  .impact-circle-wrapper {
    padding: 20px;
    border-radius: 15px;
  }
  
  .subsection-title-cultivation,
  .subsection-title-labor,
  .subsection-title-credit,
  .subsection-title-regional {
    font-size: 24px;
    margin-bottom: 25px;
  }
  
  .accordion-header-kiri,
  .accordion-header-sugi,
  .accordion-header-walnut {
    padding: 20px;
  }
  
  .header-icon-wrapper {
    width: 45px;
    height: 45px;
  }
  
  .species-icon-economy {
    font-size: 24px;
  }
  
  .species-name-economy {
    font-size: 18px;
  }
  
  .cultivation-period {
    font-size: 13px;
  }
  
  .advantage-badge {
    position: static;
    margin-top: 10px;
    display: inline-block;
  }
  
  .economic-metrics {
    flex-direction: column;
    gap: 15px;
  }
  
  .labor-matrix-grid {
    padding: 15px;
  }
  
  .simulation-calculator {
    padding: 25px;
  }
  
  .calc-title {
    font-size: 20px;
  }
  
  .calc-step {
    padding: 20px;
  }
  
  .value-number {
    font-size: 22px;
  }
  
  .impact-circles-container {
    height: 350px;
    max-width: 350px;
  }
  
  .center-circle {
    width: 100px;
    height: 100px;
  }
  
  .center-icon {
    font-size: 36px;
  }
  
  .center-text {
    font-size: 12px;
  }
  
  .impact-circle {
    width: 90px;
    height: 90px;
  }
  
  .circle-content {
    padding: 10px;
  }
  
  .impact-icon {
    font-size: 24px;
  }
  
  .impact-label {
    font-size: 12px;
  }
  
  .impact-desc {
    font-size: 10px;
  }
  
  .image-placeholder-economy-1,
  .image-placeholder-economy-2,
  .image-placeholder-economy-3,
  .image-placeholder-economy-4,
  .image-placeholder-economy-5 {
    min-height: 300px;
    border-radius: 15px;
  }
  
  .image-title-economy {
    font-size: 18px;
  }
  
  .image-desc-economy {
    font-size: 14px;
  }
}

@media (max-width: 360px) {
  .main-title-economy-balance {
    padding: 15px 20px;
  }
  
  .title-economy-part {
    font-size: 20px;
  }
  
  .title-co2-part {
    font-size: 26px;
  }
  
  .subsection-title-cultivation,
  .subsection-title-labor,
  .subsection-title-credit,
  .subsection-title-regional {
    font-size: 20px;
  }
}



/* ===================================
   京都皇帝早生桐 特設ページ
   将来の気候変動下でのCO₂吸収能力の予測
   カスタムCSS - 2025年最新SEO対応
   =================================== */

/* ベース設定 */
.climate-co2-prediction-section {
  font-family: 'Noto Sans JP', 'Hiragino Sans', 'メイリオ', sans-serif;
  line-height: 1.8;
  color: #2c3e50;
  background: linear-gradient(180deg, #f8fafb 0%, #ffffff 100%);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

.climate-co2-prediction-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #2e7d32, #66bb6a, #a5d6a7);
  animation: gradientShift 8s ease infinite;
}

@keyframes gradientShift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

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

/* メインタイトル */
.section-header-wrapper {
  text-align: center;
  margin-bottom: 60px;
  animation: fadeInUp 0.8s ease;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.main-section-title {
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  color: #1a4d2e;
  margin-bottom: 20px;
  line-height: 1.4;
  position: relative;
  padding-bottom: 15px;
}

.main-section-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 4px;
  background: linear-gradient(90deg, #4caf50, #2e7d32);
  border-radius: 2px;
}

.title-accent {
  display: block;
  font-size: 0.85em;
  color: #616161;
  font-weight: 500;
  margin-bottom: 5px;
}

.title-highlight {
  background: linear-gradient(135deg, #2e7d32, #4caf50);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
}

.section-subtitle {
  font-size: 18px;
  color: #616161;
  max-width: 800px;
  margin: 0 auto;
  line-height: 1.6;
}

/* イントロダクション */
.intro-content-block {
  background: white;
  border-radius: 12px;
  padding: 40px;
  margin-bottom: 50px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  border-left: 5px solid #4caf50;
  animation: fadeInLeft 0.8s ease 0.2s both;
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.lead-paragraph {
  font-size: 17px;
  line-height: 1.9;
  color: #424242;
  margin: 0;
}

.text-emphasis {
  color: #d84315;
  font-weight: 600;
  background: linear-gradient(transparent 60%, #ffe0b2 60%);
  padding: 0 2px;
}

.color-primary {
  color: #2e7d32;
  font-weight: 700;
}

.color-success {
  color: #388e3c;
  font-weight: 600;
}

.color-warning {
  color: #f57c00;
  font-weight: 600;
}

.color-info {
  color: #0288d1;
  font-weight: 600;
}

/* コンテンツセクション */
.content-section {
  margin-bottom: 60px;
  animation: fadeIn 0.8s ease;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.subsection-header {
  margin-bottom: 30px;
}

.subsection-title {
  font-size: 28px;
  color: #1a4d2e;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 20px 0;
  border-bottom: 2px solid #e8f5e9;
  margin-bottom: 30px;
}

.icon-wrapper {
  font-size: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
  border-radius: 50%;
}

/* コンテンツグリッド */
.content-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  margin-bottom: 40px;
}

@media (min-width: 768px) {
  .content-grid {
    grid-template-columns: 2fr 1fr;
  }
}

.paragraph-content {
  font-size: 16px;
  line-height: 1.9;
  color: #424242;
  margin-bottom: 20px;
}

.text-highlight {
  background-color: #fff3e0;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: 600;
  color: #e65100;
}

.underline-emphasis {
  text-decoration: underline;
  text-decoration-color: #4caf50;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* データショーケース */
.data-showcase {
  margin: 30px 0;
}

.data-card {
  background: linear-gradient(135deg, #f1f8e9, #ffffff);
  border-radius: 10px;
  padding: 25px;
  border: 1px solid #c5e1a5;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.data-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(76, 175, 80, 0.15);
}

.data-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 15px;
}

.data-icon {
  font-size: 24px;
}

.data-header h5 {
  margin: 0;
  color: #2e7d32;
  font-size: 18px;
  font-weight: 700;
}

.data-content p {
  margin: 8px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.data-label {
  color: #616161;
  font-weight: 500;
}

.data-value {
  color: #1976d2;
  font-weight: 700;
  font-size: 18px;
}

.data-point {
  color: #d84315;
  font-weight: 700;
  font-size: 1.05em;
}

/* 比較セクション */
.comparison-section {
  margin-top: 50px;
  padding: 40px;
  background: #fafafa;
  border-radius: 12px;
}

.comparison-title {
  font-size: 24px;
  color: #1a4d2e;
  margin-bottom: 30px;
  text-align: center;
  font-weight: 700;
}

.species-comparison-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
}

@media (min-width: 768px) {
  .species-comparison-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.species-card {
  background: white;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: transform 0.3s ease;
}

.species-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.species-header {
  padding: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 10px;
}

.species-header.sugi {
  background: linear-gradient(135deg, #8d6e63, #a1887f);
  color: white;
}

.species-header.hinoki {
  background: linear-gradient(135deg, #6d4c41, #8d6e63);
  color: white;
}

.species-header.walnut {
  background: linear-gradient(135deg, #5d4037, #795548);
  color: white;
}

.species-icon {
  font-size: 24px;
}

.species-header h6 {
  margin: 0;
  font-size: 16px;
}

.species-content {
  padding: 20px;
}

.species-content p {
  font-size: 14px;
  line-height: 1.7;
  color: #424242;
  margin-bottom: 15px;
}

/* リスクインジケーター */
.risk-indicator {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 15px;
}

.risk-label {
  font-size: 13px;
  color: #616161;
  font-weight: 600;
}

.risk-bar {
  flex: 1;
  height: 8px;
  background: #e0e0e0;
  border-radius: 4px;
  overflow: hidden;
}

.risk-fill {
  height: 100%;
  transition: width 1s ease;
}

.risk-bar.high .risk-fill {
  background: linear-gradient(90deg, #ff5252, #d32f2f);
}

.risk-bar.medium .risk-fill {
  background: linear-gradient(90deg, #ffa726, #f57c00);
}

.risk-bar.medium-high .risk-fill {
  background: linear-gradient(90deg, #ff7043, #e64a19);
}

.risk-value {
  font-size: 13px;
  font-weight: 700;
  min-width: 40px;
  text-align: right;
}

/* 研究データブロック */
.research-data-block {
  background: linear-gradient(135deg, #e3f2fd, #ffffff);
  border-radius: 12px;
  padding: 30px;
  margin: 40px 0;
  border: 1px solid #90caf9;
}

.research-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.research-icon {
  font-size: 28px;
}

.research-header h5 {
  margin: 0;
  color: #1565c0;
  font-size: 20px;
  font-weight: 700;
}

.research-content p {
  margin-bottom: 20px;
  line-height: 1.8;
}

.highlight-data {
  background: #ffeb3b;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: 700;
  color: #f57f17;
}

/* データテーブル */
.data-table-wrapper {
  overflow-x: auto;
  margin: 25px 0;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.research-data-table {
  width: 100%;
  border-collapse: collapse;
  background: white;
}

.research-data-table thead {
  background: linear-gradient(135deg, #2e7d32, #388e3c);
  color: white;
}

.research-data-table th {
  padding: 15px;
  text-align: left;
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
}

.research-data-table td {
  padding: 12px 15px;
  border-bottom: 1px solid #e0e0e0;
  font-size: 14px;
}

.research-data-table tbody tr:hover {
  background: #f5f5f5;
}

.value-base {
  color: #616161;
}

.value-low {
  color: #ff6f00;
  font-weight: 600;
}

.value-medium {
  color: #2e7d32;
  font-weight: 600;
}

.value-high {
  color: #1b5e20;
  font-weight: 700;
  background: #e8f5e9;
  border-radius: 3px;
  padding: 2px 6px;
}

.research-note {
  font-size: 14px;
  color: #616161;
  font-style: italic;
  margin-top: 15px;
  padding-left: 20px;
  border-left: 3px solid #90caf9;
}

/* メカニズム説明 */
.mechanism-explanation {
  margin-top: 50px;
  padding: 40px;
  background: #f5f5f5;
  border-radius: 12px;
}

.mechanism-title {
  font-size: 22px;
  color: #1a4d2e;
  margin-bottom: 30px;
  text-align: center;
  font-weight: 700;
}

.mechanism-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 768px) {
  .mechanism-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.mechanism-card {
  background: white;
  padding: 25px;
  border-radius: 10px;
  position: relative;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}

.mechanism-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}

.mechanism-number {
  position: absolute;
  top: -15px;
  left: 20px;
  background: linear-gradient(135deg, #4caf50, #2e7d32);
  color: white;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
}

.mechanism-card h6 {
  margin: 20px 0 15px;
  color: #2e7d32;
  font-size: 16px;
  font-weight: 700;
}

.mechanism-card p {
  font-size: 14px;
  line-height: 1.7;
  color: #424242;
}

/* 詳細比較 */
.detailed-comparison {
  margin-top: 50px;
}

.comparison-subtitle {
  font-size: 22px;
  color: #1a4d2e;
  margin-bottom: 20px;
  font-weight: 700;
}

.comparison-intro {
  font-size: 16px;
  line-height: 1.8;
  color: #424242;
  margin-bottom: 30px;
}

.species-detail-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
}

@media (min-width: 768px) {
  .species-detail-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

.detail-card {
  background: white;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
}

.detail-header {
  background: linear-gradient(135deg, #81c784, #4caf50);
  padding: 15px 20px;
}

.detail-header h6 {
  margin: 0;
  color: white;
  font-size: 18px;
  font-weight: 700;
}

.detail-content {
  padding: 25px;
}

.detail-content p {
  font-size: 15px;
  line-height: 1.8;
  color: #424242;
  margin-bottom: 20px;
}

.detail-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.detail-list li {
  padding: 8px 0;
  border-bottom: 1px solid #e0e0e0;
  font-size: 14px;
  color: #424242;
}

.detail-list li:last-child {
  border-bottom: none;
}

/* レジリエンス分析 */
.resilience-analysis {
  margin-top: 40px;
}

.analysis-title {
  font-size: 22px;
  color: #1a4d2e;
  margin-bottom: 30px;
  font-weight: 700;
}

.resilience-features {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
}

@media (min-width: 768px) {
  .resilience-features {
    grid-template-columns: repeat(3, 1fr);
  }
}

.feature-card {
  background: white;
  border-radius: 10px;
  padding: 25px;
  text-align: center;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}

.feature-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.feature-icon {
  font-size: 48px;
  margin-bottom: 15px;
}

.feature-card h6 {
  color: #2e7d32;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 15px;
}

.feature-content p {
  font-size: 14px;
  line-height: 1.7;
  color: #424242;
  text-align: left;
  margin-bottom: 15px;
}

.data-box {
  background: #f5f5f5;
  border-radius: 8px;
  padding: 15px;
  margin-top: 15px;
}

.data-box p {
  margin: 5px 0;
  font-size: 13px;
  display: flex;
  justify-content: space-between;
}

/* 比較テーブルセクション */
.comparison-table-section {
  margin-top: 50px;
}

.table-title {
  font-size: 22px;
  color: #1a4d2e;
  margin-bottom: 25px;
  font-weight: 700;
  text-align: center;
}

.responsive-table-wrapper {
  overflow-x: auto;
  border-radius: 10px;
  box-shadow: 0 3px 20px rgba(0,0,0,0.1);
}

.comparison-table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  min-width: 600px;
}

.comparison-table thead {
  background: linear-gradient(135deg, #2e7d32, #43a047);
}

.comparison-table th {
  padding: 15px;
  color: white;
  font-weight: 600;
  text-align: center;
  font-size: 15px;
}

.comparison-table tbody tr {
  border-bottom: 1px solid #e0e0e0;
  transition: background-color 0.3s ease;
}

.comparison-table tbody tr:hover {
  background: #f8f8f8;
}

.comparison-table tbody tr.highlight-row {
  background: #e8f5e9;
}

.comparison-table td {
  padding: 15px;
  text-align: center;
  font-size: 14px;
}

.rating-high {
  color: #2e7d32;
  font-weight: 700;
}

.rating-medium {
  color: #f57c00;
  font-weight: 600;
}

.rating-low {
  color: #d32f2f;
  font-weight: 600;
}

.total-excellent {
  background: #2e7d32;
  color: white;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 20px;
}

.total-good {
  background: #66bb6a;
  color: white;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 20px;
}

.total-fair {
  background: #ffa726;
  color: white;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 20px;
}

/* シナリオカード */
.detailed-resilience-analysis {
  margin-top: 50px;
}

.analysis-subtitle {
  font-size: 22px;
  color: #1a4d2e;
  margin-bottom: 30px;
  font-weight: 700;
}

.scenario-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
}

@media (min-width: 768px) {
  .scenario-cards {
    grid-template-columns: repeat(3, 1fr);
  }
}

.scenario-card {
  background: white;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: transform 0.3s ease;
}

.scenario-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}

.scenario-header {
  padding: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.scenario-header.rcp26 {
  background: linear-gradient(135deg, #4caf50, #66bb6a);
  color: white;
}

.scenario-header.rcp45 {
  background: linear-gradient(135deg, #ffa726, #ff9800);
  color: white;
}

.scenario-header.rcp85 {
  background: linear-gradient(135deg, #ef5350, #e53935);
  color: white;
}

.scenario-header h6 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

.scenario-temp {
  font-size: 20px;
  font-weight: 700;
}

.scenario-content {
  padding: 20px;
}

.scenario-content p {
  font-size: 14px;
  line-height: 1.7;
  color: #424242;
}

/* 戦略モデル */
.strategy-model {
  margin-top: 50px;
  padding: 40px;
  background: linear-gradient(135deg, #f1f8e9, #ffffff);
  border-radius: 12px;
  border: 1px solid #c5e1a5;
}

.model-title {
  font-size: 22px;
  color: #1a4d2e;
  margin-bottom: 30px;
  text-align: center;
  font-weight: 700;
}

.phase-timeline {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  position: relative;
}

@media (min-width: 768px) {
  .phase-timeline {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .phase-timeline {
    grid-template-columns: repeat(4, 1fr);
  }
}

.phase-card {
  background: white;
  border-radius: 10px;
  padding: 25px;
  position: relative;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}

.phase-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.phase-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  padding-bottom: 10px;
  border-bottom: 2px solid #e8f5e9;
}

.phase-number {
  background: linear-gradient(135deg, #4caf50, #2e7d32);
  color: white;
  padding: 5px 10px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 12px;
}

.phase-years {
  color: #616161;
  font-weight: 600;
  font-size: 14px;
}

.phase-card h6 {
  color: #2e7d32;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 15px;
}

.phase-content p {
  font-size: 14px;
  line-height: 1.7;
  color: #424242;
  margin-bottom: 15px;
}

.phase-points {
  list-style: none;
  padding: 0;
  margin: 0;
}

.phase-points li {
  position: relative;
  padding-left: 25px;
  margin-bottom: 8px;
  font-size: 13px;
  color: #616161;
}

.phase-points li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #4caf50;
  font-weight: 700;
}

/* 植栽レイアウト */
.planting-layout {
  margin-top: 50px;
}

.layout-title {
  font-size: 22px;
  color: #1a4d2e;
  margin-bottom: 30px;
  font-weight: 700;
}

.layout-diagram {
  background: white;
  border-radius: 10px;
  padding: 30px;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
}

.diagram-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 25px;
  justify-content: center;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.legend-color {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 1px solid #e0e0e0;
}

.legend-color.kiri {
  background: #4caf50;
}

.legend-color.sugi {
  background: #8d6e63;
}

.legend-color.hinoki {
  background: #6d4c41;
}

.legend-color.broadleaf {
  background: #ff9800;
}

.planting-grid {
  text-align: center;
  padding: 20px;
  background: #f5f5f5;
  border-radius: 8px;
}

.diagram-note {
  font-size: 14px;
  color: #616161;
  font-style: italic;
}

/* 経済環境分析 */
.economic-environmental-analysis {
  margin-top: 50px;
}

.analysis-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
}

@media (min-width: 768px) {
  .analysis-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.analysis-card {
  background: white;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: transform 0.3s ease;
}

.analysis-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}

.analysis-card.economic .card-header {
  background: linear-gradient(135deg, #ffc107, #ff9800);
}

.analysis-card.environmental .card-header {
  background: linear-gradient(135deg, #4caf50, #2e7d32);
}

.card-header {
  padding: 15px 20px;
  color: white;
  display: flex;
  align-items: center;
  gap: 10px;
}

.card-icon {
  font-size: 24px;
}

.card-header h6 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
}

.card-content {
  padding: 20px;
}

.metric-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid #e0e0e0;
}

.metric-item:last-child {
  border-bottom: none;
}

.metric-label {
  font-size: 14px;
  color: #616161;
  font-weight: 500;
}

.metric-value {
  font-size: 16px;
  color: #1976d2;
  font-weight: 700;
}

/* 将来予測 */
.future-predictions {
  margin-top: 60px;
}

.predictions-wrapper {
  background: linear-gradient(135deg, #e8eaf6, #ffffff);
  border-radius: 12px;
  padding: 40px;
  border: 1px solid #9fa8da;
}

.timeline-predictions {
  margin-top: 40px;
  position: relative;
}

.timeline-predictions::before {
  content: '';
  position: absolute;
  left: 30px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, #3f51b5, #7986cb);
}

@media (min-width: 768px) {
  .timeline-predictions::before {
    left: 50%;
    transform: translateX(-50%);
  }
}

.timeline-item {
  display: flex;
  margin-bottom: 40px;
  position: relative;
}

@media (min-width: 768px) {
  .timeline-item {
    justify-content: center;
  }
  
  .timeline-item:nth-child(odd) .timeline-content {
    margin-right: auto;
    text-align: right;
  }
  
  .timeline-item:nth-child(even) .timeline-content {
    margin-left: auto;
    text-align: left;
  }
}

.timeline-marker {
  position: absolute;
  left: 20px;
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, #3f51b5, #5c6bc0);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  z-index: 1;
  box-shadow: 0 4px 20px rgba(63, 81, 181, 0.3);
}

@media (min-width: 768px) {
  .timeline-marker {
    left: 50%;
    transform: translateX(-50%);
  }
}

.timeline-content {
  background: white;
  border-radius: 10px;
  padding: 25px;
  margin-left: 100px;
  flex: 1;
  max-width: 500px;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
}

@media (min-width: 768px) {
  .timeline-content {
    margin-left: 0;
    width: 45%;
  }
}

.timeline-content h6 {
  color: #3f51b5;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 15px;
}

.timeline-content p {
  font-size: 14px;
  line-height: 1.7;
  color: #424242;
}

/* イノベーション */
.innovation-possibilities {
  margin-top: 50px;
}

.innovation-title {
  font-size: 22px;
  color: #1a4d2e;
  margin-bottom: 30px;
  text-align: center;
  font-weight: 700;
}

.innovation-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
}

@media (min-width: 768px) {
  .innovation-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .innovation-cards {
    grid-template-columns: repeat(4, 1fr);
  }
}

.innovation-card {
  background: white;
  border-radius: 10px;
  padding: 25px;
  text-align: center;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}

.innovation-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.innovation-icon {
  font-size: 48px;
  margin-bottom: 15px;
}

.innovation-card h6 {
  color: #1a4d2e;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 15px;
}

.innovation-card p {
  font-size: 14px;
  line-height: 1.6;
  color: #424242;
  text-align: left;
}

/* 政策提言 */
.policy-recommendations {
  margin-top: 50px;
  padding: 40px;
  background: #fff3e0;
  border-radius: 12px;
  border: 2px solid #ffb74d;
}

.recommendations-title {
  font-size: 22px;
  color: #e65100;
  margin-bottom: 30px;
  text-align: center;
  font-weight: 700;
}

.recommendation-list {
  display: grid;
  gap: 25px;
}

.recommendation-item {
  display: flex;
  gap: 20px;
  background: white;
  border-radius: 10px;
  padding: 25px;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: transform 0.3s ease;
}

.recommendation-item:hover {
  transform: translateX(10px);
  box-shadow: 0 5px 20px rgba(0,0,0,0.1);
}

.rec-number {
  min-width: 50px;
  height: 50px;
  background: linear-gradient(135deg, #ff6f00, #ff9800);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 20px;
}

.rec-content h6 {
  color: #e65100;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 10px;
}

.rec-content p {
  font-size: 14px;
  line-height: 1.7;
  color: #424242;
}

/* 結論セクション */
.conclusion-section {
  margin-top: 60px;
  padding: 50px 40px;
  background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
  border-radius: 12px;
  box-shadow: 0 5px 25px rgba(76, 175, 80, 0.15);
}

.conclusion-header {
  text-align: center;
  margin-bottom: 30px;
}

.conclusion-title {
  font-size: 28px;
  color: #1b5e20;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.conclusion-paragraph {
  font-size: 17px;
  line-height: 1.9;
  color: #2e7d32;
  margin-bottom: 30px;
  text-align: center;
}

.highlight-text {
  background: #ffeb3b;
  padding: 3px 8px;
  border-radius: 4px;
  font-weight: 700;
  color: #f57f17;
}

/* キーポイント */
.key-points {
  margin-top: 40px;
}

.key-points-title {
  font-size: 22px;
  color: #1b5e20;
  margin-bottom: 25px;
  text-align: center;
  font-weight: 700;
}

.points-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 768px) {
  .points-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.point-card {
  background: white;
  border-radius: 10px;
  padding: 20px;
  display: flex;
  gap: 15px;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  transition: transform 0.3s ease;
}

.point-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}

.point-icon {
  font-size: 32px;
  color: #4caf50;
}

.point-content h6 {
  color: #2e7d32;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
}

.point-content p {
  font-size: 14px;
  line-height: 1.6;
  color: #424242;
}

/* 最終メッセージ */
.final-message {
  margin-top: 40px;
  padding: 30px;
  background: white;
  border-radius: 10px;
  text-align: center;
  box-shadow: 0 5px 25px rgba(0,0,0,0.1);
}

.message-text {
  font-size: 18px;
  line-height: 1.8;
  color: #1b5e20;
  font-weight: 500;
}

/* CTA セクション */
.cta-section {
  margin-top: 60px;
  background: linear-gradient(135deg, #1a4d2e, #2e7d32);
  border-radius: 12px;
  padding: 50px 30px;
  text-align: center;
  box-shadow: 0 10px 40px rgba(26, 77, 46, 0.3);
}

.cta-title {
  color: white;
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 15px;
}

.cta-text {
  color: #c8e6c9;
  font-size: 18px;
  margin-bottom: 30px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

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

.cta-button {
  padding: 15px 40px;
  border-radius: 50px;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s ease;
  display: inline-block;
}

.cta-button.primary {
  background: white;
  color: #2e7d32;
  box-shadow: 0 4px 15px rgba(255,255,255,0.3);
}

.cta-button.primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(255,255,255,0.4);
}

.cta-button.secondary {
  background: transparent;
  color: white;
  border: 2px solid white;
}

.cta-button.secondary:hover {
  background: white;
  color: #2e7d32;
  transform: translateY(-3px);
}

/* 画像プレースホルダー */
.image-placeholder {
  margin: 40px 0;
  background: #f5f5f5;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
}

.image-container {
  padding: 20px;
  text-align: center;
}

.image-container img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.image-caption {
  margin-top: 15px;
  font-size: 14px;
  color: #616161;
  font-weight: 600;
}

.image-note {
  font-size: 13px;
  color: #9e9e9e;
  font-style: italic;
  margin-top: 5px;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
  .section-container {
    padding: 0 15px;
  }
  
  .main-section-title {
    font-size: 24px;
  }
  
  .subsection-title {
    font-size: 20px;
    flex-direction: column;
    text-align: center;
  }
  
  .data-table-wrapper {
    overflow-x: scroll;
  }
  
  .cta-title {
    font-size: 24px;
  }
  
  .cta-text {
    font-size: 16px;
  }
  
  .cta-button {
    padding: 12px 30px;
    font-size: 14px;
  }
  
  .timeline-content {
    margin-left: 80px;
  }
  
  .recommendation-item {
    flex-direction: column;
    text-align: center;
  }
  
  .rec-number {
    margin: 0 auto;
  }
}

/* アニメーション */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* スクロールアニメーション */
.scroll-animate {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s ease;
}

.scroll-animate.active {
  opacity: 1;
  transform: translateY(0);
}

/* プリント対応 */
@media print {
  .climate-co2-prediction-section {
    background: white;
    color: black;
  }
  
  .cta-section {
    display: none;
  }
  
  .box-shadow {
    box-shadow: none !important;
  }
  
  .data-card,
  .species-card,
  .feature-card {
    page-break-inside: avoid;
  }
}

/* ===================================
   京都皇帝早生桐 結論セクション
   革新的CSS - 2025年最新版
   =================================== */

/* ベースコンテナ */
.kiri-co2-conclusion-ultimate-section {
  position: relative;
  background: linear-gradient(135deg, #f5f9f6 0%, #ffffff 50%, #f0f7f2 100%);
  padding: 100px 0;
  overflow: hidden;
  font-family: 'Noto Sans JP', 'Hiragino Sans', sans-serif;
}

.kiri-co2-conclusion-ultimate-section::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(76,175,80,0.03) 0%, transparent 70%);
  animation: rotateGradient 30s linear infinite;
}

@keyframes rotateGradient {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.conclusion-wrapper-2025 {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 1;
}

/* ヘッダーセクション */
.conclusion-header-impact {
  text-align: center;
  margin-bottom: 80px;
  position: relative;
}

.header-decoration-svg {
  position: absolute;
  top: -50px;
  left: 0;
  width: 100%;
  height: 100px;
  z-index: -1;
}

.conclusion-main-title {
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 900;
  margin-bottom: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  animation: fadeInUp 0.8s ease;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.title-icon-wrapper {
  font-size: 60px;
  animation: bounce 2s ease infinite;
}

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

.title-text-gradient {
  background: linear-gradient(90deg, #2e7d32, #4caf50, #66bb6a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-size: 0.8em;
  font-weight: 600;
}

.title-emphasis-text {
  color: #1b5e20;
  font-size: 1.1em;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}

.subtitle-ribbon {
  background: linear-gradient(90deg, transparent, rgba(76,175,80,0.1), transparent);
  padding: 20px 40px;
  border-radius: 50px;
  display: inline-block;
  margin: 0 auto;
}

.subtitle-ribbon p {
  font-size: 18px;
  color: #424242;
  margin: 0;
  font-weight: 500;
}

/* メインコンテンツ */
.conclusion-content-revolutionary {
  display: flex;
  flex-direction: column;
  gap: 80px;
}

/* 優位性ブロック共通 */
[class*="superiority-block-"] {
  background: white;
  border-radius: 20px;
  padding: 50px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.08);
  position: relative;
  opacity: 0;
  transform: translateY(50px);
  transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

[class*="superiority-block-"].visible {
  opacity: 1;
  transform: translateY(0);
}

/* ブロック番号スタイル */
.block-number-circle,
.block-number-hexagon,
.block-number-diamond,
.block-number-star,
.block-number-future {
  position: absolute;
  top: -30px;
  left: 50px;
  width: 80px;
  height: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #4caf50, #2e7d32);
  color: white;
  font-weight: 900;
  box-shadow: 0 8px 20px rgba(76,175,80,0.3);
  z-index: 10;
}

.block-number-circle {
  border-radius: 50%;
}

.block-number-hexagon {
  clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
}

.block-number-diamond {
  transform: rotate(45deg);
  border-radius: 10px;
}

.block-number-diamond .number-large,
.block-number-diamond .number-label {
  transform: rotate(-45deg);
}

.block-number-star {
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.block-number-future {
  background: linear-gradient(135deg, #7e57c2, #5e35b1);
  border-radius: 15px;
  transform: skewY(-5deg);
}

.block-number-future .number-large,
.block-number-future .number-label {
  transform: skewY(5deg);
}

.number-large {
  font-size: 32px;
  line-height: 1;
}

.number-label {
  font-size: 12px;
  opacity: 0.9;
}

/* ブロックタイトル */
[class*="block-title-"] {
  font-size: 28px;
  margin-bottom: 30px;
  padding-bottom: 15px;
  border-bottom: 3px solid #e8f5e9;
  color: #1b5e20;
}

.block-title-dynamic {
  animation: slideInLeft 0.8s ease;
}

.block-title-animated {
  animation: slideInRight 0.8s ease;
}

.block-title-gradient {
  background: linear-gradient(90deg, #ff6f00, #ff9800);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.block-title-shining {
  background: linear-gradient(90deg, #ffd700, #ffed4e, #ffd700);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shine 3s linear infinite;
}

@keyframes shine {
  0% { background-position: -100px; }
  100% { background-position: 200px; }
}

.block-title-future {
  background: linear-gradient(90deg, #7e57c2, #9575cd, #7e57c2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* テキストスタイル */
.color-accent-green { color: #2e7d32; }
.color-accent-blue { color: #1976d2; }
.color-accent-orange { color: #ff6f00; }
.color-accent-gold { color: #ffa000; }
.color-accent-purple { color: #7e57c2; }

.text-bold-red {
  color: #d32f2f;
  font-weight: 700;
}

.highlight-yellow {
  background: #fff59d;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: 600;
}

.highlight-cyan {
  background: #b2ebf2;
  padding: 2px 6px;
  border-radius: 3px;
}

.highlight-green {
  background: #c8e6c9;
  padding: 2px 6px;
  border-radius: 3px;
}

.highlight-orange {
  background: #ffe0b2;
  padding: 2px 6px;
  border-radius: 3px;
}

.highlight-gold {
  background: linear-gradient(90deg, #fff8e1, #ffecb3);
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
}

.highlight-purple {
  background: #e1bee7;
  padding: 2px 6px;
  border-radius: 3px;
}

.highlight-important {
  background: #ffeb3b;
  padding: 4px 8px;
  border-radius: 4px;
  font-weight: 700;
  margin: 0 2px;
}

.underline-wave {
  text-decoration: underline wavy #4caf50;
  text-underline-offset: 4px;
}

.underline-dotted {
  text-decoration: underline dotted #2196f3;
  text-underline-offset: 3px;
}

.underline-thick {
  text-decoration: underline solid #ff6f00 3px;
  text-underline-offset: 5px;
}

.underline-wave-thick {
  text-decoration: underline wavy #d32f2f 3px;
  text-underline-offset: 5px;
}

.underline-gold {
  text-decoration: underline solid #ffd700 2px;
  text-underline-offset: 4px;
}

.underline-purple {
  text-decoration: underline solid #7e57c2 2px;
  text-underline-offset: 4px;
}

.bg-light-green {
  background: rgba(76,175,80,0.1);
  padding: 3px 8px;
  border-radius: 4px;
}

.bg-light-yellow {
  background: rgba(255,235,59,0.2);
  padding: 3px 8px;
  border-radius: 4px;
}

.bg-yellow-light {
  background: #fff9c4;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: 700;
}

.bg-gold-light {
  background: rgba(255,215,0,0.15);
  padding: 3px 8px;
  border-radius: 4px;
}

.bg-purple-light {
  background: rgba(126,87,194,0.1);
  padding: 3px 8px;
  border-radius: 4px;
}

.bg-green-bright {
  background: #69f0ae;
  color: #004d40;
  padding: 3px 8px;
  border-radius: 4px;
  font-weight: 700;
}

.text-gradient-orange {
  background: linear-gradient(90deg, #ff6f00, #ff9800);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

.text-gradient-green {
  background: linear-gradient(90deg, #2e7d32, #4caf50);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

.text-gradient-purple {
  background: linear-gradient(90deg, #7e57c2, #9575cd);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

.text-gradient-gold-green {
  background: linear-gradient(90deg, #ffd700, #4caf50);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 900;
  font-size: 1.1em;
}

.text-gradient-rainbow {
  background: linear-gradient(90deg, #f44336, #ff9800, #ffeb3b, #4caf50, #2196f3, #9c27b0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 900;
  animation: rainbow 5s ease infinite;
}

@keyframes rainbow {
  0%, 100% { filter: hue-rotate(0deg); }
  50% { filter: hue-rotate(180deg); }
}

.text-gold-gradient {
  background: linear-gradient(90deg, #ffd700, #ffed4e);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

.text-purple-gradient {
  background: linear-gradient(90deg, #7e57c2, #b39ddb);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

.text-size-large { font-size: 1.2em; }
.text-size-xl { font-size: 1.3em; }
.text-size-xxl { font-size: 1.5em; font-weight: 700; }
.text-size-xxxl { font-size: 1.8em; font-weight: 900; }

.text-italic-bold {
  font-style: italic;
  font-weight: 600;
}

.text-warning {
  color: #ff6f00;
  font-weight: 600;
}

.text-red {
  color: #d32f2f;
}

.text-bold-green {
  color: #2e7d32;
  font-weight: 700;
}

.text-bold-large {
  font-weight: 700;
  font-size: 1.1em;
}

.text-red-bold {
  color: #d32f2f;
  font-weight: 900;
  font-size: 1.1em;
}

.text-action {
  color: #1976d2;
  font-weight: 700;
  font-size: 1.1em;
}

.color-primary { color: #2e7d32; font-weight: 600; }
.color-green-dark { color: #1b5e20; font-weight: 700; }
.color-brown { color: #6d4c41; font-weight: 600; }
.color-blue { color: #1976d2; font-weight: 600; }
.color-cyan { color: #00acc1; font-weight: 600; }
.color-gradient-gold { 
  background: linear-gradient(90deg, #ffd700, #ffa000);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}
.color-purple { color: #7e57c2; font-weight: 700; }

/* データビジュアライゼーション */
.data-visualization-circle {
  display: flex;
  justify-content: space-around;
  margin: 40px 0;
  flex-wrap: wrap;
  gap: 20px;
}

.circle-stat {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  transition: transform 0.3s ease;
}

.circle-stat:hover {
  transform: scale(1.1) rotate(5deg);
}

.circle-stat.stat-1 {
  background: linear-gradient(135deg, #4caf50, #81c784);
}

.circle-stat.stat-2 {
  background: linear-gradient(135deg, #2196f3, #64b5f6);
}

.circle-stat.stat-3 {
  background: linear-gradient(135deg, #ff9800, #ffb74d);
}

.stat-inner {
  text-align: center;
  color: white;
}

.stat-number {
  display: block;
  font-size: 28px;
  font-weight: 900;
  margin-bottom: 5px;
}

.stat-label {
  font-size: 12px;
  opacity: 0.95;
}

/* コンテンツフロー */
.content-flow-container {
  padding: 20px 0;
}

.lead-text-enhanced {
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 30px;
  color: #424242;
}

.detail-text-flowing {
  font-size: 16px;
  line-height: 1.9;
  color: #616161;
  margin-top: 30px;
}

.emphasized-paragraph {
  font-size: 17px;
  line-height: 1.9;
  color: #424242;
  margin-bottom: 25px;
}

.supporting-text {
  font-size: 16px;
  line-height: 1.8;
  color: #616161;
  margin-top: 25px;
}

/* インフォグラフィック */
.infographic-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 25px;
  margin: 30px 0;
}

.info-card-floating {
  background: linear-gradient(135deg, #ffffff, #f5f5f5);
  border-radius: 15px;
  padding: 25px;
  box-shadow: 0 5px 20px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}

.info-card-floating:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.12);
}

.info-card-floating .card-icon {
  font-size: 32px;
  margin-bottom: 10px;
}

.info-card-floating h5 {
  color: #2e7d32;
  font-size: 16px;
  margin-bottom: 15px;
  font-weight: 700;
}

.progress-bar-custom {
  background: #e0e0e0;
  height: 30px;
  border-radius: 15px;
  overflow: hidden;
  position: relative;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #4caf50, #81c784);
  display: flex;
  align-items: center;
  padding: 0 15px;
  color: white;
  font-weight: 600;
  font-size: 14px;
  transition: width 2s ease;
}

.progress-fill.secondary {
  background: linear-gradient(90deg, #ff9800, #ffb74d);
}

/* グリッドレイアウト */
.content-grid-asymmetric {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 30px;
  align-items: start;
}

@media (max-width: 768px) {
  .content-grid-asymmetric {
    grid-template-columns: 1fr;
  }
}

.side-data-panel {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.data-card-vertical {
  background: linear-gradient(135deg, #e3f2fd, #ffffff);
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.data-card-vertical h5 {
  color: #1976d2;
  font-size: 14px;
  margin-bottom: 15px;
  font-weight: 700;
}

.index-meter {
  width: 100%;
  height: 20px;
  background: #e0e0e0;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
}

.meter-fill {
  height: 100%;
  background: linear-gradient(90deg, #2196f3, #64b5f6);
  transition: width 1.5s ease;
}

.meter-fill[data-value="95"] { width: 95%; }
.meter-fill[data-value="88"] { width: 88%; }

.meter-value {
  display: block;
  margin-top: 10px;
  font-weight: 700;
  color: #1976d2;
}

/* レジリエンスカード */
.resilience-showcase {
  padding: 20px 0;
}

.intro-text-bold {
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 30px;
  font-weight: 600;
  color: #424242;
}

.resilience-cards-rotating {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 25px;
  margin: 40px 0;
}

.r-card {
  background: white;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 5px 20px rgba(0,0,0,0.1);
  transition: all 0.4s ease;
}

.r-card:hover {
  transform: translateY(-10px) rotate(-2deg);
  box-shadow: 0 15px 40px rgba(0,0,0,0.15);
}

.r-card.drought .card-header-gradient {
  background: linear-gradient(135deg, #ff6f00, #ff9800);
}

.r-card.wind .card-header-gradient {
  background: linear-gradient(135deg, #1976d2, #42a5f5);
}

.r-card.flood .card-header-gradient {
  background: linear-gradient(135deg, #00acc1, #26c6da);
}

.card-header-gradient {
  padding: 20px;
  color: white;
  display: flex;
  align-items: center;
  gap: 15px;
}

.icon-large {
  font-size: 36px;
}

.card-header-gradient h5 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
}

.card-body-expanded {
  padding: 25px;
}

.card-body-expanded p {
  font-size: 15px;
  line-height: 1.8;
  color: #424242;
  margin-bottom: 15px;
}

.stat-badge {
  display: inline-block;
  background: linear-gradient(90deg, #4caf50, #66bb6a);
  color: white;
  padding: 8px 16px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 14px;
  margin-top: 10px;
}

.conclusion-text-flowing {
  font-size: 17px;
  line-height: 1.9;
  color: #424242;
  margin-top: 30px;
  padding: 20px;
  background: rgba(76,175,80,0.05);
  border-left: 4px solid #4caf50;
  border-radius: 8px;
}

/* 経済環境バランス */
.economy-ecology-balance {
  padding: 20px 0;
}

.opening-statement {
  font-size: 18px;
  line-height: 1.9;
  margin-bottom: 30px;
  text-align: center;
  font-weight: 500;
  color: #424242;
}

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

.value-column {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 20px rgba(0,0,0,0.08);
}

.value-column.environmental {
  border-top: 4px solid #4caf50;
}

.value-column.economic {
  border-top: 4px solid #ffd700;
}

.column-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
  color: #2e7d32;
}

.column-title .icon {
  font-size: 28px;
}

.value-list-animated {
  list-style: none;
  padding: 0;
  margin: 0;
}

.list-item-fade {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 12px 0;
  border-bottom: 1px solid #f5f5f5;
  animation: fadeIn 0.8s ease;
}

.list-item-fade:last-child {
  border-bottom: none;
}

.point-number {
  background: linear-gradient(135deg, #4caf50, #66bb6a);
  color: white;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 14px;
}

.point-text {
  flex: 1;
  font-size: 15px;
  line-height: 1.6;
  color: #424242;
}

.data-large {
  color: #1976d2;
  font-size: 1.1em;
}

.synergy-description {
  background: linear-gradient(135deg, rgba(255,215,0,0.1), rgba(76,175,80,0.1));
  border-radius: 15px;
  padding: 30px;
  margin-top: 30px;
}

.synergy-text {
  font-size: 17px;
  line-height: 1.9;
  color: #424242;
  text-align: center;
  margin: 0;
}

/* 未来ビジョン */
.future-vision-container {
  padding: 20px 0;
}

.vision-statement {
  font-size: 18px;
  line-height: 1.9;
  margin-bottom: 40px;
  text-align: center;
  color: #424242;
}

.future-tech-matrix {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 25px;
  margin: 40px 0;
}

.tech-item {
  background: white;
  border-radius: 15px;
  padding: 25px;
  text-align: center;
  box-shadow: 0 5px 20px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}

.tech-item:hover {
  transform: translateY(-8px) scale(1.05);
  box-shadow: 0 10px 30px rgba(0,0,0,0.12);
}

.tech-item.ai { border-top: 3px solid #2196f3; }
.tech-item.biotech { border-top: 3px solid #4caf50; }
.tech-item.iot { border-top: 3px solid #ff9800; }
.tech-item.satellite { border-top: 3px solid #9c27b0; }

.tech-icon-wrapper {
  width: 60px;
  height: 60px;
  margin: 0 auto 15px;
  background: linear-gradient(135deg, #f5f5f5, #e0e0e0);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tech-icon {
  font-size: 32px;
}

.tech-item h6 {
  color: #424242;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
}

.tech-item p {
  font-size: 14px;
  line-height: 1.6;
  color: #616161;
  margin: 0;
}

.data-highlight {
  color: #d32f2f;
  font-weight: 700;
}

.scalability-section {
  background: rgba(126,87,194,0.05);
  border-radius: 15px;
  padding: 30px;
  margin-top: 40px;
}

.subsection-title-gradient {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 20px;
  background: linear-gradient(90deg, #7e57c2, #9575cd);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.scalability-text {
  font-size: 16px;
  line-height: 1.9;
  color: #424242;
}

/* 最終結論 */
.final-conclusion-spectacular {
  margin-top: 80px;
  padding: 60px 40px;
  background: linear-gradient(135deg, #e8f5e9, #ffffff);
  border-radius: 20px;
  box-shadow: 0 15px 50px rgba(0,0,0,0.1);
  position: relative;
  overflow: hidden;
}

.final-conclusion-spectacular::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,215,0,0.1) 0%, transparent 50%);
  animation: pulse 4s ease infinite;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.3; }
}

.conclusion-crown {
  text-align: center;
  margin-bottom: 40px;
  position: relative;
}

.crown-svg {
  width: 200px;
  height: 100px;
  margin: 0 auto;
}

.crown-title {
  font-size: 32px;
  font-weight: 900;
  color: #1b5e20;
  margin-top: -30px;
  position: relative;
  z-index: 1;
}

.final-message-container {
  position: relative;
  z-index: 1;
}

.final-message-text {
  font-size: 19px;
  line-height: 2;
  color: #2e7d32;
  text-align: center;
  margin-bottom: 30px;
  font-weight: 500;
}

.impact-statement {
  background: white;
  border-radius: 15px;
  padding: 30px;
  margin: 30px 0;
  box-shadow: 0 5px 20px rgba(0,0,0,0.08);
}

.impact-text {
  font-size: 18px;
  line-height: 1.9;
  color: #424242;
  text-align: center;
  margin: 0;
  font-weight: 500;
}

/* CTA セクション */
.call-to-action-ultimate {
  background: linear-gradient(135deg, #1b5e20, #2e7d32);
  border-radius: 20px;
  padding: 40px;
  margin-top: 40px;
  text-align: center;
  box-shadow: 0 10px 40px rgba(27,94,32,0.3);
}

.cta-title-impact {
  color: white;
  font-size: 28px;
  font-weight: 900;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

.cta-icon {
  font-size: 32px;
  animation: rotate 3s linear infinite;
}

@keyframes rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.cta-message {
  color: #c8e6c9;
  font-size: 18px;
  margin-bottom: 30px;
  line-height: 1.8;
}

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

.cta-button-primary,
.cta-button-secondary {
  padding: 15px 40px;
  border-radius: 50px;
  font-size: 16px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  gap: 10px;
}

.cta-button-primary {
  background: white;
  color: #2e7d32;
  box-shadow: 0 5px 20px rgba(255,255,255,0.3);
}

.cta-button-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(255,255,255,0.4);
}

.cta-button-secondary {
  background: transparent;
  color: white;
  border: 2px solid white;
}

.cta-button-secondary:hover {
  background: white;
  color: #2e7d32;
  transform: translateY(-3px);
}

.button-arrow {
  font-size: 20px;
  transition: transform 0.3s ease;
}

.cta-button-primary:hover .button-arrow,
.cta-button-secondary:hover .button-arrow {
  transform: translateX(5px);
}

/* 画像配置 */
.image-placement-full {
  margin: 40px 0;
  background: #f5f5f5;
  border-radius: 15px;
  padding: 20px;
  text-align: center;
}

.responsive-image {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 5px 20px rgba(0,0,0,0.1);
}

.image-description {
  margin-top: 15px;
  font-size: 14px;
  color: #616161;
  font-style: italic;
}

/* アニメーション */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
  .conclusion-wrapper-2025 {
    padding: 0 15px;
  }
  
  [class*="superiority-block-"] {
    padding: 40px 30px;
  }
  
  .value-comparison-flow {
    grid-template-columns: 1fr;
  }
  
  .future-tech-matrix {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .conclusion-main-title {
    font-size: 28px;
  }
  
  [class*="superiority-block-"] {
    padding: 30px 20px;
  }
  
  .block-number-circle,
  .block-number-hexagon,
  .block-number-diamond,
  .block-number-star,
  .block-number-future {
    width: 60px;
    height: 60px;
    left: 20px;
  }
  
  .number-large {
    font-size: 24px;
  }
  
  .data-visualization-circle {
    flex-direction: column;
    align-items: center;
  }
  
  .resilience-cards-rotating {
    grid-template-columns: 1fr;
  }
  
  .cta-title-impact {
    font-size: 22px;
    flex-direction: column;
  }
  
  .cta-buttons-container {
    flex-direction: column;
    align-items: center;
  }
  
  .cta-button-primary,
  .cta-button-secondary {
    width: 100%;
    max-width: 300px;
    justify-content: center;
  }
}

@media (max-width: 480px) {
  [class*="block-title-"] {
    font-size: 22px;
  }
  
  .lead-text-enhanced,
  .emphasized-paragraph {
    font-size: 16px;
  }
  
  .circle-stat {
    width: 120px;
    height: 120px;
  }
  
  .stat-number {
    font-size: 24px;
  }
  
  .final-conclusion-spectacular {
    padding: 40px 20px;
  }
  
  .crown-svg {
    width: 150px;
    height: 75px;
  }
  
  .crown-title {
    font-size: 26px;
  }
}

/* プリント対応 */
@media print {
  .kiri-co2-conclusion-ultimate-section {
    background: white;
  }
  
  [class*="superiority-block-"] {
    page-break-inside: avoid;
    box-shadow: none;
    border: 1px solid #e0e0e0;
  }
  
  .call-to-action-ultimate {
    display: none;
  }
  
  .header-decoration-svg {
    display: none;
  }
}






@keyframes scrollText {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-100%);
    }
}
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 初期状態：マーカークラスでは透明にしておく */

.fadeIn-Slide,
.scale-up,
.fad-eIn,
.fadeIn-Right,
.fadeIn-Left,
.fadeIn-Up {
  opacity: 0;
}

/* アニメーション用クラスを付与されたらアニメーションが発動 */
.fadeIn {
  animation: fadeIn 1s ease forwards;
}
.fadeInRight {
  animation: fadeInRight 1s ease forwards;
}
.fadeInLeft {
  animation: fadeInLeft 1s ease forwards;
}
.fadeInUp {
  animation: fadeInUp 1s ease forwards;
}
.scale-up-top {
  animation: scale-up-top 1s ease forwards;
}
.info-box {
  animation: info-box 1s ease forwards;
}
.fadeInSlide {
    animation: fadeInSlide 0.8s ease-out;
}

/* @keyframesの定義 */


@keyframes fadeInSlide {
  from {
        opacity: 0;
        transform: translateY(70px);
    }
  to {
        opacity: 1;
        transform: translateY(0);
    }
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@-webkit-keyframes scale-up-top {
  0% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    -webkit-transform-origin: 50% 0%;
            transform-origin: 50% 0%;
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    -webkit-transform-origin: 50% 0%;
            transform-origin: 50% 0%;
  }
}
@keyframes scale-up-top {
  0% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    -webkit-transform-origin: 50% 0%;
            transform-origin: 50% 0%;
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    -webkit-transform-origin: 50% 0%;
            transform-origin: 50% 0%;
  }
}
.scale-up-top {
	-webkit-animation: scale-up-top 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
	        animation: scale-up-top 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

