/* Factory page only: capability cards and captioned photography. */
.factory-overview { max-width: 820px; margin: 0 auto; text-align: center; }
.factory-overview h2 { font-size: clamp(26px, 3vw, 34px); margin-bottom: 18px; }
.factory-overview > p { color: var(--text-light); line-height: 1.8; }
.factory-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 30px 0 0; }
.factory-facts > div { padding: 20px 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-soft); }
.factory-facts dt { color: var(--text-light); font-size: 13px; margin-bottom: 8px; }
.factory-facts dd { margin: 0; color: var(--primary); font-weight: 800; font-size: clamp(22px, 3vw, 30px); }
.factory-plants .why-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.factory-plants .why-card > img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.factory-plants .why-card-body { padding: 22px 24px 24px; }
.factory-photo-note { display: block; margin-top: 14px; color: var(--text-light); font-size: 12px; }
.factory-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.factory-gallery figure { margin: 0; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: #fff; }
.factory-gallery a { display: block; }
.factory-gallery a:focus-visible { outline: 3px solid var(--primary); outline-offset: -3px; }
.factory-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.factory-gallery figcaption { padding: 18px 20px; color: var(--text-light); font-size: 14px; line-height: 1.6; }
.factory-gallery figcaption strong { display: block; color: var(--text); margin-bottom: 5px; font-size: 16px; }
@media (max-width: 900px) { .factory-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .factory-facts { gap: 8px; }
  .factory-facts > div { padding: 16px 6px; }
  .factory-facts dt { font-size: 11px; }
  .factory-facts dd { font-size: 22px; }
  .factory-gallery { grid-template-columns: 1fr; gap: 18px; }
}
