/* ============================
   Factory Scale page
============================ */

.fs-hero{
  padding:40px 0 60px;
}
.fs-hero-image{
  position:relative;
  width:100%;
  aspect-ratio:16/8;
  max-height:520px;
  background-size:cover;
  background-position:center;
  overflow:hidden;
}
.fs-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,30,50,.25) 0%,rgba(20,30,50,.45) 100%);
}
.fs-hero-text{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#fff;
  text-align:center;
  z-index:2;
}
.fs-hero-title{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(40px,6vw,72px);
  letter-spacing:.1em;
  line-height:1;
  margin-bottom:18px;
}
.fs-hero-sub{
  font-size:12px;
  letter-spacing:.2em;
  line-height:2;
  opacity:.9;
}

/* ============================
   Scale stats
============================ */
.fs-scale{
  padding:100px 0 80px;
}
.fs-scale .section-label{
  margin-bottom:48px;
}
.scale-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.scale-card{
  border:1px solid #e5e5e5;
  padding:46px 20px 38px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:190px;
}
.scale-num{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(44px,5vw,60px);
  line-height:1;
  letter-spacing:.04em;
  color:#222;
  margin-bottom:22px;
}
.scale-label-en{
  font-size:10px;
  letter-spacing:.35em;
  color:#666;
}
.scale-label-jp{
  font-size:11px;
  letter-spacing:.3em;
  color:#666;
  margin-bottom:6px;
}
.scale-unit{
  font-size:10px;
  letter-spacing:.3em;
  color:#888;
}

/* ============================
   SDGs / Sustainability
============================ */
.fs-sustainability{
  padding:80px 0;
}
.fs-sustainability .section-label{
  margin-bottom:30px;
}
.fs-section-title{
  font-family:"Noto Sans JP",sans-serif;
  font-weight:300;
  font-size:clamp(26px,3.6vw,40px);
  letter-spacing:.08em;
  line-height:1.4;
  margin-bottom:60px;
}
.sdg-list{
  display:flex;
  flex-direction:column;
  gap:80px;
  padding-left:clamp(0px,8vw,120px);
}
.sdg-item{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:26px;
  align-items:start;
}
.sdg-badge{
  width:62px;height:62px;
  border-radius:50%;
  background:#f1f1f1;
  display:flex;align-items:center;justify-content:center;
  color:#222;
}
.sdg-badge svg{width:30px;height:30px}
.sdg-body{
  max-width:880px;
}
.sdg-goal{
  font-size:11px;
  letter-spacing:.08em;
  color:#666;
  line-height:1.8;
}
.sdg-title{
  font-family:"Noto Sans JP",sans-serif;
  font-weight:400;
  font-size:clamp(20px,2.6vw,28px);
  letter-spacing:.08em;
  margin:14px 0 28px;
  color:#222;
}
.sdg-text p{
  font-size:14px;
  line-height:2.1;
  letter-spacing:.06em;
  color:#333;
  margin-bottom:20px;
}
.sdg-text p:last-child{margin-bottom:0}

/* ============================
   Equipment
============================ */
.fs-equipment{
  padding:80px 0;
}
.fs-equipment .section-label{
  margin-bottom:30px;
}
.equip-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:60px;
  gap:20px;
}
.equip-head .fs-section-title{
  margin-bottom:0;
}
.equip-count{
  font-size:11px;
  letter-spacing:.3em;
  color:#666;
  white-space:nowrap;
}
.equip-list{
  border-top:1px solid #e5e5e5;
}
.equip-row{
  display:grid;
  grid-template-columns:220px 1fr;
  padding:34px 0;
  border-bottom:1px solid #e5e5e5;
  gap:30px;
  align-items:start;
}
.equip-cat-en{
  font-size:10px;
  letter-spacing:.3em;
  color:#888;
  margin-bottom:10px;
}
.equip-cat-jp{
  font-size:15px;
  letter-spacing:.12em;
  color:#222;
  font-weight:400;
}
.equip-items{
  font-size:15px;
  line-height:1.9;
  letter-spacing:.08em;
  color:#222;
  padding-top:22px;
}

/* ============================
   Access
============================ */
.fs-access{
  padding:80px 0 120px;
}
.fs-access .section-label{
  margin-bottom:40px;
}
.access-list{
  border-top:1px solid #e5e5e5;
}
.access-row{
  display:grid;
  grid-template-columns:240px 1fr;
  padding:30px 0;
  border-bottom:1px solid #e5e5e5;
  gap:30px;
  align-items:center;
}
.access-label{
  font-size:11px;
  letter-spacing:.3em;
  color:#888;
  padding-left:4px;
}
.access-value{
  font-size:15px;
  letter-spacing:.08em;
  color:#222;
}

/* ============================
   Responsive
============================ */
@media (max-width:960px){
  .fs-hero{padding:20px 0 40px}
  .fs-hero-image{aspect-ratio:16/10}

  .fs-scale{padding:60px 0 40px}
  .scale-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .scale-card{padding:34px 14px 28px;min-height:160px}

  .fs-sustainability{padding:60px 0}
  .sdg-list{gap:60px;padding-left:0}
  .sdg-item{grid-template-columns:50px 1fr;gap:18px}
  .sdg-badge{width:48px;height:48px}
  .sdg-badge svg{width:24px;height:24px}

  .fs-equipment{padding:60px 0}
  .equip-head{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:40px}
  .equip-row{grid-template-columns:1fr;gap:10px;padding:24px 0}
  .equip-items{padding-top:0;font-size:14px}

  .fs-access{padding:60px 0 100px}
  .access-row{grid-template-columns:1fr;gap:6px;padding:22px 0}
  .access-label{padding-left:0}
  .access-value{font-size:14px}
}

@media (max-width:480px){
  .scale-grid{grid-template-columns:1fr}
}
