/* Keyword landing pages (health and safety, hazardous areas, engineering services)
   and the crawlable application list on the home page. */
.lp main { position: relative; }
.lp-hero { padding: 120px 0 64px; background: radial-gradient(900px 500px at 80% 30%, rgba(1,127,248,.18), transparent 65%), linear-gradient(180deg, #06142C, #0B1A35); }
.lp-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.lp-hero__inner:has(> :only-child) { grid-template-columns: minmax(0, 860px); }
.lp-crumbs { display: flex; gap: 8px; font-size: .85rem; color: var(--muted); margin-bottom: 18px; }
.lp-crumbs a { color: var(--text-2); text-decoration: none; }
.lp-crumbs a:hover { color: #fff; }
.lp-hero h1 { font-size: clamp(2.1rem, 4.2vw, 3.6rem); font-weight: 600; letter-spacing: -.02em; margin: 18px 0 16px; color: #fff; }
.lp-lead { font-size: clamp(1.04rem, 1.4vw, 1.2rem); color: #D4E1F4; max-width: 640px; }
.lp-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.lp-ctas--c { justify-content: center; }
.lp-note { margin-top: 14px; font-size: .88rem; color: var(--muted); }
.lp-hero__shot, .lp-shot { margin: 0; border-radius: 14px; overflow: hidden; border: 1px solid var(--line-2); background: #0E1730; box-shadow: 0 30px 70px -30px rgba(0,0,0,.8); }
.lp-hero__shot figcaption, .lp-shot figcaption { font-family: var(--f-mono); font-size: .72rem; color: var(--muted); padding: 8px 12px; border-top: 1px solid var(--line); }
.lp-section { padding: clamp(64px, 8vw, 104px) 0; background: var(--bg-1); }
.lp-section.light { background: var(--light); }
.lp-section--apps { background: var(--bg-0); }
.lp-narrow { max-width: 820px; }
.lp-section h2 { font-size: clamp(1.6rem, 2.8vw, 2.3rem); margin-bottom: 16px; }
.lp-section p { color: var(--text-2); font-size: 1.04rem; }
.lp-section.light p { color: var(--ink-2); }
.lp-h2c { text-align: center; }
.lp-group + .lp-group { margin-top: 64px; }
.lp-group__intro { max-width: 760px; }
.lp-apps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.lp-app { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); background: var(--panel); }
.lp-app__img { width: 100%; aspect-ratio: 1018 / 560; object-fit: cover; object-position: top left; border-bottom: 1px solid var(--line); }
.lp-app__body { padding: 18px 18px 20px; }
.lp-app h3 { font-size: 1.1rem; margin-bottom: 6px; }
.lp-app p { font-size: .94rem !important; margin-bottom: 10px; }
.lp-app ul { margin: 0 0 12px; padding-left: 18px; color: var(--text-2); font-size: .9rem; line-height: 1.55; }
.lp-std { display: flex; flex-wrap: wrap; gap: 6px; }
.lp-std span { font-family: var(--f-mono); font-size: .72rem; padding: 3px 8px; border-radius: 6px; background: rgba(1,186,253,.08); border: 1px solid rgba(1,186,253,.25); color: #9FDDF8; }
.lp-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.lp-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.lp-points > div { background: #fff; border: 1px solid var(--light-2); border-radius: 14px; padding: 20px; }
.lp-points h3 { font-size: 1.05rem; color: var(--ink); margin-bottom: 6px; }
.lp-points p { font-size: .94rem !important; margin: 0; }
.lp-disclaimer { margin-top: 22px; font-size: .86rem !important; color: var(--muted) !important; }
.lp-svcs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 22px; }
.lp-svc { padding: 22px 20px; border-radius: 14px; border: 1px solid var(--line); background: linear-gradient(180deg, rgba(33,48,86,.6), rgba(17,27,50,.6)); position: relative; overflow: hidden; }
.lp-svc::before { content: ''; position: absolute; top: 0; left: 20px; right: 20px; height: 2px; background: linear-gradient(90deg, var(--blue), var(--cyan)); }
.lp-svc .mono { font-size: .72rem; color: var(--cyan); letter-spacing: .12em; }
.lp-svc h3 { margin: 10px 0 8px; font-size: 1.08rem; }
.lp-svc p { font-size: .92rem !important; margin: 0; }
.lp-steps { padding-left: 20px; color: var(--text-2); line-height: 1.7; }
.lp-steps li { margin-bottom: 8px; }
.lp-steps b { color: #fff; }
.lp-faq .acc details p { color: var(--ink-2); }
.lp-cta { padding: clamp(70px, 9vw, 110px) 0; text-align: center; background: radial-gradient(700px 400px at 50% 40%, rgba(1,127,248,.2), transparent 70%), var(--bg-0); }
.lp-cta h2 { font-size: clamp(1.8rem, 3.4vw, 2.8rem); }
.lp-cta p { color: var(--text-2); margin-top: 10px; }
.lp .nav__links a.is-active { color: #fff; background: rgba(255,255,255,.06); }
@media (max-width: 1100px) { .lp-apps, .lp-points { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lp-svcs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) { .lp-hero__inner, .lp-split { grid-template-columns: 1fr; } .lp-hero { padding-top: 100px; } }
@media (max-width: 600px) { .lp-apps, .lp-points, .lp-svcs { grid-template-columns: 1fr; } .lp-ctas .btn { width: 100%; justify-content: center; } }

/* Home: full application list, readable by search engines and AI tools. */
.dir { margin-top: 26px; border: 1px solid var(--line); border-radius: 14px; background: rgba(27,41,69,.45); }
.dir > summary { cursor: pointer; padding: 16px 20px; font-family: var(--f-head); font-weight: 600; color: var(--text); list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.dir > summary::-webkit-details-marker { display: none; }
.dir > summary::after { content: '+'; font-family: var(--f-mono); color: var(--cyan); }
.dir[open] > summary::after { content: '−'; }
.dir__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 32px; padding: 4px 20px 8px; }
.dir__cat { padding: 12px 0; }
.dir__cat h3 { font-size: 1rem; margin-bottom: 4px; }
.dir__cat p { font-size: .88rem; color: var(--muted); margin-bottom: 8px; }
.dir__cat ul { margin: 0; padding-left: 18px; font-size: .88rem; color: var(--text-2); line-height: 1.55; }
.dir__cat li { margin-bottom: 4px; }
.dir__cat b { color: var(--text); font-weight: 600; }
.dir__roles { padding: 4px 20px 20px; border-top: 1px solid var(--line); }
@media (max-width: 760px) { .dir__grid { grid-template-columns: 1fr; } }

/* Engineering hero slideshow */
.lp-car__track { list-style: none; margin: 0; padding: 0; position: relative; aspect-ratio: 4 / 3; background: #0A1630; }
.lp-car__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s linear .8s; }
.lp-car__slide.is-on { opacity: 1; visibility: visible; transition: opacity .8s ease; }
.lp-car__slide img { width: 100%; height: 100%; object-fit: contain; display: block; }
.lp-car figcaption { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.lp-car__ctl { display: flex; align-items: center; gap: 6px; flex: none; }
.lp-car__dot { width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.lp-car__dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: rgba(201,216,238,.35); transition: background .2s, transform .2s; }
.lp-car__dot.is-on::before { background: var(--cyan); transform: scale(1.25); }
.lp-car__dot:hover::before { background: #C9D8EE; }
.lp-car__pause { width: 24px; height: 24px; padding: 0; border: 1px solid rgba(201,216,238,.3); border-radius: 50%; background: none; color: #C9D8EE; cursor: pointer; display: grid; place-items: center; }
.lp-car__pause span { width: 8px; height: 9px; border-left: 2.5px solid currentColor; border-right: 2.5px solid currentColor; }
.lp-car__pause[aria-pressed="true"] span { width: 0; height: 0; border: 0; border-left: 8px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; margin-left: 2px; }
.lp-car button:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; border-radius: 50%; }
@media (prefers-reduced-motion: reduce) { .lp-car__slide, .lp-car__slide.is-on { transition: none; } }
