/* Factory photographs: shared additions for the existing LOONG website. */
.factory-section { padding: 88px 0; }
.factory-section.soft { background: #f5f3ed; }
.factory-section .eyebrow { color: #49658d; }
.factory-section h2 { color: #102748; }
.factory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.factory-photo, .factory-home-card { margin: 0; min-width: 0; }
.factory-photo-link { position: relative; display: block; overflow: hidden; border-radius: 18px; background: #e8e9e7; }
.factory-photo-link img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .25s ease; }
.factory-photo-link:hover img { transform: scale(1.025); }
.factory-photo-link:focus-visible, .factory-home-card:focus-visible { outline: 3px solid #3f66ff; outline-offset: 5px; }
.factory-zoom { position: absolute; right: 14px; bottom: 14px; width: 34px; height: 34px; display: grid; place-items: center; color: #fff; background: rgba(16,39,72,.85); border-radius: 50%; font-size: 21px; }
.factory-photo figcaption { padding-top: 17px; }
.factory-photo figcaption strong { display: block; color: #102748; font-size: 18px; line-height: 1.35; }
.factory-photo figcaption p { color: #667183; font-size: 14px; line-height: 1.7; margin: 8px 0 0; }
.factory-home-card { display: block; border: 1px solid #e1e2df; border-radius: 20px; overflow: hidden; background: #fff; transition: box-shadow .2s ease; }
.factory-home-card:hover { box-shadow: 0 14px 32px rgba(16,39,72,.09); }
.factory-home-card img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.factory-home-copy { padding: 23px 24px 25px; }
.factory-home-copy h3 { color: #102748; margin: 0 0 9px; font-size: 23px; letter-spacing: -.035em; }
.factory-home-copy p { color: #667183; margin: 0; font-size: 14px; line-height: 1.7; }
.factory-home-copy .factory-link { display: inline-block; margin-top: 17px; font-size: 13px; font-weight: 750; color: #264976; }
.factory-hero { padding: 64px 0; }
.factory-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 68px; align-items: center; }
.factory-hero-grid h1 { max-width: 690px; font-size: clamp(42px, 5.4vw, 70px); line-height: 1.03; letter-spacing: -.055em; margin: 17px 0 24px; }
.factory-hero-grid p { max-width: 570px; font-size: 17px; line-height: 1.75; }
.factory-hero-photo { position: relative; margin: 0; }
.factory-hero-photo .factory-photo-link { border-radius: 22px; }
.factory-hero-photo img { aspect-ratio: 4 / 5; max-height: 545px; }
.factory-hero-photo figcaption { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 24px 24px; color: #fff; font-size: 15px; font-weight: 700; background: linear-gradient(transparent,rgba(8,21,39,.8)); border-radius: 0 0 22px 22px; pointer-events: none; }
.factory-hero-photo .factory-zoom { bottom: 64px; }
.factory-location { display: inline-flex; align-items: center; gap: 9px; color: #dce5f5; font-size: 13px; margin-bottom: 25px; }
.factory-location::before { content: ''; width: 7px; height: 7px; background: #ff6b2c; border-radius: 50%; }
.factory-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 29px; }
.factory-hero .factory-actions .btn.primary { background: #fff; border-color: #fff; color: #102748; }
.factory-hero .factory-actions .btn.secondary { background: transparent; border-color: #8190a9; color: #fff; }
.factory-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 25px; }
.factory-tags span { border: 1px solid #4a5a75; color: #d7e0ef; border-radius: 999px; padding: 5px 11px; font-size: 12px; }
.factory-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 62px; align-items: center; margin-bottom: 44px; }
.factory-split h2 { font-size: clamp(35px, 4vw, 54px); line-height: 1.09; letter-spacing: -.045em; margin: 16px 0 22px; }
.factory-split p { color: #667183; line-height: 1.8; }
.factory-split > .factory-photo .factory-photo-link img { max-height: 545px; }
.factory-points { list-style: none; padding: 0; margin: 25px 0 0; border-top: 1px solid #dbdedf; }
.factory-points li { padding: 13px 0; border-bottom: 1px solid #dbdedf; font-size: 14px; font-weight: 650; color: #264976; }
.factory-points li::before { content: '＋'; color: #e65b2c; margin-right: 11px; }
.factory-grid + .factory-note { margin: 23px 0 0; color: #667183; font-size: 13px; }
.factory-quality-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 35px; }
.factory-quality-photos .factory-photo-link img { aspect-ratio: 3 / 2; }
.factory-check { padding: 25px; border-radius: 16px; border: 1px solid #e0e3e6; background: #fff; }
.factory-check h3 { margin: 0 0 10px; font-size: 21px; color: #102748; }
.factory-check p { margin: 0; font-size: 14px; color: #667183; line-height: 1.75; }
.factory-direct .factory-split { grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); margin-bottom: 0; }
.factory-direct .factory-photo { max-width: 410px; }
.factory-direct-links { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 27px; }
.factory-cta { padding: 52px 0 70px; background: #f6f4ee; }
.factory-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 35px; }
.factory-cta h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.15; letter-spacing: -.04em; color: #102748; margin: 0 0 15px; max-width: 620px; }
.factory-cta p { color: #667183; max-width: 650px; margin: 0; }
.factory-cta .factory-actions { flex-shrink: 0; margin: 0; flex-direction: column; }
section[id] { scroll-margin-top: 96px; }
.factory-modal-open { overflow: hidden; }
.factory-lightbox { border: 0; border-radius: 18px; padding: 0; width: min(1100px, calc(100vw - 28px)); max-width: none; max-height: calc(100dvh - 28px); color: #102748; background: #f5f4f0; }
.factory-lightbox::backdrop { background: rgba(7,17,33,.84); }
.factory-lightbox[open] { display: flex; flex-direction: column; }
.factory-lightbox-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 20px; }
.factory-lightbox-title { font-size: 18px; font-weight: 750; margin: 0; }
.factory-modal-close { display: grid; place-items: center; flex-shrink: 0; width: 42px; height: 42px; border: 1px solid #cfd5dd; border-radius: 50%; font-size: 28px; line-height: 1; cursor: pointer; background: #fff; color: #102748; }
.factory-lightbox-stage { background: #111e30; min-height: 0; overflow: auto; display: grid; place-items: center; }
.factory-lightbox-stage img { display: block; max-width: 100%; width: auto; max-height: calc(100dvh - 190px); height: auto; object-fit: contain; }
.factory-lightbox-footer { padding: 14px 20px 18px; }
.factory-lightbox-caption { margin: 0 0 13px; color: #526175; font-size: 13px; }
.factory-lightbox-controls { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.factory-lightbox-controls button { cursor: pointer; border: 1px solid #cfd5dd; border-radius: 9px; padding: 9px 15px; color: #102748; background: #fff; font-size: 13px; font-weight: 650; }
.factory-lightbox button:focus-visible { outline: 3px solid #3f66ff; outline-offset: 3px; }
.factory-photo-counter { font-size: 13px; color: #667183; }
@media (max-width: 1000px) {
  .factory-hero-grid, .factory-split { gap: 35px; }
  .factory-grid { gap: 18px; }
  .factory-photo figcaption strong { font-size: 16px; }
  .factory-home-copy { padding: 20px; }
}
@media (max-width: 760px) {
  .factory-section { padding: 62px 0; }
  .factory-hero { padding: 42px 0; }
  .factory-hero-grid, .factory-split, .factory-direct .factory-split { grid-template-columns: 1fr; gap: 32px; }
  .factory-hero-grid h1 { font-size: clamp(41px, 9vw, 62px); }
  .factory-hero-photo { max-width: 470px; width: 100%; }
  .factory-hero-photo img { max-height: none; }
  .factory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
  .factory-home-grid { grid-template-columns: 1fr; }
  .factory-home-card { display: grid; grid-template-columns: .85fr 1.15fr; }
  .factory-home-card img { height: 100%; aspect-ratio: auto; min-height: 190px; }
  .factory-quality-photos { gap: 18px; }
  .factory-check-grid { grid-template-columns: 1fr; }
  .factory-cta-inner { display: block; }
  .factory-cta .factory-actions { flex-direction: row; margin-top: 25px; }
  .factory-direct .factory-photo { max-width: 410px; }
}
@media (max-width: 480px) {
  .factory-grid, .factory-quality-photos { grid-template-columns: 1fr; }
  .factory-photo-link img { max-height: 520px; }
  .factory-home-card { display: block; }
  .factory-home-card img { height: auto; aspect-ratio: 3 / 2; min-height: 0; }
  .factory-actions .btn { justify-content: center; }
  .factory-lightbox-header { padding: 12px 15px; }
  .factory-lightbox-title { font-size: 16px; }
  .factory-lightbox-footer { padding: 12px 15px 15px; }
  .factory-lightbox-controls button { padding: 9px 11px; }
  .factory-lightbox-stage img { max-height: calc(100dvh - 210px); }
}
@media (prefers-reduced-motion: reduce) {
  .factory-photo-link img, .factory-home-card { transition: none; }
  .factory-photo-link:hover img { transform: none; }
}
