/* Company shared styles for Temp1 outline & related sections */

.section-outline {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease-out;
}

.section-outline.isView {
  opacity: 1;
  transform: translateY(0);
}

/* Generic white area container (used by outline and others) */
.white-area {
  background: #fff;
  padding: 60px 0;
}

.white-area dl {
  display: flex;
  padding: 20px 0;
  border-bottom: 1px solid #eee;
}

.white-area dl:last-child {
  border-bottom: none;
}

.white-area dt {
  width: 200px;
  color: #111;
  font-weight: 600;
}

.white-area dd {
  flex: 1;
  color: #333;
  line-height: 1.7;
}

/* Management member basics */
.section-management {
  position: relative;
  padding: 80px 0;
}

.section-management .management-area {
  background-color: #fff;
  border-radius: 10px;
  padding: 40px;
  box-shadow: 16px 16px 40px 0 rgba(0,0,0,0.06);
}

.section-management .list-member {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 30px;
}

.section-management .list-member li { width: 48%; margin-bottom: 40px; }
.section-management .list-member .position { font-size: 12px; font-weight: bold; }
.section-management .list-member .name { font-size: 18px; font-weight: bold; margin: 10px 0 25px; }
.section-management .list-member .text { font-size: 14px; line-height: 1.8; }

@media screen and (max-width: 750px) {
  .section-management .management-area { padding: 20px; }
  .section-management .list-member { flex-direction: column; }
  .section-management .list-member li { width: 100%; }
}

/* Access basics */
.section-access { padding: 80px 0; }
.section-access .access-area { display: grid; grid-template-columns: 1.4fr 1fr; gap: 30px; align-items: start; }
.section-access .map-box iframe { border-radius: 8px; }
.section-access .address-box .text-big { font-weight: 700; margin-bottom: 8px; }
.section-access .address-box .text-small { color: #333; line-height: 1.7; }
.section-access .btn-map { margin-top: 20px; }

@media screen and (max-width: 900px) {
  .section-access .access-area { grid-template-columns: 1fr; }
}

/* History timeline basics */
.section-history-timeline { background: #fff; padding: 40px 0; position: relative; overflow: hidden; }
.history-container { position: relative; max-width: 1000px; margin: 0 auto; }
.history-container::before { content:''; position:absolute; left:50%; top:0; bottom:0; width:4px; background: linear-gradient(to bottom, #e5e7eb, #cbd5e1, #e5e7eb); transform:translateX(-50%); box-shadow: 0 0 8px rgba(0,0,0,0.06); }
.history-item { display:flex; align-items:center; margin-bottom:60px; position: relative; opacity:0; transform: translateY(30px); transition:all 0.6s ease-out; }
.section-history-timeline.isView .history-item { opacity:1; transform:translateY(0); animation: fadeInUp 0.8s ease-out; }
.history-item:nth-child(odd) { flex-direction: row; }
.history-item:nth-child(even) { flex-direction: row-reverse; }
.history-year { flex:0 0 200px; text-align:center; position: relative; z-index: 2; }
.year-number { display:inline-block; background:#f7f8fa; color:#222; font-weight:700; padding:12px 20px; border-radius:50px; border:2px solid #d0d7de; box-shadow: 0 10px 30px rgba(0,0,0,0.08); transition: all 0.3s ease; }
.history-item:hover .year-number { transform: scale(1.05); border-color: #b8c1cc; box-shadow: 0 15px 40px rgba(0,0,0,0.12); }
.history-content { flex:1; padding:0 30px; }
.section-history-timeline .content-card { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:24px; box-shadow: 10px 25px 25px rgba(0,0,0,0.08); position: relative; overflow: hidden; }
.section-history-timeline .content-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background: linear-gradient(90deg, #e5e7eb, #cbd5e1, #e5e7eb); }
.content-title { color:#111; font-size:20px; font-weight:700; margin-bottom:12px; }
.content-description { color:#444; line-height:1.7; margin-bottom:16px; }
.content-details ul { list-style:none; padding:0; margin:0; }
.content-details li { color:#222; font-size:14px; padding:8px 0; border-bottom:1px solid #eee; }
.content-details li:last-child { border-bottom:none; }

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

/* Philosophy message (経営理念・代表挨拶) */
.section-message { padding: 80px 0; }
.section-message .management-area { background-color: #fff; border-radius: 10px; padding: 40px; box-shadow: 16px 16px 40px 0 rgba(0,0,0,0.06); }
.section-message .philosophy-content { display: grid; grid-template-columns: 1fr; gap: 24px; }
.section-message .philosophy-item h3 { font-size: 18px; font-weight: 700; margin-bottom: 8px; color: #111; }
.section-message .philosophy-item p { color: #333; line-height: 1.8; }
.section-message .list-member { display: flex; flex-direction: column; gap: 24px; margin-top: 30px; }
.section-message .list-member .position { font-size: 12px; font-weight: bold; }
.section-message .list-member .name { font-size: 18px; font-weight: bold; margin: 10px 0 6px; }
.section-message .list-member .text { font-size: 14px; line-height: 1.8; }

/* Philosophy message heading: 复用 CASE 标题样式（.section-works h2），避免自定义覆盖 */
.section-message h2 { margin-bottom:20px; }
.section-message h2 span { display:inline-block; }

/* Philosophy values (企業価値観) */
.section-values { padding: 80px 0; }
.section-values .management-area { background-color: #fff; border-radius: 10px; padding: 40px; box-shadow: 16px 16px 40px 0 rgba(0,0,0,0.06); }
.section-values .values-content { margin-top: 20px; }
.section-values .values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.section-values .value-item { background:#fff; border:1px solid #fbd000; border-radius:10px; padding:16px 18px; box-shadow: 8px 8px 24px rgba(0,0,0,0.06); }
.section-values .value-item h4 { color:#111; font-size:16px; font-weight:700; margin-bottom:8px; }
.section-values .value-item p { color:#333; line-height:1.7; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }


@media screen and (max-width: 900px) {
  .section-message .management-area, .section-values .management-area { padding: 20px; }
  .section-values .values-grid { grid-template-columns: 1fr; }
}
.content-title { color:#111; font-size:20px; font-weight:700; margin-bottom:12px; }
.content-description { color:#333; line-height:1.7; margin-bottom:16px; }
.content-details ul { list-style:none; padding:0; margin:0; }
.content-details li { color:#111; font-size:14px; padding:8px 0; border-bottom:1px solid #eee; }
.content-details li:last-child { border-bottom:none; }

/* Future section (history_2 style) */
.section-future { background:#f8fafc; padding:60px 0; text-align:center; position: relative; }
.section-future::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background: linear-gradient(90deg, transparent, #e5e7eb, transparent); }
.future-content h2 { color:#111; font-size:28px; margin-bottom:16px; }
.future-content p { color:#555; line-height:1.8; max-width:800px; margin:0 auto; }

/* Flow: 使用 fixed.css 中 .service_common .section-flow 的既有样式，避免在此覆盖 */
