/* Local, buildless pages shared by the exported website modules. */
html { scroll-behavior: smooth; }
[hidden] { display: none !important; }
.static-page { color: #333; background: #fff; }
.static-page h1, .static-page h2, .static-page h3 { color: #181818; }
.static-page .title-section { font-weight: 600; font-size: 30px; }
.static-page p { line-height: 1.85; }
.static-hero { min-height: 600px; display: flex; align-items: center; justify-content: center; position: relative; isolation: isolate; background-size: cover; background-position: center; padding: 40px 24px; text-align: center; color: #fff; overflow: hidden; }
.static-hero video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.static-hero::after { content: ''; position: absolute; inset: 0; background: rgba(0, 10, 30, .12); z-index: -1; }
.static-hero h1 { color: #fff; font-size: 50px; font-weight: 600; margin-bottom: 12px; }
.static-hero p { color: #fff; font-size: 22px; font-weight: 600; margin: 0; }
.static-page main > .page-section, .static-section { padding: 40px max(24px, calc((100% - 1640px) / 2)); border-bottom: 1px solid #eee; }
.static-row { display: flex; flex-wrap: wrap; align-items: center; }
.static-col { width: calc(var(--span) / 24 * 100%); margin-left: calc(var(--offset) / 24 * 100%); min-width: 0; }
.static-page img { max-width: 100%; height: auto; }
.technology-overview { padding: 32px 24px; text-align: center; }
.static-carousel { min-width: 0; padding: 0 20px; }
.static-slide img { display: block; max-height: 470px; width: 100%; object-fit: contain; margin: 0 auto; }
.static-slide h2 { font-size: 23px; color: #645f88; }
.static-slide h3 { font-size: 16px; line-height: 1.85; font-weight: 400; color: #777; }
.carousel-controls { display: flex; justify-content: center; align-items: center; gap: 20px; padding: 16px 0; }
.carousel-controls button { border: 1px solid #ddd; border-radius: 4px; width: 38px; height: 38px; font-size: 26px; line-height: 1; color: #137d9b; background: #f8fafc; cursor: pointer; }
.carousel-controls button:hover { background: #e6f7ff; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid #00bce3; outline-offset: 3px; }
.slide-status { font-size: 14px; color: #777; }
.solution-row { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 40px; }
.solution-row.reverse > :first-child { order: 2; }
.recruitment { display: grid; grid-template-columns: 220px 1fr; gap: 40px; }
.job-filters { border-right: 1px solid #eee; padding-right: 25px; }
.job-filters fieldset { margin-bottom: 25px; }
.job-filters legend { font-size: 20px; }
.job-filters label { display: block; padding: 5px 0; cursor: pointer; }
.job-card { border-bottom: 1px solid #eee; }
.job-card > a { display: block; padding: 22px; color: #666; border-radius: 6px; }
.job-card > a:hover { background: aliceblue; text-decoration: none; }
.job-card h3 { font-size: 20px; line-height: 1.7; }
.salary { color: #df3939; margin-left: 12px; font-size: 18px; }
.job-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pre-wrap { white-space: pre-wrap; line-height: 1.9; overflow-wrap: anywhere; }
.job-detail { max-width: 1200px; margin: auto; padding: 50px 24px; }
.job-detail h1 { font-size: 32px; margin-top: 30px; }
.job-detail h2 { font-size: 22px; border-left: 4px solid #00bce3; padding-left: 12px; margin-top: 36px; }
.benefits { color: #c26325; }
#footer { scroll-margin-top: 80px; }
@media (max-width: 991px) {
  .static-hero { min-height: 420px; }
  .static-hero h1 { font-size: 36px; }
  .static-hero p { font-size: 18px; }
  .static-col { width: 100%; margin: 0; padding: 12px 0; }
  .static-page .title-section { font-size: 26px; }
  .solution-row { grid-template-columns: 1fr; gap: 16px; }
  .solution-row.reverse > :first-child { order: 0; }
  .solution-row > div > div { padding: 0 !important; }
  .static-page h2[style] { margin-top: 30px !important; }
}
@media (max-width: 600px) {
  .static-hero { min-height: 340px; }
  .static-hero h1 { font-size: 29px; }
  .recruitment { grid-template-columns: 1fr; gap: 20px; }
  .job-filters { border-right: 0; border-bottom: 1px solid #eee; padding: 0 0 20px; }
  .job-filters label { display: inline-block; margin-right: 14px; }
  .job-card > a { padding: 18px 0; }
  .salary { display: block; margin: 0; }
  .static-carousel { padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .static-hero video { display: none; }
}
