/* FEMCO 1949 – Engineering & Construction pages. Classes prefixed eg-, scoped to .eg-page; loaded only on services/engineering. */
/* ---- from femco_d50/assets/engineering.css ---- */
.eg-page {--anchor-offset: 24px;
  --navy: #0A2432;
  --navy-deep: #061822;
  --navy-soft: #123746;
  --ink: #102A36;
  --text: #43565F;
  --muted: #6B7B83;
  --paper: #F4F1EA;
  --paper-deep: #EBE6DC;
  --white: #FFFFFF;
  --line: #DCE2E3;
  --line-dark: rgba(255, 255, 255, .14);
  --accent: #C93A1E;
  --accent-deep: #A92E16;
  --accent-bright: #FA4C2A;
  --accent-soft: #FF7A5C;
  --container: 1180px;}
.eg-page *, .eg-page *::before, .eg-page *::after {box-sizing: border-box;}
.eg-page {scroll-behavior: smooth; -webkit-text-size-adjust: 100%;}
.eg-page {margin: 0;
  font-family: "Roboto", "Noto Sans TC", "Microsoft JhengHei", "PingFang TC", sans-serif;
  font-size: 16px;
  line-height: 1.8;
  color: var(--text);
  background: var(--white);
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;}
.eg-page img {display: block; max-width: 100%;}
.eg-page a {color: inherit; text-decoration: none;}
.eg-page button, .eg-page input, .eg-page select, .eg-page textarea {font: inherit;}
.eg-page button {cursor: pointer;}
.eg-page h1, .eg-page h2, .eg-page h3, .eg-page h4, .eg-page p, .eg-page blockquote, .eg-page figure {margin: 0;}
.eg-page ul, .eg-page ol {margin: 0; padding: 0;}
.eg-page ::selection {background: var(--accent-bright); color: #fff;}
.eg-container {width: min(var(--container), calc(100% - 80px));
  margin-inline: auto;}
.eg-page section[id], .eg-page main[id] {scroll-margin-top: var(--anchor-offset);}
.eg-service-card[id] {scroll-margin-top: calc(var(--anchor-offset) + 8px);}
.eg-page :focus-visible {outline: 3px solid var(--accent-bright);
  outline-offset: 3px;}
.eg-icon {width: 1em;
  height: 1em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;}
.eg-icon--fill {fill: currentColor; stroke: none;}
.eg-eyebrow {display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Roboto", sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent);}
.eg-eyebrow::before {content: "";
  width: 28px;
  height: 2px;
  flex: 0 0 auto;
  background: var(--accent-bright);}
.eg-eyebrow--light {color: #FF9C85;}
.eg-eyebrow--light::before {background: var(--accent-soft);}
.eg-eyebrow .eg-num {color: var(--muted); font-weight: 500;}
.eg-eyebrow--light .eg-num {color: rgba(255, 255, 255, .38);}
.eg-section, .eg-about, .eg-services, .eg-future, .eg-projects, .eg-video, .eg-contact {position: relative;
  padding: 112px 0;}
.eg-section-title {max-width: 860px;
  margin-top: 16px;
  color: var(--ink);
  font-family: "Roboto", "Noto Sans TC", sans-serif;
  font-size: clamp(32px, 4.2vw, 52px);
  font-weight: 900;
  line-height: 1.16;
  letter-spacing: -.04em;}
.eg-section-desc {max-width: 680px;
  margin-top: 18px;
  font-size: 15px;
  line-height: 1.9;
  color: var(--muted);}
.eg-section-head {display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 48px;}
.eg-section-head__copy {max-width: 760px; min-width: 0;}
.eg-section-link {display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(201, 58, 30, .35);
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  transition: gap .2s ease, border-color .2s ease;}
.eg-section-link .eg-icon {width: 14px; height: 14px;}
.eg-section-link:hover {gap: 12px; border-color: var(--accent);}
.eg-section-link--light {color: #FF9C85; border-bottom-color: rgba(255, 156, 133, .35);}
.eg-btn {display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 24px;
  border: 1px solid transparent;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .03em;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;}
.eg-btn .eg-icon {width: 16px; height: 16px;}
.eg-btn-primary {background: var(--accent); color: #fff;}
.eg-btn-primary:hover {background: var(--accent-deep); transform: translateY(-2px);}
.eg-btn-ghost {border-color: rgba(255, 255, 255, .34);
  background: rgba(255, 255, 255, .04);
  color: #fff;}
.eg-btn-ghost:hover {border-color: #fff; background: rgba(255, 255, 255, .12); transform: translateY(-2px);}
.eg-reveal {will-change: opacity, transform;}
.js .eg-reveal {opacity: 0;
  transform: translateY(24px);
  transition: opacity .75s ease, transform .75s cubic-bezier(.2, .65, .2, 1);}
.js .eg-reveal.is-in {opacity: 1; transform: none;}
.eg-hero {position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 820px;
  height: 94vh;
  max-height: 980px;
  padding-top: 0;
  padding-bottom: 76px;
  overflow: hidden;
  background: var(--navy-deep);
  color: #fff;}
.eg-hero-bg {position: absolute;
  inset: 0;
  background: url("../img/engineering/DJI_0013.jpg") center 30% / cover no-repeat;
  transform: scale(1.03);
  filter: saturate(.92) contrast(1.03);}
.eg-hero-scrim {position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(4, 18, 26, .78) 0%, rgba(4, 18, 26, .52) 43%, rgba(4, 18, 26, .08) 100%),
    linear-gradient(0deg, rgba(4, 18, 26, .78) 0%, rgba(4, 18, 26, .04) 58%, rgba(4, 18, 26, .24) 100%);}
.eg-hero-inner {position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.33fr) minmax(230px, .67fr);
  gap: 54px;
  align-items: end;
  padding-top: 120px;
  padding-bottom: 82px;}
.eg-hero-copy {min-width: 0; max-width: 790px;}
.eg-hero-eyebrow {display: flex;
  align-items: center;
  gap: 13px;
  font-family: "Roboto", sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .22em;
  color: rgba(255, 255, 255, .66);}
.eg-hero-eyebrow::before {content: ""; width: 34px; height: 2px; background: var(--accent-soft);}
.eg-hero-eyebrow span {color: var(--accent-soft);}
.eg-hero h1 {margin: 20px 0 24px;
  color: #fff;
  font-family: "Roboto", "Noto Sans TC", sans-serif;
  font-size: clamp(46px, 6.5vw, 84px);
  font-weight: 900;
  line-height: 1.06;
  letter-spacing: -.045em;}
.eg-hero h1 em {font-style: normal; color: #FF8A6E;}
.eg-hero-lead {max-width: 640px;
  font-size: clamp(14.5px, 1.35vw, 17px);
  line-height: 1.95;
  color: rgba(255, 255, 255, .76);}
.eg-hero-actions {display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px;}
.eg-hero-tags {display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px;}
.eg-hero-tags span {padding: 5px 9px;
  border: 1px solid rgba(255, 255, 255, .20);
  background: rgba(0, 0, 0, .12);
  color: rgba(255, 255, 255, .68);
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .04em;}
.eg-hero-index {align-self: end;
  padding: 0 0 8px 28px;
  border-left: 1px solid rgba(255, 255, 255, .22);}
.eg-hero-index__label {display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  font-family: "Roboto", sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .22em;
  color: #FF9C85;
  text-transform: uppercase;}
.eg-hero-index__label::before {content: "";
  width: 28px;
  height: 2px;
  flex: 0 0 auto;
  background: var(--accent-soft);}
.eg-hero-index a {display: grid;
  grid-template-columns: 26px 1fr;
  gap: 9px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .10);
  transition: transform .2s ease;}
.eg-hero-index a:last-child {border-bottom: 0;}
.eg-hero-index .eg-n {padding-top: 2px; font-family: "Roboto", sans-serif; font-size: 9px; font-weight: 500; color: var(--accent-soft);}
.eg-hero-index .eg-t {display: block; font-size: 12.5px; font-weight: 500; color: rgba(255, 255, 255, .80); line-height: 1.5;}
.eg-hero-index .eg-e {display: block; margin-top: 1px; font-family: "Roboto", sans-serif; font-size: 8px; letter-spacing: .14em; color: rgba(255, 255, 255, .32);}
.eg-hero-index a:hover {transform: translateX(4px);}
.eg-hero-index a:hover .eg-t {color: #fff;}
.eg-hero-bottom {position: relative; z-index: 1; border-top: 1px solid rgba(255, 255, 255, .16);}
.eg-hero-bottom .eg-container {display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 56px;}
.eg-hero-meta {display: flex;
  flex-wrap: wrap;
  gap: 28px;
  font-family: "Roboto", sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .16em;
  color: rgba(255, 255, 255, .42);
  text-transform: uppercase;}
.eg-hero-meta strong {color: rgba(255, 255, 255, .78); font-weight: 500;}
.eg-scroll-cue {display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Roboto", sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .2em;
  color: rgba(255, 255, 255, .52);}
.eg-scroll-cue::before {content: ""; width: 28px; height: 1px; background: rgba(255, 255, 255, .32);}
.eg-scroll-cue .eg-icon {width: 13px; height: 13px;}
.eg-hero-copy > * {animation: hero-up .9s cubic-bezier(.2, .65, .2, 1) both;}
.eg-hero-copy > *:nth-child(2) {animation-delay: .08s;}
.eg-hero-copy > *:nth-child(3) {animation-delay: .16s;}
.eg-hero-copy > *:nth-child(4) {animation-delay: .24s;}
.eg-hero-copy > *:nth-child(5) {animation-delay: .32s;}
@keyframes hero-up {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}
.eg-stats {position: relative;
  z-index: 3;
  margin-top: -64px;}
.eg-stats-grid {display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 24px 60px rgba(10, 36, 50, .12);}
.eg-stat {padding: 28px 30px 25px; border-left: 1px solid var(--line); min-width: 0;}
.eg-stat:first-child {border-left: 0;}
.eg-stat__num {color: var(--ink);
  font-family: "Roboto", sans-serif;
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: -.045em;}
.eg-stat__num sup {vertical-align: top; margin-left: 1px; font-size: .52em; color: var(--accent);}
.eg-stat__label {margin-top: 10px; color: var(--ink); font-size: 13px; font-weight: 500; line-height: 1.5;}
.eg-stat__en {margin-top: 3px;
  font-family: "Roboto", sans-serif;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .17em;
  color: var(--muted);
  text-transform: uppercase;}
.eg-about {overflow: hidden; background: var(--paper);}
.eg-about::before {content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(13, 46, 60, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 46, 60, .045) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: .65;
  pointer-events: none;}
.eg-about .eg-container {position: relative; z-index: 1;}
.eg-about-grid {display: grid;
  grid-template-columns: 1.02fr .98fr;
  gap: clamp(40px, 7vw, 90px);
  align-items: center;}
.eg-about-copy {min-width: 0;}
.eg-about-lead {margin: 18px 0 20px;
  color: var(--ink);
  font-size: clamp(17px, 1.8vw, 20px);
  font-weight: 500;
  line-height: 1.8;}
.eg-about-copy > p:not(.eg-about-lead) {margin-bottom: 15px; font-size: 14.5px; line-height: 1.95; color: var(--text);}
.eg-about-quote {margin: 28px 0;
  padding: 4px 0 4px 22px;
  border-left: 3px solid var(--accent);
  color: var(--ink);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.75;}
.eg-check-list {display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 18px;
  margin-top: 28px;
  list-style: none;}
.eg-check-list li {display: flex; align-items: flex-start; gap: 9px; font-size: 13px; line-height: 1.65; color: var(--text);}
.eg-check-list .eg-icon {width: 15px; height: 15px; margin-top: 3px; color: var(--accent);}
.eg-about-media {position: relative; margin: 0; padding: 0 18px 18px 0; min-width: 0;}
.eg-about-media::before {content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 58%;
  height: 58%;
  border-right: 2px solid var(--accent-bright);
  border-bottom: 2px solid var(--accent-bright);
  opacity: .62;
  pointer-events: none;}
.eg-about-media img {width: 100%;
  height: 540px;
  object-fit: cover;
  object-position: center;
  filter: saturate(.92) contrast(1.02);}
.eg-about-media figcaption {position: absolute;
  right: 18px;
  bottom: 18px;
  left: 0;
  padding: 44px 24px 20px;
  background: linear-gradient(0deg, rgba(5, 23, 32, .92), transparent);
  color: rgba(255, 255, 255, .74);
  font-size: 11px;
  line-height: 1.7;}
.eg-about-media figcaption strong {display: block; margin-bottom: 2px; color: #fff; font-size: 12px; font-weight: 500;}
.eg-about-badge {position: absolute;
  top: 24px;
  left: -24px;
  min-width: 126px;
  padding: 15px 18px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 16px 36px rgba(10, 36, 50, .12);}
.eg-about-badge strong {display: block;
  color: var(--ink);
  font-family: "Roboto", sans-serif;
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.04em;}
.eg-about-badge strong sup {vertical-align: top; font-size: .45em; color: var(--accent);}
.eg-about-badge span {display: block;
  margin-top: 6px;
  color: var(--muted);
  font-family: "Roboto", sans-serif;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .15em;
  line-height: 1.4;}
.eg-services {background: #fff;}
.eg-service-grid {display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;}
.eg-service-card {display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--line);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;}
.eg-service-card:hover {transform: translateY(-5px);
  border-color: #C8D2D5;
  box-shadow: 0 24px 50px rgba(10, 36, 50, .10);}
.eg-service-media {position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--navy);}
.eg-service-media img {width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .6, .2, 1);}
.eg-service-card:hover .eg-service-media img {transform: scale(1.05);}
.eg-service-media::after {content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(4, 18, 26, .86) 0%, rgba(4, 18, 26, .02) 58%);}
.eg-service-num {position: absolute;
  top: 14px;
  left: 14px;
  z-index: 1;
  padding: 4px 7px;
  border: 1px solid rgba(255, 255, 255, .38);
  background: rgba(0, 0, 0, .18);
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;}
.eg-service-en {position: absolute;
  right: 18px;
  bottom: 14px;
  left: 18px;
  z-index: 1;
  color: rgba(255, 255, 255, .70);
  font-family: "Roboto", sans-serif;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;}
.eg-service-body {display: flex; flex-direction: column; flex: 1; padding: 23px 24px 25px;}
.eg-service-body h3 {color: var(--ink);
  font-family: "Roboto", "Noto Sans TC", sans-serif;
  font-size: 23px;
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: -.025em;}
.eg-service-body h3 small {display: block;
  margin-top: 4px;
  color: var(--accent);
  font-family: "Roboto", sans-serif;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .16em;}
.eg-service-body > p {margin: 12px 0 16px; color: var(--text); font-size: 13px; line-height: 1.85;}
.eg-service-tags {display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto;}
.eg-service-tags span {padding: 4px 7px;
  border: 1px solid #E6E0D8;
  background: var(--paper);
  color: var(--muted);
  font-size: 9.5px;
  line-height: 1.4;}
.eg-service-link {display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  margin-top: 18px;
  color: var(--accent);
  font-size: 11.5px;
  font-weight: 700;}
.eg-service-link .eg-icon {width: 13px; height: 13px; transition: transform .25s ease;}
.eg-service-link:hover .eg-icon {transform: translate(3px, -3px);}
.eg-service-card--cta {position: relative;
  overflow: hidden;
  padding: 28px;
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;}
.eg-service-card--cta::before {content: "EPC";
  position: absolute;
  right: -10px;
  bottom: -30px;
  color: rgba(255, 255, 255, .045);
  font-family: "Roboto", sans-serif;
  font-size: 132px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.1em;
  pointer-events: none;}
.eg-service-card--cta .eg-service-num {position: static; display: inline-block; margin-bottom: 18px;}
.eg-service-card--cta h3 {margin: 0 0 10px; color: #fff; font-size: 25px;}
.eg-service-card--cta h3 small {color: #FF9C85;}
.eg-service-card--cta > p {margin: 0; color: rgba(255, 255, 255, .66); font-size: 13px; line-height: 1.85;}
.eg-cta-list {display: grid; gap: 8px; margin: 20px 0 24px; list-style: none;}
.eg-cta-list li {display: flex; align-items: flex-start; gap: 8px; color: rgba(255, 255, 255, .78); font-size: 11.5px; line-height: 1.6;}
.eg-cta-list .eg-icon {width: 14px; height: 14px; margin-top: 2px; color: #FF9C85;}
.eg-cta-button {display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  align-self: flex-start;
  min-height: 42px;
  margin-top: auto;
  padding: 0 16px;
  background: var(--accent);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;}
.eg-cta-button .eg-icon {width: 14px; height: 14px;}
.eg-cta-button:hover {background: var(--accent-deep);}
.eg-impact {position: relative; overflow: hidden; padding: 118px 0; background: var(--navy); color: #fff;}
.eg-impact-bg {position: absolute;
  inset: 0;
  background: url("../img/engineering/impact.jpg") center 45% / cover no-repeat;
  transform: scale(1.02);
  filter: saturate(.82) contrast(1.04);}
.eg-impact-scrim {position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(4, 18, 26, .94) 0%, rgba(4, 18, 26, .68) 58%, rgba(4, 18, 26, .58) 100%),
    linear-gradient(0deg, rgba(4, 18, 26, .82), rgba(4, 18, 26, .08) 58%);}
.eg-impact::before {content: "1975";
  position: absolute;
  right: -20px;
  bottom: -72px;
  z-index: 0;
  color: rgba(255, 255, 255, .045);
  font-family: "Roboto", sans-serif;
  font-size: clamp(170px, 24vw, 340px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.1em;
  pointer-events: none;}
.eg-impact .eg-container {position: relative; z-index: 1;}
.eg-impact-inner {max-width: 940px;}
.eg-impact blockquote {margin: 20px 0 34px;
  color: #fff;
  font-family: "Roboto", "Noto Sans TC", sans-serif;
  font-size: clamp(23px, 3.25vw, 39px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: -.025em;}
.eg-impact blockquote em {font-style: normal; color: #FF9C85;}
.eg-impact-meta {display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, .24);
  color: rgba(255, 255, 255, .54);
  font-family: "Roboto", sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;}
.eg-future {overflow: hidden; background: var(--navy); color: #fff;}
.eg-future::before {content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: .55;
  pointer-events: none;}
.eg-future .eg-container {position: relative; z-index: 1;}
.eg-future .eg-section-title {color: #fff;}
.eg-future .eg-section-desc {color: rgba(255, 255, 255, .62);}
.eg-future .eg-section-link {color: #FF9C85; border-bottom-color: rgba(255, 156, 133, .35);}
.eg-future-grid {display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 60px;
  align-items: start;
  margin-top: 50px;}
.eg-future-media {position: sticky;
  top: calc(var(--anchor-offset) + 26px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  min-width: 0;}
.eg-future-media figure {position: relative; aspect-ratio: 3 / 4; margin: 0; overflow: hidden; background: var(--navy-soft);}
.eg-future-media img {width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.02); transition: transform .7s ease;}
.eg-future-media figure:hover img {transform: scale(1.04);}
.eg-future-media figure::after {content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(4, 18, 26, .86), transparent 58%);}
.eg-future-media figcaption {position: absolute;
  right: 13px;
  bottom: 12px;
  left: 13px;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: rgba(255, 255, 255, .60);
  font-family: "Roboto", sans-serif;
  font-size: 7.5px;
  font-weight: 500;
  letter-spacing: .15em;
  line-height: 1.5;
  text-transform: uppercase;}
.eg-future-media figcaption strong {color: #fff; font-weight: 500;}
.eg-future-copy {min-width: 0;}
.eg-future-block {padding-bottom: 30px; margin-bottom: 30px; border-bottom: 1px solid rgba(255, 255, 255, .14);}
.eg-future-block:last-child {padding-bottom: 0; margin-bottom: 0; border-bottom: 0;}
.eg-future-block__num {color: #FF9C85; font-family: "Roboto", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .18em;}
.eg-future-block h3 {margin: 8px 0 12px;
  color: #fff;
  font-family: "Roboto", "Noto Sans TC", sans-serif;
  font-size: clamp(24px, 2.6vw, 32px);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -.025em;}
.eg-future-block h3 small {display: block;
  margin-top: 6px;
  color: rgba(255, 255, 255, .42);
  font-family: "Roboto", sans-serif;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .16em;}
.eg-future-block > p {color: rgba(255, 255, 255, .66); font-size: 13.5px; line-height: 1.95;}
.eg-future-stats {display: flex; flex-wrap: wrap; gap: 28px; margin: 18px 0 16px;}
.eg-future-stat strong {display: block; color: #fff; font-family: "Roboto", sans-serif; font-size: 25px; font-weight: 900; line-height: 1.1; letter-spacing: -.03em;}
.eg-future-stat span {display: block; margin-top: 2px; color: rgba(255, 255, 255, .42); font-size: 9px; letter-spacing: .07em;}
.eg-future-tags {display: flex; flex-wrap: wrap; gap: 6px;}
.eg-future-tags span {padding: 4px 8px; border: 1px solid rgba(255, 255, 255, .20); color: rgba(255, 255, 255, .62); font-size: 9.5px; line-height: 1.5;}
.eg-projects {overflow: hidden; background: var(--paper);}
.eg-projects-head {display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 44px;}
.eg-projects-head__copy {max-width: 800px; min-width: 0;}
.eg-timeline {border-top: 1px solid var(--line);}
.eg-timeline-item {position: relative;
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 30px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);}
.eg-timeline-item::after {content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 189px;
  width: 1px;
  background: var(--line);
  pointer-events: none;}
.eg-timeline-year {position: relative; min-width: 0; padding-right: 24px;}
.eg-timeline-year::after {content: "";
  position: absolute;
  top: 6px;
  right: -5px;
  z-index: 1;
  width: 9px;
  height: 9px;
  border: 2px solid var(--accent);
  border-radius: 50%;
  background: var(--paper);}
.eg-timeline-year span {display: block; margin-bottom: 6px; color: var(--accent); font-family: "Roboto", sans-serif; font-size: 8px; font-weight: 700; letter-spacing: .15em;}
.eg-timeline-year strong {display: block; color: var(--ink); font-family: "Roboto", sans-serif; font-size: 20px; font-weight: 900; line-height: 1.3; letter-spacing: -.02em;}
.eg-timeline-body {min-width: 0;}
.eg-timeline-body h3 {margin-bottom: 10px; color: var(--ink); font-size: 16px; font-weight: 700; line-height: 1.6;}
.eg-timeline-projects {display: flex; flex-wrap: wrap; gap: 7px;}
.eg-timeline-projects span {padding: 5px 9px;
  border: 1px solid #E2DDD4;
  background: #fff;
  color: var(--text);
  font-size: 11px;
  line-height: 1.55;}
.eg-timeline-projects span::before {content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin-right: 7px;
  border-radius: 50%;
  background: var(--accent-bright);
  vertical-align: 2px;}
.eg-timeline-note {margin-top: 18px; color: var(--muted); font-size: 10.5px; line-height: 1.7;}
.eg-history-acc {margin-top: 44px;
  border: 1px solid #E2DDD4;
  background: #FBFAF8;
  border-radius: 6px;
  padding: 24px 30px 12px;}
.eg-history-acc__head {display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px;}
.eg-history-acc__head h3 {color: var(--ink); font-size: 15px; font-weight: 700;}
.eg-history-acc__head span {color: var(--muted); font-size: 10.5px; letter-spacing: .08em;}
.eg-history-acc__item {border-bottom: 1px solid #E9E5DD;}
.eg-history-acc__item:last-child {border-bottom: 0;}
.eg-history-acc__item summary {display: flex;
  align-items: center;
  gap: 16px;
  padding: 15px 0;
  cursor: pointer;
  list-style: none;}
.eg-history-acc__item summary::-webkit-details-marker {display: none;}
.eg-history-acc__plus {position: relative;
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid #CFC9C0;
  border-radius: 50%;
  color: #6B7B83;
  flex: none;
  transition: transform .25s ease;}
.eg-history-acc__plus::before, .eg-history-acc__plus::after {content: ""; position: absolute; background: currentColor;}
.eg-history-acc__plus::before {width: 10px; height: 1.5px;}
.eg-history-acc__plus::after {width: 1.5px; height: 10px;}
.eg-history-acc__item[open] .eg-history-acc__plus {transform: rotate(45deg);}
.eg-history-acc__years {color: var(--ink);
  font-family: "Roboto", sans-serif;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -.01em;}
.eg-history-acc__count {margin-left: auto; color: var(--muted); font-size: 11px;}
.eg-history-acc__list {padding: 2px 0 18px 42px;}
.eg-history-acc__list p {display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 14px;
  padding: 5px 0;
  color: var(--text);
  font-size: 12.5px;
  line-height: 1.6;}
.eg-history-acc__list p + p {border-top: 1px dashed #E7E2DA;}
.eg-history-acc__list strong {color: var(--ink); font-weight: 600;}
.eg-history-acc__list span {color: var(--muted); font-size: 11px;}
.eg-field-gallery {margin-top: 64px;}
.eg-field-gallery__head {display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 18px;}
.eg-field-gallery__head h3 {color: var(--ink); font-size: 14px; font-weight: 700;}
.eg-field-gallery__head p {color: var(--muted); font-family: "Roboto", sans-serif; font-size: 8px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;}
.eg-field-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;}
.eg-field-card {position: relative; aspect-ratio: 1 / 1; margin: 0; overflow: hidden; background: var(--navy);}
.eg-field-card img {width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease;}
.eg-field-card:hover img {transform: scale(1.04);}
.eg-field-card figcaption {position: absolute;
  inset: auto 0 0;
  padding: 28px 14px 12px;
  background: linear-gradient(0deg, rgba(4, 18, 26, .88), transparent);
  color: #fff;
  font-size: 10.5px;
  line-height: 1.5;}
.eg-field-card figcaption span {display: block; margin-bottom: 2px; color: rgba(255, 255, 255, .54); font-family: "Roboto", sans-serif; font-size: 7.5px; font-weight: 500; letter-spacing: .15em; text-transform: uppercase;}
.eg-certifications {position: relative;
  overflow: hidden;
  padding: 96px 0;
  background: var(--navy);
  background-image:
    linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
  background-size: 56px 56px;
  color: #fff;}
.eg-certifications .eg-section-title {color: #fff;}
.eg-certifications .eg-section-desc {color: rgba(255, 255, 255, .62);}
.eg-certifications-head {max-width: 760px; margin-bottom: 44px;}
.eg-cert-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; list-style: none;}
.eg-cert-card {display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 26px 26px 28px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 6px;
  background: rgba(255, 255, 255, .04);
  transition: border-color .3s ease, background .3s ease, transform .3s ease;}
.eg-cert-card:hover {border-color: rgba(250, 76, 42, .55); background: rgba(255, 255, 255, .06); transform: translateY(-3px);}
.eg-cert-card__top {display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;}
.eg-cert-icon {width: 30px; height: 30px; color: var(--accent-bright); stroke-width: 1.6;}
.eg-cert-year {text-align: right;}
.eg-cert-year strong {display: block;
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 42px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.03em;}
.eg-cert-year > span {display: block;
  margin-top: 5px;
  color: rgba(255, 255, 255, .45);
  font-family: "Roboto", sans-serif;
  font-size: 10px;
  letter-spacing: .18em;}
.eg-cert-year__unit {margin-left: .38em;
  color: rgba(255, 255, 255, .75);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .05em;}
.eg-cert-card h3 {color: #fff; font-size: 20px; font-weight: 700; line-height: 1.6;}
.eg-cert-badge {display: inline-block;
  margin-left: 8px;
  padding: 2px 9px;
  border: 1px solid var(--accent-bright);
  border-radius: 999px;
  color: var(--accent-bright);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.6;
  vertical-align: 2px;
  letter-spacing: .1em;}
.eg-cert-org {margin-top: -6px; color: rgba(255, 255, 255, .62); font-size: 12px; line-height: 1.7; letter-spacing: .04em;}
.eg-cert-detail {margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, .12);
  color: rgba(255, 255, 255, .55);
  font-size: 11px;
  line-height: 1.8;}
.eg-cert-photos {margin-top: 18px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;}
.eg-cert-photo-link {position: relative;
  display: block;
  flex: 0 0 auto;
  width: 150px;
  height: 150px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 4px;
  background: rgba(255, 255, 255, .06);
  color: rgba(255, 255, 255, .55);
  font-size: 11px;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
  cursor: zoom-in;}
.eg-cert-photo-link img {display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: contain;
  object-position: center;
  padding: 6px;
  box-sizing: border-box;
  transition: transform .35s ease;}
.eg-cert-photo-link::after {content: "";
  position: absolute;
  inset: 0;
  background: rgba(10, 36, 50, .55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center / 28px no-repeat;
  opacity: 0;
  transition: opacity .25s ease;}
.eg-cert-photo-link:hover, .eg-cert-photo-link:focus-visible {border-color: var(--accent-bright);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
  outline: none;}
.eg-cert-photo-link:hover::after, .eg-cert-photo-link:focus-visible::after {opacity: 1;}
.eg-cert-photo-link:hover img {transform: scale(1.04);}
.eg-cert-lightbox {position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .9);
  padding: 64px 20px 40px;
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility 0s linear .25s;}
.eg-cert-lightbox.is-open {opacity: 1;
  visibility: visible;
  transition: opacity .25s ease;}
.eg-cert-lightbox__content {display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  max-height: 100%;}
.eg-cert-lightbox__content img {display: block;
  width: auto !important;
  height: auto !important;
  max-width: min(92vw, 1400px) !important;
  max-height: calc(100vh - 140px) !important;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .6);
  background: #fff;
  opacity: 0;
  transition: opacity .25s ease;}
.eg-cert-lightbox__content img.is-loaded {opacity: 1;}
.eg-cert-lightbox.is-loading .eg-cert-lightbox__content::before {content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 36px;
  height: 36px;
  margin: -18px 0 0 -18px;
  border: 3px solid rgba(255, 255, 255, .25);
  border-top-color: #fff;
  border-radius: 50%;
  animation: cert-spin .8s linear infinite;}
@keyframes cert-spin { to { transform: rotate(360deg); } }
.eg-cert-lightbox embed, .eg-cert-lightbox object {display: block;
  width: 92vw;
  height: 80vh;
  border-radius: 4px;
  background: #fff;}
.eg-cert-lightbox__close {position: fixed;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  background: rgba(255, 255, 255, .16);
  border: none;
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  border-radius: 50%;
  display: grid;
  place-items: center;
  transition: background .2s ease;}
.eg-cert-lightbox__close:hover, .eg-cert-lightbox__close:focus-visible {background: rgba(255, 255, 255, .32);
  outline: none;}
.eg-cert-lightbox__caption {position: fixed;
  left: 20px;
  right: 20px;
  bottom: 12px;
  margin: 0;
  color: rgba(255, 255, 255, .9);
  text-align: center;
  font-size: 13px;
  line-height: 1.5;}
@media (max-width: 760px) {
.eg-cert-card {flex-direction: column; align-items: flex-start; gap: 14px;}
.eg-cert-icon {width: 24px; height: 24px;}
.eg-cert-photo {height: 150px; max-width: 220px;}
.eg-cert-photo-link {width: 130px; height: 130px; font-size: 10px;}


}
.eg-video {background: #fff;}
.eg-video-head {display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 40px;}
.eg-video-head__copy {max-width: 780px; min-width: 0;}
.eg-video-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 20px;}
.eg-video-group {margin-bottom: 44px;}
.eg-video-group:last-child {margin-bottom: 0;}
.eg-video-group__head {display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--accent);}
.eg-video-group__head h3 {color: var(--ink); font-size: 16px; font-weight: 700; line-height: 1.5;}
.eg-video-group__head span {color: var(--muted); font-size: 11px; letter-spacing: .06em;}
.eg-video-group .eg-video-grid {margin-bottom: 20px;}
.eg-video-card {position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--navy);}
.eg-video-card img {width: 100%; height: 100%; object-fit: cover; opacity: .78; transition: transform .7s ease, opacity .35s ease;}
.eg-video-card:hover img {transform: scale(1.04); opacity: .9;}
.eg-video-card::after {content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(4, 18, 26, .90), rgba(4, 18, 26, .10) 70%);
  pointer-events: none;}
.eg-video-play {position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  border: 1px solid rgba(255, 255, 255, .64);
  border-radius: 50%;
  background: rgba(0, 0, 0, .18);
  transform: translate(-50%, -50%);
  transition: background .25s ease, border-color .25s ease, transform .25s ease;}
.eg-video-play .eg-icon {width: 20px; height: 20px; margin-left: 3px; color: #fff;}
.eg-video-card:hover .eg-video-play {border-color: var(--accent); background: var(--accent); transform: translate(-50%, -50%) scale(1.06);}
.eg-video-label {position: absolute; right: 20px; bottom: 16px; left: 20px; z-index: 1; color: #fff;}
.eg-video-label span {display: block; margin-bottom: 4px; color: #FF9C85; font-family: "Roboto", sans-serif; font-size: 8px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;}
.eg-video-label strong {display: block; font-size: 15px; font-weight: 700; line-height: 1.55;}
.eg-video-card.is-playing {cursor: default;}
.eg-video-card.is-playing::after, .eg-video-card.is-playing .eg-video-play, .eg-video-card.is-playing .eg-video-label {display: none;}
.eg-video-card iframe {position: absolute; inset: 0; width: 100%; height: 100%; border: 0;}
.eg-video-foot {display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 16px; color: var(--muted); font-size: 10.5px; line-height: 1.7;}
.eg-video-foot span:last-child {font-family: "Roboto", sans-serif; font-size: 8px; letter-spacing: .13em; text-transform: uppercase;}
.eg-contact {background: var(--paper);}
.eg-contact-head {max-width: 780px;}
.eg-contact-grid {display: grid; grid-template-columns: .86fr 1.14fr; gap: 22px; align-items: stretch; margin-top: 44px;}
.eg-contact-info {position: relative;
  overflow: hidden;
  padding: 36px;
  background: var(--navy);
  color: #fff;}
.eg-contact-info::before {content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 32px 32px;
  pointer-events: none;}
.eg-contact-info > * {position: relative; z-index: 1;}
.eg-contact-info h3 {color: #fff; font-size: 24px; font-weight: 900; line-height: 1.3; letter-spacing: -.025em;}
.eg-contact-info > p {margin-top: 6px; color: rgba(255, 255, 255, .56); font-size: 12px; line-height: 1.8;}
.eg-contact-list {display: grid; gap: 17px; margin-top: 26px; list-style: none;}
.eg-contact-list li {display: flex; align-items: flex-start; gap: 11px;}
.eg-contact-list .eg-icon {width: 17px; height: 17px; margin-top: 3px; color: #FF9C85;}
.eg-contact-list span {display: block; margin-bottom: 1px; color: rgba(255, 255, 255, .40); font-family: "Roboto", sans-serif; font-size: 8px; font-weight: 500; letter-spacing: .15em; text-transform: uppercase;}
.eg-contact-list strong, .eg-contact-list a {color: rgba(255, 255, 255, .88); font-size: 13px; font-weight: 500; line-height: 1.7;}
.eg-contact-list a:hover {color: #FF9C85;}
.eg-contact-map {display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 26px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(255, 156, 133, .38);
  color: #FF9C85;
  font-size: 11px;
  font-weight: 700;}
.eg-contact-map .eg-icon {width: 13px; height: 13px;}
.eg-contact-form {padding: 36px; background: #fff; border: 1px solid var(--line);}
.eg-contact-form h3 {color: var(--ink); font-size: 21px; font-weight: 900; line-height: 1.3; letter-spacing: -.02em;}
.eg-contact-form > p {margin-top: 6px; margin-bottom: 22px; color: var(--muted); font-size: 11.5px; line-height: 1.8;}
.eg-form-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 15px;}
.eg-field {display: flex; flex-direction: column; gap: 6px; min-width: 0;}
.eg-field--full {grid-column: 1 / -1;}
.eg-field label {color: var(--ink); font-size: 10.5px; font-weight: 700; line-height: 1.5; letter-spacing: .02em;}
.eg-field label span {color: var(--accent);}
.eg-field input, .eg-field select, .eg-field textarea {width: 100%;
  border: 1px solid #D9DEDF;
  border-radius: 0;
  background: #FBFBF9;
  padding: 11px 12px;
  color: var(--ink);
  font-family: "Roboto", "Noto Sans TC", sans-serif;
  font-size: 12.5px;
  line-height: 1.55;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;}
.eg-field input:focus, .eg-field select:focus, .eg-field textarea:focus {border-color: var(--accent);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(201, 58, 30, .10);}
.eg-field textarea {min-height: 116px; resize: vertical;}
.eg-field select {appearance: none;
  -webkit-appearance: none;
  padding-right: 32px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7B83' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;}
.eg-form-foot {display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-top: 18px;}
.eg-form-note {max-width: 300px; color: var(--muted); font-size: 9.5px; line-height: 1.7;}
.eg-form-submit {display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 22px;
  border: 0;
  background: var(--accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  transition: background .2s ease, transform .2s ease;}
.eg-form-submit .eg-icon {width: 15px; height: 15px;}
.eg-form-submit:hover {background: var(--accent-deep); transform: translateY(-1px);}
.eg-form-status {min-height: 18px; margin-top: 9px; color: var(--accent); font-size: 11px; line-height: 1.6;}
@media (max-width: 1120px) {
.eg-container {width: min(var(--container), calc(100% - 64px));}
.eg-service-grid {grid-template-columns: repeat(2, 1fr);}
.eg-hero-inner {grid-template-columns: minmax(0, 1.25fr) minmax(210px, .75fr); gap: 38px;}


}
@media (max-width: 960px) {
.eg-hero {height: auto; min-height: 780px;}
.eg-hero-inner {grid-template-columns: 1fr; gap: 0; padding-top: 92px; padding-bottom: 70px;}
.eg-hero-index {display: none;}
.eg-hero h1 {max-width: 740px;}
.eg-hero-lead {max-width: 620px;}
.eg-stats-grid {grid-template-columns: 1fr 1fr;}
.eg-stat:nth-child(3) {border-left: 0; border-top: 1px solid var(--line);}
.eg-stat:nth-child(4) {border-top: 1px solid var(--line);}
.eg-about-grid {grid-template-columns: 1fr; gap: 46px;}
.eg-about-media {width: min(680px, 100%);}
.eg-about-media img {height: 470px;}
.eg-about-badge {left: 16px;}
.eg-service-grid {grid-template-columns: repeat(2, 1fr);}
.eg-future-grid {grid-template-columns: 1fr; gap: 44px;}
.eg-future-media {position: static; width: min(620px, 100%);}
.eg-contact-grid {grid-template-columns: 1fr;}
.eg-section-head, .eg-projects-head, .eg-video-head {display: block;}
.eg-section-head .eg-section-link, .eg-projects-head .eg-section-link, .eg-video-head .eg-section-link {margin-top: 20px;}
.eg-certifications {padding: 78px 0;}
.eg-cert-grid {grid-template-columns: 1fr; gap: 14px;}
.eg-cert-card {flex-direction: row; align-items: center; gap: 22px; padding: 20px 22px;}
.eg-cert-card__top {flex-direction: column; gap: 8px;}
.eg-cert-year {text-align: left;}
.eg-cert-year strong {font-size: 30px;}
.eg-cert-org {margin-top: 4px;}
.eg-timeline-item {grid-template-columns: 160px 1fr; gap: 22px;}
.eg-timeline-item::after {left: 159px;}
.eg-timeline-year {padding-right: 18px;}
.eg-timeline-year::after {right: -4px;}


}
@media (max-width: 760px) {
.eg-page {--anchor-offset: 16px;}
.eg-container {width: calc(100% - 40px);}
.eg-hero {min-height: 720px; padding-bottom: 44px;}
.eg-hero-bg {background-position: 22% 30%;}
.eg-hero-inner {padding-top: 70px; padding-bottom: 56px;}
.eg-hero h1 {font-size: clamp(38px, 10vw, 54px); margin-top: 17px;}
.eg-hero-lead {font-size: 14px; line-height: 1.9;}
.eg-hero-actions {margin-top: 27px;}
.eg-hero-tags {margin-top: 22px;}
.eg-hero-bottom .eg-container {min-height: 48px;}
.eg-hero-meta {gap: 14px; font-size: 8px;}
.eg-scroll-cue {font-size: 8px;}
.eg-stats {margin-top: -34px;}
.eg-stat {padding: 22px 18px 20px;}
.eg-stat__num {font-size: 34px;}
.eg-stat__label {font-size: 11.5px;}
.eg-stat__en {font-size: 7px;}
.eg-section, .eg-about, .eg-services, .eg-future, .eg-projects, .eg-video, .eg-contact {padding: 76px 0;}
.eg-section-head, .eg-projects-head, .eg-video-head {margin-bottom: 34px;}
.eg-section-title {font-size: clamp(30px, 8vw, 39px); line-height: 1.2;}
.eg-section-desc {font-size: 13.5px; line-height: 1.85;}
.eg-about-lead {font-size: 17px;}
.eg-about-copy > p:not(.eg-about-lead) {font-size: 13.5px;}
.eg-about-quote {font-size: 15.5px;}
.eg-check-list {grid-template-columns: 1fr; gap: 8px;}
.eg-about-media img {height: 390px;}
.eg-about-media {padding: 0 12px 12px 0;}
.eg-about-media figcaption {right: 12px; bottom: 12px; padding: 38px 17px 14px; font-size: 10px;}
.eg-about-media figcaption strong {font-size: 11px;}
.eg-about-badge {top: 14px; left: 14px; min-width: 104px; padding: 12px 14px;}
.eg-about-badge strong {font-size: 31px;}
.eg-about-badge span {font-size: 7px;}
.eg-service-grid {grid-template-columns: 1fr; gap: 16px;}
.eg-service-body {padding: 21px 21px 23px;}
.eg-service-body h3 {font-size: 22px;}
.eg-service-card--cta {padding: 24px;}
.eg-impact {padding: 82px 0;}
.eg-impact blockquote {font-size: 23px; line-height: 1.6;}
.eg-impact-meta {font-size: 8px;}
.eg-future-media {width: 100%;}
.eg-future-block h3 {font-size: 25px;}
.eg-future-block > p {font-size: 13px;}
.eg-timeline-item {grid-template-columns: 1fr; gap: 9px; padding: 22px 0;}
.eg-timeline-item::after {display: none;}
.eg-timeline-year {padding-right: 0;}
.eg-timeline-year::after {display: none;}
.eg-timeline-year span {margin-bottom: 3px;}
.eg-timeline-year strong {font-size: 19px;}
.eg-timeline-body h3 {font-size: 15px;}
.eg-timeline-note {display: block;}
.eg-history-acc {padding: 18px 18px 8px;}
.eg-history-acc__list {padding-left: 18px;}
.eg-field-gallery {margin-top: 48px;}
.eg-field-grid {grid-template-columns: 1fr 1fr; gap: 8px;}
.eg-field-card figcaption {padding: 24px 11px 10px; font-size: 9.5px;}
.eg-field-card figcaption span {font-size: 7px;}
.eg-video-grid {grid-template-columns: 1fr; gap: 14px;}
.eg-video-label {right: 16px; bottom: 13px; left: 16px;}
.eg-video-label strong {font-size: 14px;}
.eg-video-foot {display: block;}
.eg-video-foot span:last-child {display: block; margin-top: 4px;}
.eg-contact-info, .eg-contact-form {padding: 26px;}
.eg-form-grid {grid-template-columns: 1fr;}
.eg-form-foot {align-items: flex-start; flex-direction: column;}
.eg-form-submit {width: 100%;}


}
@media (max-width: 520px) {
.eg-hero h1 {font-size: 38px;}
.eg-hero h1 em {display: inline;}
.eg-hero-actions {flex-direction: column; align-items: stretch;}
.eg-hero-actions .eg-btn {width: 100%;}
.eg-hero-tags span {font-size: 9px;}
.eg-hero-meta span:nth-child(2) {display: none;}
.eg-stats {margin-top: -26px;}
.eg-stat {padding: 19px 15px 18px;}
.eg-stat__num {font-size: 30px;}
.eg-stat__label {font-size: 10.5px;}
.eg-stat__en {letter-spacing: .1em;}
.eg-section-title {font-size: 31px;}
.eg-cert-card {flex-direction: column; align-items: flex-start; gap: 14px;}
.eg-cert-icon {width: 24px; height: 24px;}
.eg-cert-photo {height: 150px; max-width: 220px;}
.eg-impact blockquote {font-size: 21px;}
.eg-impact-meta {display: block;}
.eg-impact-meta span {display: block; margin-top: 5px;}
.eg-future-stats {gap: 20px;}
.eg-future-stat strong {font-size: 22px;}
.eg-form-grid {grid-template-columns: 1fr;}
.eg-contact-info, .eg-contact-form {padding: 22px;}


}
@media (prefers-reduced-motion: reduce) {
.eg-page {scroll-behavior: auto;}
.js .eg-reveal {opacity: 1; transform: none; transition: none;}
.eg-hero-copy > * {animation: none;}
.eg-service-media img, .eg-service-card, .eg-future-media img, .eg-field-card img, .eg-video-card img, .eg-video-play, .eg-btn {transition: none;}


}

/* ---- from femco_d50/assets/services.css ---- */
.eg-femco-services-page {--anchor-offset: 78px;}
.eg-svc-hero {position: relative;
  overflow: hidden;
  padding: 0 0 72px;
  background: var(--navy-deep);
  color: #fff;}
.eg-svc-hero .eg-hero-bg {background-position: center 55%;}
.eg-svc-hero .eg-hero-scrim {background:
    linear-gradient(90deg, rgba(4, 18, 26, .95) 0%, rgba(4, 18, 26, .80) 48%, rgba(4, 18, 26, .38) 100%),
    linear-gradient(0deg, rgba(4, 18, 26, .92) 0%, rgba(4, 18, 26, .10) 62%, rgba(4, 18, 26, .45) 100%);}
.eg-svc-hero .eg-hero-inner {padding-top: 64px; padding-bottom: 0; align-items: end;}
.eg-svc-crumb {display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 72px;
  font-size: 11.5px;
  color: rgba(255, 255, 255, .55);}
.eg-svc-crumb a {display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255, 255, 255, .78);
  transition: color .2s ease;}
.eg-svc-crumb a:hover {color: #FF9C85;}
.eg-svc-crumb .eg-icon {width: 13px; height: 13px; transform: rotate(180deg);}
.eg-svc-crumb .eg-sep {color: rgba(255, 255, 255, .28);}
.eg-svc-hero h1 {margin: 20px 0 22px;
  color: #fff;
  font-family: "Roboto", "Noto Sans TC", sans-serif;
  font-size: clamp(40px, 5.4vw, 70px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -.045em;}
.eg-svc-hero h1 em {font-style: normal; color: #FF8A6E;}
.eg-svc-nav {position: sticky;
  top: var(--wp-header-h, 0px);
  z-index: 20;
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 10px 30px rgba(10, 36, 50, .06);
  -webkit-backdrop-filter: saturate(1.4) blur(8px);
  backdrop-filter: saturate(1.4) blur(8px);}
.eg-svc-nav__inner {display: flex;
  align-items: stretch;
  overflow-x: auto;
  scrollbar-width: none;}
.eg-svc-nav__inner::-webkit-scrollbar {display: none;}
.eg-svc-nav a {position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 0 auto;
  min-height: 62px;
  padding: 0 18px;
  border-left: 1px solid var(--line);
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease;}
.eg-svc-nav a:last-child {border-right: 1px solid var(--line);}
.eg-svc-nav a .eg-n {color: var(--accent);
  font-family: "Roboto", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;}
.eg-svc-nav a::after {content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 3px;
  background: var(--accent-bright);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s cubic-bezier(.2, .65, .2, 1);}
.eg-svc-nav a:hover {background: var(--paper);}
.eg-svc-nav a.is-active {color: var(--accent);}
.eg-svc-nav a.is-active::after {transform: scaleX(1);}
.eg-svc {position: relative; padding: 108px 0; background: #fff;}
.eg-svc--alt {background: var(--paper);}
.eg-svc--alt::before {content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(13, 46, 60, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 46, 60, .04) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: .6;
  pointer-events: none;}
.eg-svc .eg-container {position: relative; z-index: 1;}
.eg-svc[id], .eg-svc-process[id] {scroll-margin-top: calc(var(--anchor-offset) + var(--wp-header-h, 0px));}
.eg-svc-head {display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;}
.eg-svc-copy {min-width: 0;}
.eg-svc-copy .eg-section-title small {display: block;
  margin-top: 10px;
  color: var(--accent);
  font-family: "Roboto", sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .18em;
  line-height: 1.6;
  text-transform: uppercase;}
.eg-svc-lead {margin: 22px 0 0;
  color: var(--ink);
  font-size: clamp(15.5px, 1.5vw, 17.5px);
  font-weight: 500;
  line-height: 1.9;}
.eg-svc-copy > p:not(.eg-svc-lead):not(.eg-eyebrow) {margin-top: 14px; font-size: 14px; line-height: 1.95; color: var(--text);}
.eg-svc-scope {display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 26px;
  margin-top: 28px;
  border-top: 1px solid var(--line);
  list-style: none;}
.eg-svc-scope li {display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.55;}
.eg-svc-scope .eg-icon {width: 15px; height: 15px; margin-top: 3px; color: var(--accent);}
.eg-svc--alt .eg-svc-scope, .eg-svc--alt .eg-svc-scope li {border-color: #DED8CD;}
.eg-svc-cover {position: relative; margin: 0; padding: 0 18px 18px 0; min-width: 0;}
.eg-svc-cover::before {content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 58%;
  height: 58%;
  border-right: 2px solid var(--accent-bright);
  border-bottom: 2px solid var(--accent-bright);
  opacity: .62;
  pointer-events: none;}
.eg-svc-cover img {width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: saturate(.92) contrast(1.02);}
.eg-svc-cover figcaption {position: absolute;
  right: 18px;
  bottom: 18px;
  left: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 48px 22px 18px;
  background: linear-gradient(0deg, rgba(5, 23, 32, .92), transparent);
  color: rgba(255, 255, 255, .70);
  font-family: "Roboto", sans-serif;
  font-size: 8.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;}
.eg-svc-cover figcaption strong {color: #fff;
  font-size: 46px;
  font-weight: 900;
  line-height: .9;
  letter-spacing: -.05em;}
.eg-svc-cover__tag {position: absolute;
  top: 16px;
  left: 16px;
  padding: 4px 8px;
  border: 1px solid rgba(255, 255, 255, .42);
  background: rgba(0, 0, 0, .22);
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;}
.eg-svc-sub {display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 72px 0 20px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--accent);}
.eg-svc-sub h3 {color: var(--ink); font-size: 17px; font-weight: 700; line-height: 1.5;}
.eg-svc-sub span {color: var(--muted);
  font-family: "Roboto", sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;}
.eg-svc-sub .eg-count {margin-left: auto; color: var(--accent); font-weight: 700;}
.eg-svc-items {display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  list-style: none;}
.eg-svc-item {display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--line);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;}
.eg-svc-item:hover {transform: translateY(-4px);
  border-color: #C8D2D5;
  box-shadow: 0 20px 44px rgba(10, 36, 50, .10);}
.eg-svc-item__media {position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--navy);}
.eg-svc-item__media img {width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .6, .2, 1);}
.eg-svc-item:hover .eg-svc-item__media img {transform: scale(1.05);}
.eg-svc-item__media .eg-n {position: absolute;
  top: 10px;
  left: 10px;
  padding: 3px 6px;
  background: rgba(6, 24, 34, .72);
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: .12em;}
.eg-svc-item__body {padding: 15px 16px 17px;}
.eg-svc-item__body strong {display: block; color: var(--ink); font-size: 14.5px; font-weight: 700; line-height: 1.45;}
.eg-svc-item__body span {display: block;
  margin-top: 4px;
  color: var(--muted);
  font-family: "Roboto", sans-serif;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .14em;
  line-height: 1.5;
  text-transform: uppercase;}
.eg-svc-item__body p {margin-top: 8px; color: var(--text); font-size: 12px; line-height: 1.75;}
.eg-svc-item--text {justify-content: space-between; padding: 20px 18px 18px; background: var(--navy); border-color: var(--navy); color: #fff;}
.eg-svc-item--text:hover {border-color: var(--navy);}
.eg-svc-item--text .eg-n {color: #FF9C85; font-family: "Roboto", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .14em;}
.eg-svc-item--text strong {display: block; margin-top: 14px; color: #fff; font-size: 16px; font-weight: 700; line-height: 1.45;}
.eg-svc-item--text span {display: block; margin-top: 4px; color: rgba(255, 255, 255, .42); font-family: "Roboto", sans-serif; font-size: 8px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;}
.eg-svc-item--text p {margin-top: 12px; color: rgba(255, 255, 255, .66); font-size: 12px; line-height: 1.75;}
.eg-svc-record {display: grid;
  grid-template-columns: 190px 1fr;
  gap: 30px;
  margin-top: 40px;
  padding: 24px 0 0;
  border-top: 1px solid var(--line);}
.eg-svc--alt .eg-svc-record {border-color: #DED8CD;}
.eg-svc-record__label span {display: block; margin-bottom: 4px; color: var(--accent); font-family: "Roboto", sans-serif; font-size: 8px; font-weight: 700; letter-spacing: .16em;}
.eg-svc-record__label strong {display: block; color: var(--ink); font-size: 16px; font-weight: 900; line-height: 1.4;}
.eg-svc-record .eg-timeline-projects span {font-size: 11.5px;}
.eg-svc:not(.eg-svc--alt) .eg-svc-record .eg-timeline-projects span {background: var(--paper);}
.eg-svc-process {position: relative; overflow: hidden; padding: 104px 0; background: var(--navy); color: #fff;}
.eg-svc-process::before {content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: .55;
  pointer-events: none;}
.eg-svc-process::after {content: "EPC";
  position: absolute;
  right: -20px;
  bottom: -70px;
  color: rgba(255, 255, 255, .045);
  font-family: "Roboto", sans-serif;
  font-size: clamp(170px, 24vw, 320px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.1em;
  pointer-events: none;}
.eg-svc-process .eg-container {position: relative; z-index: 1;}
.eg-svc-process .eg-section-title {color: #fff;}
.eg-svc-process .eg-section-desc {color: rgba(255, 255, 255, .62);}
.eg-process-steps {display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 48px;
  border-top: 1px solid rgba(255, 255, 255, .18);
  list-style: none;
  counter-reset: step;}
.eg-process-steps li {position: relative; padding: 26px 22px 0 0; min-width: 0;}
.eg-process-steps li::before {content: "";
  position: absolute;
  top: -5px;
  left: 0;
  width: 9px;
  height: 9px;
  border: 2px solid var(--accent-soft);
  border-radius: 50%;
  background: var(--navy);}
.eg-process-steps .eg-n {color: #FF9C85; font-family: "Roboto", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .16em;}
.eg-process-steps strong {display: block; margin-top: 8px; color: #fff; font-size: 19px; font-weight: 900; line-height: 1.35; letter-spacing: -.02em;}
.eg-process-steps p {margin-top: 10px; color: rgba(255, 255, 255, .62); font-size: 12.5px; line-height: 1.85;}
.eg-process-actions {display: flex; flex-wrap: wrap; gap: 12px; margin-top: 52px;}
.eg-svc-top {position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 30;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  background: var(--accent);
  color: #fff;
  box-shadow: 0 12px 28px rgba(10, 36, 50, .22);
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease, background .2s ease;}
.eg-svc-top .eg-icon {width: 18px; height: 18px;}
.eg-svc-top:hover {background: var(--accent-deep);}
.eg-svc-top.is-visible {opacity: 1; transform: none; pointer-events: auto;}
@media (max-width: 1120px) {
.eg-svc-items {grid-template-columns: repeat(3, minmax(0, 1fr));}
.eg-svc-nav a {font-size: 12.5px; padding: 0 14px;}


}
@media (max-width: 960px) {
.eg-svc-head {grid-template-columns: 1fr; gap: 44px;}
.eg-svc-cover {width: min(680px, 100%);}
.eg-process-steps {grid-template-columns: 1fr 1fr; gap: 0 24px; border-top: 0;}
.eg-process-steps li {padding: 22px 0 26px 22px; border-left: 1px solid rgba(255, 255, 255, .18);}
.eg-process-steps li::before {top: 26px; left: -5px;}


}
@media (max-width: 760px) {
.eg-femco-services-page {--anchor-offset: 60px;}
.eg-svc-hero {padding-bottom: 54px;}
.eg-svc-hero .eg-hero-inner {padding-top: 40px;}
.eg-svc-crumb {margin-bottom: 46px;}
.eg-svc-hero h1 {font-size: clamp(36px, 10vw, 50px);}
.eg-svc-nav a {min-height: 54px; padding: 0 14px; font-size: 12px; flex: 0 0 auto;}
.eg-svc-nav a .eg-t-long {display: none;}
.eg-svc {padding: 76px 0;}
.eg-svc-scope {grid-template-columns: 1fr;}
.eg-svc-cover {padding: 0 12px 12px 0;}
.eg-svc-cover figcaption {right: 12px; bottom: 12px; padding: 40px 16px 14px;}
.eg-svc-cover figcaption strong {font-size: 36px;}
.eg-svc-sub {margin-top: 54px;}
.eg-svc-items {grid-template-columns: 1fr 1fr; gap: 12px;}
.eg-svc-item__body {padding: 12px 12px 14px;}
.eg-svc-item__body strong {font-size: 13px;}
.eg-svc-item__body p {display: none;}
.eg-svc-item--text {padding: 16px 14px;}
.eg-svc-item--text strong {font-size: 14px;}
.eg-svc-record {grid-template-columns: 1fr; gap: 12px;}
.eg-svc-process {padding: 76px 0;}
.eg-process-steps {grid-template-columns: 1fr;}
.eg-process-actions .eg-btn {width: 100%;}


}
@media (min-width: 761px) {
.eg-svc-nav a .eg-t-short {display: none;}


}
@media (prefers-reduced-motion: reduce) {
.eg-svc-item, .eg-svc-item__media img, .eg-svc-nav a::after, .eg-svc-top {transition: none;}


}


/* the services page has its own back-to-top button */
.page-engineering_services .to-top { display: none; }
