.fs-contents { display:flex; flex-wrap:wrap; gap:4px 24px; padding:4px 0; margin:0 0 20px; border-block:1px solid var(--in-line); }
.fs-contents a { display:inline-flex; align-items:center; gap:7px; min-height:42px; font-weight:600; font-size:.92rem; }
.fs-contents small,.fs-cases small { color:var(--in-accent); font:italic 500 .86rem/1 var(--serif); }
.fs-contents a:hover,.factory-overview a:hover { color:var(--in-accent); text-decoration:underline; }
.fs-section { padding-top:clamp(45px,5vw,76px); position:relative; isolation:isolate; }
.fs-section::before {
  content:""; position:absolute; z-index:-1; pointer-events:none;
  inset:clamp(22px,3vw,40px) -2.5% -13px;
  background:linear-gradient(90deg,rgb(11 30 21 / .74),rgb(13 33 24 / .82));
  border-radius:12px 42px 8px 20px;
  mask-image:linear-gradient(180deg,transparent,black 10%,black 90%,transparent);
}
.fs-section h2,.fs-mission h2 { font-size:clamp(1.9rem,3.1vw,2.9rem); max-width:30ch; }
.fs-timeline { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; padding:0; margin:clamp(24px,3vw,38px) 0 0; }
.fs-timeline li { position:relative; min-width:0; isolation:isolate; padding-right:clamp(16px,2.5vw,40px); }
.fs-timeline li::before { content:""; position:absolute; z-index:-1; left:23px; right:0; top:17px; height:1px; background:var(--in-accent); opacity:.66; }
.fs-timeline li:last-child::before { display:none; }
.fs-node { display:inline-grid; place-items:center; width:35px; height:35px; border:1px solid var(--in-accent); border-radius:50%; font:italic 600 .89rem var(--serif); color:#f4deb2; background:#243e2d; }
.fs-period { font-weight:700; font-size:clamp(1.05rem,1.65vw,1.5rem); color:var(--in-accent); margin:11px 0 5px; }
.fs-timeline h3,.fs-cases h3 { font-size:clamp(1.05rem,1.4vw,1.28rem); margin:0 0 8px; }
.fs-timeline li>p:last-child,.fs-cases p,.fs-mission p { color:var(--in-muted); line-height:1.72; }
.fs-mission {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:clamp(20px,4vw,60px);
  margin-top:clamp(34px,4vw,64px); padding:clamp(23px,3.5vw,50px);
  background:linear-gradient(102deg,rgb(28 62 43 / .94),rgb(17 42 31 / .86));
  border-inline-start:3px solid var(--in-accent); border-radius:0 clamp(26px,4vw,60px) 7px 0;
}
.fs-mission .fs-statement { color:#f4edcf; font-size:clamp(1.12rem,1.8vw,1.65rem); line-height:1.48; margin-bottom:10px; }
.fs-cases { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,3.4vw,52px); margin:21px 0 16px; }
.fs-cases article { border-top:1px solid var(--in-line); padding-top:14px; }
.fs-cases small { display:block; margin-bottom:8px; }
.fs-certificates>p:not(.eyebrow) { max-width:80ch; margin:12px 0; color:var(--in-muted); }
.fs-certificates ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; gap:clamp(16px,3vw,44px); padding:0; margin:24px 0; }
.fs-certificates li { padding:17px 0 0; border-top:1px solid var(--in-line); }
.fs-certificates strong { color:var(--in-accent); font-size:clamp(1.2rem,2vw,1.6rem); }
.fs-certificates h3 { font-size:1.05rem; margin:8px 0 12px; }
.fs-certificates dl { display:grid; grid-template-columns:auto 1fr; gap:4px 12px; font-size:.94rem; }
.fs-certificates dt { color:var(--in-muted); }
.fs-certificates dd { margin:0; font-variant-numeric:tabular-nums; }
@media(max-width:820px) { .fs-certificates ul { grid-template-columns:1fr; } }
@media(max-width:820px) {
  .fs-timeline { grid-template-columns:1fr; gap:0; }
  .fs-timeline li { padding:0 0 24px 54px; }
  .fs-node { position:absolute; left:0; top:0; }
  .fs-timeline li::before { left:17px; top:18px; bottom:0; width:1px; height:auto; }
  .fs-period { margin:0 0 3px; }
  .fs-timeline li:last-child { padding-bottom:0; }
  .fs-mission,.fs-cases { grid-template-columns:1fr; }
}
@media(max-width:480px) {
  .fs-contents { column-gap:16px; }
  .fs-contents a { min-height:40px; }
}

