/* Part 2 — extend the existing Lightflow family, retaining approved hero geometry. */
.part2-section { position:relative; isolation:isolate; overflow:clip; }
.part2-section > .shell { position:relative; z-index:1; }
.part2-section::before { content:""; position:absolute; z-index:0; inset:auto -120px -160px auto; width:min(700px,90vw); height:480px; background:url("assets/signature/lightflow-particles-sparse.svg") center/contain no-repeat; opacity:.24; pointer-events:none; }
.part2-photo-section { background:linear-gradient(115deg,#f5fbff,#e4f5fc 65%,#fff); }
.part2-photo-section::after { content:""; position:absolute; top:10%; left:-180px; width:480px; height:480px; border:55px solid #128bb40b; border-radius:50%; pointer-events:none; }
.part2-intro { max-width:780px; color:#526a83; line-height:1.8; margin:0 0 28px; }
.part2-offerings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.part2-offerings article { min-width:0; padding:clamp(24px,3vw,40px); border:1px solid #cce4ef; border-radius:30px 30px 70px 30px; background:linear-gradient(135deg,#fff,#edf8fd); }
.part2-offerings h3 { font-size:clamp(24px,2.1vw,32px); color:#133964; margin:14px 0; }
.part2-offerings p,.part2-usecases p { color:#506981; line-height:1.8; }
.part2-symbol { display:grid; place-items:center; width:52px; height:52px; border-radius:18px; background:#e0f4fc; color:#047fb7; font-size:29px; }
.part2-usecases { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.part2-usecases details { min-width:0; border:1px solid #cce4ef; border-radius:20px; background:#fff; padding:0 24px; }
.part2-usecases summary { cursor:pointer; padding:22px 0; color:#163e69; font-weight:750; line-height:1.5; }
.part2-usecases summary::marker { color:#0c88ba; }
.part2-usecases p { margin:0 0 24px; }
.part2-usecases summary:focus-visible { outline:3px solid #ffcf25; outline-offset:3px; }
.part2-culture { background:linear-gradient(130deg,#edf8fd,#fff); }
.part2-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.part2-timeline article { min-width:0; border-radius:26px 26px 60px 26px; border:1px solid #d1e8f1; padding:28px; background:linear-gradient(135deg,#fff,#eff9fe); }
.part2-timeline article:last-child { grid-column:1/-1; }
.part2-timeline article::before { display:none; }
.part2-year { display:inline-block; font-size:22px; font-weight:800; color:#087ab3; padding:6px 13px; border-radius:12px; background:#dff3fc; margin-bottom:15px; }
.part2-timeline h3 { font-size:23px; line-height:1.3; }
.part2-timeline p { line-height:1.75; color:#526a83; }
.part2-gallery { width:100%; min-width:0; }
.part2-gallery .part1-gallery-controls { display:grid; grid-template-columns:44px minmax(0,1fr) 44px 44px; gap:10px; max-width:550px; margin:22px auto 0; }
.part2-gallery .part1-gallery-dots { min-width:0; overflow:auto; justify-content:flex-start; gap:4px; padding:5px; scrollbar-width:thin; }
.part2-gallery .part1-gallery-dot { width:32px; height:32px; }
.part2-gallery .part1-gallery-pause { margin-left:0; }
.part1-feature-layout > .part2-gallery { margin:0; max-width:500px; justify-self:center; }
.part2-gallery--portrait { max-width:530px; }
.part2-gallery--portrait .part1-gallery-stage { aspect-ratio:4/5; }
.part2-gallery .part1-gallery-stage { touch-action:pan-y; }
.part2-gallery .part1-gallery-slide img { height:100%; width:100%; aspect-ratio:auto; object-fit:cover; }
.part2-gallery .part1-gallery-slide.part2-portrait img { object-position:center 38%; }
.article-cover { max-width:960px; margin:28px auto; padding:8px; background:linear-gradient(135deg,#d4eff9,#1b91bb,#ffd02e); border-radius:44px 110px 44px 70px; overflow:hidden; }
.article-cover img { width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:36px 102px 36px 62px; display:block; }
@media(max-width:900px) { .part2-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) {
 .part2-offerings,.part2-usecases,.part2-timeline { grid-template-columns:1fr; }
 .part2-timeline article:last-child { grid-column:auto; }
 .part2-timeline article { padding:23px; }
 .part2-gallery .part1-gallery-controls { grid-template-columns:42px minmax(0,1fr) 42px 42px; gap:6px; }
 .part2-gallery .part1-gallery-dot { width:30px; height:30px; }
 .part2-gallery .part1-gallery-dots { gap:3px; }
 .part2-gallery--portrait { max-width:430px; }
 .article-cover { margin:24px 20px; border-radius:28px 66px 28px 46px; padding:6px; }
 .article-cover img { border-radius:22px 60px 22px 40px; }
}
