:root {
  --ink: #102033;
  --navy: #0b2036;
  --navy-2: #112b46;
  --paper: #f2f0ea;
  --white: #ffffff;
  --line: #cdd3d5;
  --muted: #687681;
  --blue: #1c5d84;
  --cyan: #6ec6c0;
  --lime: #43b8e6;
  --steel: #dbe4e6;
  --max: 1240px;
  --shadow: 0 22px 60px rgba(9, 32, 52, .13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", Arial, sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.container { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; padding: 10px 16px; background: var(--lime); color: var(--navy); font-weight: 800; }
.skip-link:focus { top: 16px; }

.utility-bar { background: #081a2c; color: #d5e0e5; font-size: 12px; letter-spacing: .02em; }
.utility-inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.utility-inner p { margin: 0; }
.utility-meta { display: flex; align-items: center; gap: 8px; }
.status-dot { width: 7px; height: 7px; border-radius: 99px; background: var(--lime); box-shadow: 0 0 0 4px rgba(212,239,88,.12); }
.sep { color: #516679; }

.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(16,32,51,.13); backdrop-filter: blur(14px); }
.header-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.brand { display: inline-flex; align-items: center; gap: 13px; flex: 0 0 auto; }
.brand-mark { position: relative; width: 38px; height: 38px; display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 3px; padding: 6px; background: var(--navy); overflow: hidden; }
.brand-mark::after { content: ""; position: absolute; width: 30px; height: 30px; right: -18px; top: -14px; border: 1px solid rgba(255,255,255,.5); transform: rotate(45deg); }
.brand-mark i { display: block; background: var(--lime); }
.brand-mark i:nth-child(1) { height: 12px; }
.brand-mark i:nth-child(2) { height: 20px; }
.brand-mark i:nth-child(3) { height: 27px; background: var(--cyan); }
.brand-copy { display: flex; flex-direction: column; line-height: 1; gap: 6px; }
.brand-copy strong { font-family: Arial, sans-serif; font-size: 21px; letter-spacing: -.04em; }
.brand-copy strong b { color: var(--blue); font-weight: 800; }
.brand-copy small { font-size: 11px; font-weight: 700; letter-spacing: -.02em; }
.primary-nav { display: flex; align-items: center; gap: clamp(20px, 2.2vw, 35px); font-size: 14px; font-weight: 750; }
.primary-nav > a:not(.nav-cta) { position: relative; padding-block: 28px; }
.primary-nav > a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 20px; height: 2px; background: var(--blue); transition: right .25s ease; }
.primary-nav > a:hover::after, .primary-nav > a:focus-visible::after { right: 0; }
.nav-cta { display: inline-flex; align-items: center; gap: 18px; background: var(--navy); color: var(--white); padding: 13px 16px; min-width: 126px; justify-content: space-between; }
.nav-cta:hover { background: var(--blue); }
.menu-toggle { display: none; width: 46px; height: 44px; border: 0; background: transparent; padding: 10px; cursor: pointer; }
.menu-toggle span { display: block; height: 2px; background: var(--navy); margin: 5px 0; transition: .25s; }

.hero { position: relative; color: var(--white); background: var(--navy); min-height: 720px; overflow: hidden; }
.hero::before { content: ""; position: absolute; width: 420px; height: 420px; right: -120px; top: -160px; border: 1px solid rgba(255,255,255,.12); transform: rotate(45deg); }
.hero::after { content: ""; position: absolute; width: 180px; height: 180px; left: -90px; bottom: 100px; border: 1px solid rgba(110,198,192,.25); transform: rotate(45deg); }
.hero-grid, .panel-grid, .map-grid { 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: 42px 42px; mask-image: linear-gradient(to right, transparent, #000 30%, #000); }
.hero-inner { position: relative; z-index: 1; min-height: 614px; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: clamp(60px, 8vw, 120px); padding-block: 76px 60px; }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 28px; color: var(--blue); font-family: Arial, sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.eyebrow span { display: inline-grid; place-items: center; width: 30px; height: 30px; color: var(--white); background: var(--blue); letter-spacing: 0; }
.eyebrow-light { color: #8ca5b7; }
.eyebrow-light span { background: var(--lime); color: var(--navy); }
.hero h1 { margin: 0; font-size: clamp(44px, 5vw, 72px); line-height: 1.16; letter-spacing: -.055em; font-weight: 780; word-break: keep-all; }
.hero h1 em { color: var(--lime); font-style: normal; }
.hero-lead { max-width: 590px; margin: 28px 0 0; color: #bbc9d3; font-size: 17px; line-height: 1.85; word-break: keep-all; }
.hero-actions { display: flex; gap: 10px; margin-top: 36px; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 30px; padding: 12px 20px; border: 1px solid transparent; border-radius: 0; font-size: 14px; font-weight: 800; cursor: pointer; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--lime); color: var(--navy); min-width: 178px; }
.button-primary:hover { background: #e4ff69; }
.button-ghost { border-color: rgba(255,255,255,.26); color: var(--white); min-width: 150px; }
.button-ghost:hover { border-color: var(--white); background: rgba(255,255,255,.05); }
.button-dark { background: var(--navy); color: var(--white); }
.button-accent { width: 100%; color: var(--navy); background: var(--lime); justify-content: space-between; }
.hero-checks { display: flex; flex-wrap: wrap; gap: 20px; list-style: none; margin: 30px 0 0; padding: 0; color: #aebfca; font-size: 12px; }
.hero-checks li::before { content: "+"; margin-right: 7px; color: var(--cyan); font-weight: 800; }

.hero-visual { position: relative; min-height: 480px; overflow: hidden; border: 1px solid rgba(255,255,255,.18); background: linear-gradient(150deg, rgba(255,255,255,.05), rgba(28,93,132,.1)); box-shadow: inset 0 0 90px rgba(0,0,0,.18); }
.hero-visual::before, .hero-visual::after { content: ""; position: absolute; width: 22px; height: 22px; }
.hero-visual::before { z-index: 4; left: -1px; top: -1px; border-left: 3px solid var(--lime); border-top: 3px solid var(--lime); }
.hero-visual::after { z-index: 4; right: -1px; bottom: -1px; border-right: 3px solid var(--cyan); border-bottom: 3px solid var(--cyan); }
.hero-photo, .about-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-photo { object-position: 53% center; filter: saturate(.86) contrast(1.04); }
.photo-overlay { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.hero-visual .photo-overlay { background: linear-gradient(180deg,rgba(5,22,37,.02) 35%,rgba(5,22,37,.72)); }
.media-caption { position: absolute; z-index: 3; left: 22px; bottom: 18px; display: flex; align-items: center; gap: 14px; margin: 0; color: var(--white); font: 800 10px Arial,sans-serif; letter-spacing: .14em; }
.media-caption span { color: #d8e2e7; font-family: Pretendard,"Noto Sans KR","Malgun Gothic",sans-serif; font-size: 10px; font-weight: 600; letter-spacing: 0; }
.visual-label { position: absolute; z-index: 2; left: 24px; right: 24px; display: flex; justify-content: space-between; align-items: center; font-family: Arial, sans-serif; font-size: 10px; letter-spacing: .12em; color: #7990a1; }
.visual-label strong { color: #d8e2e7; font-size: 10px; }
.visual-label.top { top: 20px; }
.visual-label.bottom { bottom: 20px; }
.visual-label.bottom i { display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--lime); }
.specimen-stage { position: absolute; inset: 70px 50px 62px; }
.press-head { position: absolute; width: 46%; height: 22px; left: 27%; top: 12%; background: linear-gradient(180deg, #8ca2ae, #4d6573); border: 1px solid #b7c7ce; box-shadow: 0 5px 0 #243e51, 0 32px 0 -8px #708895; }
.press-head::after { content: ""; position: absolute; width: 46px; height: 50px; left: calc(50% - 23px); top: 19px; background: linear-gradient(90deg,#405967,#8ba0ab,#405967); }
.concrete-core { position: absolute; width: 138px; height: 184px; left: calc(50% - 69px); bottom: 69px; background: linear-gradient(90deg,#7e8b8d,#c9cfca 16%,#969f9e 52%,#6a7678); border-radius: 50% / 8%; box-shadow: inset -14px 0 20px rgba(15,30,38,.22), 0 16px 30px rgba(0,0,0,.25); }
.concrete-core::before, .concrete-core::after { content: ""; position: absolute; left: 0; width: 100%; height: 21px; border-radius: 50%; }
.concrete-core::before { top: -2px; background: #b9bfba; box-shadow: inset 0 3px 4px rgba(255,255,255,.2); }
.concrete-core::after { bottom: -2px; background: #697779; }
.concrete-core span { position: absolute; z-index: 1; width: 7px; height: 4px; border-radius: 50%; background: #536366; }
.concrete-core span:nth-child(1) { top: 35px; left: 28px; }
.concrete-core span:nth-child(2) { top: 85px; right: 22px; width: 11px; }
.concrete-core span:nth-child(3) { bottom: 37px; left: 53px; }
.concrete-core span:nth-child(4) { top: 122px; left: 18px; width: 5px; }
.press-base { position: absolute; height: 33px; width: 72%; left: 14%; bottom: 32px; background: linear-gradient(180deg,#708794,#324a5c); border: 1px solid #8da0a9; transform: perspective(180px) rotateX(12deg); }
.press-base::after { content: ""; position: absolute; left: 8%; right: 8%; height: 10px; bottom: -13px; background: #20394c; }
.measure-line { position: absolute; z-index: 3; color: #7ed2cc; font-family: Arial,sans-serif; font-size: 9px; letter-spacing: .1em; }
.measure-v { left: 12%; top: 29%; height: 53%; border-left: 1px solid rgba(110,198,192,.6); }
.measure-v::before, .measure-v::after { content: ""; position: absolute; left: -4px; width: 7px; border-top: 1px solid var(--cyan); }
.measure-v::before { top: 0; }.measure-v::after { bottom: 0; }
.measure-v span { position: absolute; left: -30px; top: 47%; transform: rotate(-90deg); white-space: nowrap; }
.measure-h { left: 31%; right: 31%; bottom: 15%; border-top: 1px solid rgba(110,198,192,.6); text-align: center; }
.measure-h::before, .measure-h::after { content: ""; position: absolute; top: -4px; height: 7px; border-left: 1px solid var(--cyan); }
.measure-h::before { left: 0; }.measure-h::after { right: 0; }
.measure-h span { position: relative; top: 5px; }
.visual-note { position: absolute; right: -58px; top: 47%; margin: 0; transform: rotate(90deg); font-family: Arial,sans-serif; font-size: 8px; letter-spacing: .25em; color: #627b8e; }

.hero-index { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.15); }
.hero-index > div { min-height: 106px; display: grid; grid-template-columns: 34px 1fr; grid-template-rows: auto auto; align-content: center; padding: 20px 24px; border-right: 1px solid rgba(255,255,255,.12); }
.hero-index > div:first-child { border-left: 1px solid rgba(255,255,255,.12); }
.hero-index span { grid-row: 1 / 3; color: var(--lime); font-family: Arial,sans-serif; font-size: 11px; }
.hero-index strong { font-size: 15px; }
.hero-index small { color: #8197a8; font-size: 11px; }

.section { padding-block: 128px; }
.section-light { background: var(--white); }
.statement { background: var(--lime); padding-block: 72px; }
.statement-inner { display: grid; grid-template-columns: 1fr 2.2fr 1fr; gap: 56px; align-items: start; }
.section-number { margin: 8px 0 0; color: #536126; font-family: Arial,sans-serif; font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.statement blockquote { margin: 0; font-size: clamp(27px, 3.1vw, 42px); line-height: 1.42; letter-spacing: -.045em; font-weight: 750; word-break: keep-all; }
.statement-aside p { margin: 8px 0 26px; font-size: 14px; word-break: keep-all; }
.text-link { display: inline-flex; gap: 24px; align-items: center; padding-bottom: 5px; border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 800; }

.section-heading { margin-bottom: 66px; }
.section-heading h2 { margin: 0; font-size: clamp(36px, 4vw, 56px); line-height: 1.25; letter-spacing: -.055em; word-break: keep-all; }
.split-heading { display: grid; grid-template-columns: 1.4fr .8fr; gap: 90px; align-items: end; }
.split-heading > p, .services-heading > p, .process-heading > p { max-width: 470px; margin: 0 0 6px; color: var(--muted); font-size: 15px; line-height: 1.9; word-break: keep-all; }
.about-layout { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 540px; }
.about-panel { position: relative; overflow: hidden; color: var(--white); background: var(--navy); min-height: 540px; }
.panel-grid { mask-image: none; }
.about-panel .photo-overlay { background: linear-gradient(90deg,rgba(5,22,37,.85),rgba(5,22,37,.18) 76%),linear-gradient(0deg,rgba(5,22,37,.82),transparent 45%); }
.about-panel::after { content:""; position:absolute; width:250px; height:250px; right:-80px; bottom:-100px; border:1px solid rgba(212,239,88,.3); transform:rotate(45deg); }
.about-emblem { position: absolute; z-index: 2; left: 10%; top: 18%; display: flex; flex-direction: column; font-family: Arial,sans-serif; }
.about-emblem span { color: #8ca5b7; font-size: clamp(48px,6vw,84px); font-weight: 800; line-height: .85; letter-spacing: -.07em; }
.about-emblem strong { color: var(--lime); font-size: clamp(72px,9vw,128px); line-height: .9; letter-spacing: -.08em; }
.about-emblem small { margin-top: 30px; color: #8ea4b4; font-size: 10px; letter-spacing: .22em; line-height: 1.7; }
.about-emblem small b { display: block; margin-top: 10px; color: #dce5e8; font-family: Pretendard,"Noto Sans KR","Malgun Gothic",sans-serif; font-size: 10px; font-weight: 600; letter-spacing: 0; }
.about-caption { position: absolute; z-index: 2; left: 10%; right: 10%; bottom: 8%; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.24); padding-top: 14px; color: #c3d0d5; font-family: Arial,sans-serif; font-size: 8px; letter-spacing: .16em; }
.principles { background: #eef1ef; }
.principle { min-height: 180px; display: grid; grid-template-columns: 52px 1fr 90px; gap: 20px; align-items: center; padding: 36px 42px; border-bottom: 1px solid #cfd5d3; transition: background .25s; }
.principle:hover { background: var(--white); }
.principle-no { align-self: start; color: var(--blue); font-family: Arial,sans-serif; font-size: 11px; font-weight: 800; }
.principle h3 { margin: 0 0 10px; font-size: 24px; }
.principle p { margin: 0; color: var(--muted); font-size: 14px; word-break: keep-all; }
.principle b { justify-self: end; align-self: end; color: #9aabae; font-family: Arial,sans-serif; font-size: 9px; letter-spacing: .18em; }

.services { color: var(--white); background: #0d263d; }
.services-heading, .process-heading { display: grid; grid-template-columns: 1fr .7fr; gap: 90px; align-items: end; }
.services-heading > p, .process-heading > p { color: #8fa3b1; }
.service-grid { display: grid; grid-template-columns: repeat(3,1fr); border-left: 1px solid rgba(255,255,255,.14); border-top: 1px solid rgba(255,255,255,.14); }
.service-card {
  position: relative;
  min-height: 360px;
  padding: 28px 32px 30px;
  border-right: 1px solid rgba(255,255,255,.14);
  border-bottom: 1px solid rgba(255,255,255,.14);
  overflow: hidden;
  isolation: isolate;
  background-color: #dfe8ee;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  transition: transform .25s, box-shadow .25s;
}
.service-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(180deg, rgba(8,28,45,.05) 0%, rgba(8,28,45,.18) 38%, rgba(8,28,45,.86) 100%);
  transition: background .25s;
}
.service-card:hover {
  z-index: 2;
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.service-card:hover::before {
  background: linear-gradient(180deg, rgba(8,28,45,.02) 0%, rgba(8,28,45,.13) 38%, rgba(8,28,45,.78) 100%);
}
.service-no,
.service-card h3,
.service-card p,
.service-card ul {
  position: relative;
  z-index: 1;
}
.service-no {
  color: #bfeaff;
  font-family: Arial,sans-serif;
  font-size: 10px;
  font-weight: 800;
  text-shadow: 0 1px 5px rgba(0,0,0,.45);
}
.service-card h3 {
  margin: 112px 0 12px;
  color: #fff;
  font-size: 24px;
  text-shadow: 0 2px 10px rgba(0,0,0,.55);
}
.service-card p {
  min-height: 50px;
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: 13px;
  word-break: keep-all;
  text-shadow: 0 1px 7px rgba(0,0,0,.55);
}
.service-card ul {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 16px;
  list-style: none;
  padding: 19px 0 0;
  margin: 21px 0 0;
  border-top: 1px solid rgba(255,255,255,.35);
  color: rgba(255,255,255,.82);
  font-size: 11px;
  text-shadow: 0 1px 6px rgba(0,0,0,.55);
}
.service-card li::before {
  content: "\00b7";
  margin-right: 5px;
  color: var(--lime);
}
.service-card .service-symbol {
  display: none;
}
.service-concrete { background-image: url("../images/service-concrete-bright-v3.webp"); }
.service-aggregate { background-image: url("../images/service-aggregate-bright-v3.webp"); }
.service-soil { background-image: url("../images/service-soil-bright-v3.webp"); }
.service-asphalt { background-image: url("../images/service-asphalt-bright-v3.webp"); }
.service-steel { background-image: url("../images/service-steel-bright-v3.webp"); }
.service-field { background-image: url("../images/service-field-bright-v3.webp"); }
.service-symbol { position: absolute; right: 30px; top: 38px; width: 72px; height: 72px; opacity: .7; }
.cylinder { right: 40px; width: 44px; height: 66px; border: 1px solid #6f8999; border-radius: 50% / 10%; background: linear-gradient(90deg,transparent,rgba(110,198,192,.14),transparent); }
.cylinder::before { content:""; position:absolute; left:-1px; top:-1px; width:42px; height:10px; border:1px solid #6f8999; border-radius:50%; }
.aggregate i { position:absolute; display:block; border:1px solid #6f8999; transform:rotate(35deg); }
.aggregate i:nth-child(1){width:25px;height:27px;left:2px;top:32px}.aggregate i:nth-child(2){width:32px;height:21px;right:4px;top:17px}.aggregate i:nth-child(3){width:20px;height:20px;right:10px;bottom:3px}
.layers i { position:absolute; left:2px; right:2px; height:14px; border:1px solid #6f8999; transform:skewX(-20deg); }
.layers i:nth-child(1){top:7px}.layers i:nth-child(2){top:28px}.layers i:nth-child(3){top:49px}
.road { width: 80px; transform: perspective(90px) rotateX(28deg); border: 1px solid #6f8999; }
.road i { position:absolute; left:49%; top:7px; bottom:7px; border-left:1px dashed #6f8999; }
.steel i { position:absolute; left:8px; right:8px; height:5px; border:1px solid #6f8999; transform:rotate(-20deg); }
.steel i:nth-child(1){top:18px}.steel i:nth-child(2){top:34px}.steel i:nth-child(3){top:50px}
.site { opacity:.9; }.site i:first-child { position:absolute; left:6px; right:6px; bottom:8px; height:46px; border-left:2px solid var(--navy); border-right:2px solid var(--navy); border-bottom:2px solid var(--navy); }.site i:last-child { position:absolute; width:33px; height:33px; left:19px; top:4px; border:2px solid var(--navy); transform:rotate(45deg); }
.scope-note { margin: 26px 0 0; color: #8198a8; font-size: 12px; }
.scope-note strong { color: var(--lime); margin-right: 12px; }

.section-media { display: grid; grid-template-columns: 1.55fr .75fr; min-height: 340px; margin: 0 0 34px; overflow: hidden; }
.section-media > img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; }
.section-media figcaption { display: flex; flex-direction: column; justify-content: flex-end; padding: 38px; }
.section-media figcaption > span { color: var(--lime); font: 800 9px Arial,sans-serif; letter-spacing: .16em; }
.section-media figcaption strong { display: block; margin-top: 18px; font-size: 25px; line-height: 1.45; word-break: keep-all; }
.section-media figcaption p { margin: 14px 0 0; color: #9eb0bb; font-size: 13px; line-height: 1.8; word-break: keep-all; }
.section-media figcaption small { margin-top: 28px; color: #748c9c; font-size: 10px; }
.services-media { border: 1px solid rgba(255,255,255,.15); background: #102b45; }
.services-media > img { object-position: center 58%; }
.facility-showcase { border: 1px solid #ccd5d3; background: var(--white); }
.facility-showcase > img { object-position: center; }
.facility-showcase figcaption > span { color: var(--blue); }
.facility-showcase figcaption strong { color: var(--ink); }
.facility-showcase figcaption p { color: var(--muted); }
.facility-showcase figcaption small { color: #849294; }

.facilities { background: #e7ebe9; }
.facility-tabs { display: flex; gap: 4px; margin-bottom: 28px; }
.facility-tabs button { min-width: 90px; padding: 10px 16px; border: 1px solid #bdc8c8; background: transparent; font-size: 12px; font-weight: 800; cursor: pointer; }
.facility-tabs button[aria-selected="true"] { background: var(--navy); border-color: var(--navy); color: var(--white); }
.facility-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.equipment-card { background: var(--white); border: 1px solid #d0d8d6; transition: transform .25s, box-shadow .25s; }
.equipment-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.equipment-card[hidden] { display: none; }
.equipment-drawing { position: relative; min-height: 265px; background-color: #dce3e2; background-image: linear-gradient(rgba(16,32,51,.06) 1px,transparent 1px), linear-gradient(90deg,rgba(16,32,51,.06) 1px,transparent 1px); background-size: 24px 24px; overflow:hidden; }
.equipment-drawing::after { content:"SCHEMATIC VIEW"; position:absolute; right:15px; bottom:10px; color:#829193; font:8px Arial,sans-serif; letter-spacing:.16em; }
.equipment-copy { padding: 28px; }
.equipment-copy > span { color: var(--blue); font:800 9px Arial,sans-serif; letter-spacing:.14em; }
.equipment-copy h3 { margin: 8px 0 10px; font-size: 21px; }
.equipment-copy p { min-height: 48px; margin: 0; color: var(--muted); font-size: 13px; word-break: keep-all; }
.equipment-copy dl { margin: 22px 0 0; padding-top: 14px; border-top:1px solid #dfe4e3; font-size:11px; }
.equipment-copy dl div { display:flex; justify-content:space-between; padding:3px 0; }.equipment-copy dt{color:#8b999b}.equipment-copy dd{margin:0;font-weight:700}
.press-machine i:nth-child(1){position:absolute;left:25%;right:25%;top:32px;height:20px;background:#70848b;box-shadow:0 11px 0 #344e5c}.press-machine i:nth-child(2){position:absolute;left:31%;right:31%;top:57px;bottom:44px;border-left:10px solid #83969a;border-right:10px solid #83969a}.press-machine i:nth-child(3){position:absolute;left:34%;right:34%;bottom:36px;height:20px;background:#344e5c;box-shadow:0 7px 0 #819497}.press-machine::before{content:"";position:absolute;left:44%;width:12%;height:80px;bottom:62px;background:linear-gradient(90deg,#6f7f80,#b3b9b4,#687777);border-radius:50%/8%}
.sieve-machine i{position:absolute;left:32%;right:32%;height:18px;border:2px solid #62777b;border-radius:50%;background:#bac5c3}.sieve-machine i:nth-child(1){top:55px}.sieve-machine i:nth-child(2){top:76px}.sieve-machine i:nth-child(3){top:97px}.sieve-machine i:nth-child(4){top:118px}.sieve-machine::before{content:"";position:absolute;left:27%;right:27%;top:44px;height:110px;border-left:8px solid #71878b;border-right:8px solid #71878b}.sieve-machine::after{content:"";position:absolute;left:34%;right:34%;bottom:52px;height:15px;background:#405a65;box-shadow:0 5px 0 #87999b}
.field-kit i:nth-child(1){position:absolute;left:27%;top:62px;width:46%;height:87px;background:#58727c;border:7px solid #344d58;box-shadow:inset 0 0 0 3px #94a6a8}.field-kit i:nth-child(2){position:absolute;left:39%;top:83px;width:22%;height:30px;background:#b6c4c2}.field-kit i:nth-child(3){position:absolute;left:48%;top:149px;width:4%;height:50px;background:#536d76}.field-kit::before{content:"";position:absolute;left:36%;right:36%;bottom:42px;height:12px;background:#314a57}

.process { color: var(--white); background: var(--navy); }
.process-list { counter-reset: steps; display: grid; grid-template-columns: repeat(4,1fr); list-style:none; padding:0; margin:0 0 54px; border-top:1px solid rgba(255,255,255,.17); border-bottom:1px solid rgba(255,255,255,.17); }
.process-list li { min-height:250px; padding:34px 30px; border-right:1px solid rgba(255,255,255,.12); }.process-list li:first-child{border-left:1px solid rgba(255,255,255,.12)}
.process-list span { color:var(--lime); font:800 9px Arial,sans-serif; letter-spacing:.15em; }.process-list strong{display:block;margin:62px 0 14px;font-size:20px}.process-list p{margin:0;color:#90a5b3;font-size:12px;word-break:keep-all}
.support-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.support-card { position:relative; min-height:210px; padding:30px; color:var(--ink); background:#f0f1ed; }.support-card > span{color:var(--blue);font:800 10px Arial,sans-serif}.support-card h3{margin:36px 0 8px;font-size:21px}.support-card p{margin:0;color:var(--muted);font-size:13px}.support-card a,.support-card button{position:absolute;right:24px;bottom:22px;display:flex;gap:22px;border:0;background:transparent;padding:0;font-size:12px;font-weight:800;cursor:pointer}.support-card a:hover,.support-card button:hover{color:var(--blue)}
.faq { margin-top:54px; border-top:1px solid rgba(255,255,255,.18); }
.faq details { border-bottom:1px solid rgba(255,255,255,.18); }.faq summary{position:relative;list-style:none;padding:24px 55px 24px 4px;font-size:15px;font-weight:750;cursor:pointer}.faq summary::-webkit-details-marker{display:none}.faq summary span,.faq summary span::after{position:absolute;right:6px;top:32px;width:17px;border-top:1px solid #91a6b5}.faq summary span::after{content:"";right:0;top:0;transform:rotate(90deg);transition:.2s}.faq details[open] summary span::after{transform:rotate(0)}.faq details p{max-width:850px;margin:0;padding:0 55px 25px 4px;color:#94a7b4;font-size:13px}

.location-layout { display:grid; grid-template-columns:1.4fr .8fr; min-height:480px; box-shadow:var(--shadow); }
.map-panel { position:relative; min-height:480px; overflow:hidden; background:#dce6e3; }
.map-embed iframe { display:block; width:100%; height:100%; min-height:480px; border:0; }
.map-grid { mask-image:none; background-image:linear-gradient(rgba(16,32,51,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(16,32,51,.07) 1px,transparent 1px);background-size:38px 38px;}
.map-panel .road { position:absolute;height:650px;background:#f6f6f0;border:12px solid rgba(255,255,255,.45);transform:rotate(38deg);box-shadow:0 0 0 1px #c6d2d0;}.road-a{width:58px!important;left:38%;top:-100px}.road-b{width:45px!important;left:18%;top:-80px;transform:rotate(-52deg)!important}.map-panel .block{position:absolute;background:#c3d2cf;border:1px solid #adbfbc}.block-a{width:120px;height:70px;left:9%;top:20%}.block-b{width:150px;height:90px;right:12%;top:13%}.block-c{width:110px;height:130px;right:18%;bottom:10%}
.map-pin { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:188px;padding:18px 22px 16px;background:var(--navy);color:var(--white);box-shadow:0 12px 30px rgba(11,32,54,.25);}.map-pin::after{content:"";position:absolute;left:calc(50% - 9px);bottom:-9px;width:18px;height:18px;background:var(--navy);transform:rotate(45deg)}.map-pin i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--lime)}.map-pin strong{font:800 13px Arial,sans-serif;letter-spacing:.08em}.map-pin small{display:block;margin-top:5px;color:#9eb1bd;font-size:10px}.north{position:absolute;right:24px;top:22px;font:800 10px Arial,sans-serif;letter-spacing:.15em}
.location-card { padding:50px 44px;background:var(--white); }.card-kicker{margin:0;color:var(--blue);font:800 9px Arial,sans-serif;letter-spacing:.16em}.location-card h3{margin:12px 0 36px;font-size:24px}.contact-list{margin:0}.contact-list div{display:grid;grid-template-columns:75px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid #e1e5e4;font-size:13px}.contact-list dt{color:#879496}.contact-list dd{margin:0;font-weight:700;word-break:keep-all}.map-link{margin-top:28px;width:100%;justify-content:space-between}.location-note{margin:14px 0 0;color:#8a9799;font-size:10px}.location-note code{font-family:Consolas,monospace}

.contact { color:var(--white); background:#102b45; }
.contact-layout { display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(70px,10vw,150px); }
.contact-intro h2{margin:0;font-size:clamp(38px,4.6vw,61px);line-height:1.24;letter-spacing:-.055em;word-break:keep-all}.contact-intro > p:not(.eyebrow){max-width:480px;margin:25px 0 0;color:#9cb0bd;font-size:14px;word-break:keep-all}.contact-direct{margin-top:58px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;gap:5px}.contact-direct > span{margin-bottom:9px;color:var(--lime);font:800 9px Arial,sans-serif;letter-spacing:.15em}.contact-direct a{font:700 15px Arial,sans-serif;color:#e5ecef}
.contact-form{background:var(--white);color:var(--ink);padding:38px}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.contact-form label{display:block;margin-bottom:20px;font-size:12px;font-weight:800}.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:8px;border:1px solid #cfd7d8;border-radius:0;background:#f8f8f5;padding:13px 14px;color:var(--ink);outline:0}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(28,93,132,.1)}.contact-form textarea{resize:vertical}.consent{display:flex!important;align-items:flex-start;gap:9px;color:#68777b;font-weight:500!important}.consent input{width:16px;height:16px;margin:3px 0 0;accent-color:var(--navy)}.form-notice{margin:11px 0 0;color:#869295;font-size:10px;line-height:1.5}.form-notice.is-error{color:#a33b31;font-weight:700}

.site-footer{color:#a8b8c2;background:#071827}.footer-top{min-height:118px;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid rgba(255,255,255,.13)}.brand-footer .brand-mark{background:#152d40}.brand-footer .brand-copy strong{color:var(--white)}.brand-footer .brand-copy small{color:#8ba0ae}.footer-top nav{display:flex;gap:28px;font-size:11px;font-weight:700}.footer-top nav a:hover{color:var(--white)}.to-top{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.2);color:var(--white)}.footer-bottom{min-height:145px;display:grid;grid-template-columns:1.1fr 1fr .6fr;gap:40px;align-items:center;font:10px/1.9 Arial,"Malgun Gothic",sans-serif;letter-spacing:.03em}.footer-bottom p{margin:0}.domain-mark{text-align:right;color:#637a8b;letter-spacing:.12em}.domain-mark strong{color:var(--lime);font-size:13px;letter-spacing:.04em}

.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button,.equipment-card,.service-card{transition:none}}

@media (max-width: 1040px) {
  .primary-nav { gap:18px; }.primary-nav > a:not(.nav-cta){font-size:12px}.nav-cta{min-width:auto;gap:10px}.hero-inner{grid-template-columns:1fr .82fr;gap:45px}.statement-inner{grid-template-columns:.8fr 2fr 1fr;gap:35px}.service-card{padding-inline:24px}.contact-layout{gap:70px}
}

@media (max-width: 900px) {
  .container{width:min(calc(100% - 36px),var(--max))}.utility-bar{display:none}.header-inner{min-height:70px}.menu-toggle{display:block;position:relative;z-index:102}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .primary-nav{position:fixed;z-index:101;inset:70px 0 auto;display:none;align-items:stretch;flex-direction:column;gap:0;padding:18px;background:var(--white);border-top:1px solid var(--line);box-shadow:0 28px 40px rgba(9,32,52,.18)}.primary-nav.is-open{display:flex}.primary-nav > a:not(.nav-cta){padding:15px 10px;border-bottom:1px solid #e5e8e7;font-size:15px}.primary-nav > a:not(.nav-cta)::after{display:none}.nav-cta{margin-top:12px;min-height:52px;padding-inline:18px}
  .hero-inner{grid-template-columns:1fr;min-height:auto;padding-top:80px}.hero-copy{max-width:700px}.hero-visual{min-height:440px;margin-top:8px}.hero-index{grid-template-columns:repeat(2,1fr)}.hero-index>div:nth-child(3),.hero-index>div:nth-child(4){border-top:1px solid rgba(255,255,255,.12)}
  .section{padding-block:95px}.statement-inner{grid-template-columns:1fr}.statement-aside{max-width:540px}.split-heading,.services-heading,.process-heading{grid-template-columns:1fr;gap:25px}.section-heading{margin-bottom:48px}.about-layout{grid-template-columns:1fr}.about-panel{min-height:460px}.principle{min-height:150px}.section-media{grid-template-columns:1fr}.section-media>img{height:360px;min-height:0}.section-media figcaption{padding:30px}.service-grid{grid-template-columns:repeat(2,1fr)}.facility-grid{grid-template-columns:1fr 1fr}.equipment-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.process-list{grid-template-columns:repeat(2,1fr)}.process-list li:nth-child(3),.process-list li:nth-child(4){border-top:1px solid rgba(255,255,255,.12)}.support-grid{grid-template-columns:1fr}.support-card{min-height:170px}.location-layout{grid-template-columns:1fr}.contact-layout{grid-template-columns:1fr}.contact-intro{max-width:650px}.footer-top nav{display:none}.footer-bottom{grid-template-columns:1fr 1fr}.domain-mark{display:none}
}

@media (max-width: 620px) {
  .container{width:min(calc(100% - 28px),var(--max))}.brand-copy strong{font-size:19px}.brand-copy small{font-size:10px}.hero{min-height:auto}.hero-inner{padding-block:62px 44px}.eyebrow{margin-bottom:22px}.hero h1{font-size:42px}.hero-lead{font-size:15px}.hero-actions{flex-direction:column;align-items:stretch}.button-primary,.button-ghost{width:100%}.hero-checks{gap:8px 16px}.hero-visual{min-height:360px}.hero-photo{object-position:58% center}.media-caption{left:16px;bottom:14px;flex-direction:column;align-items:flex-start;gap:3px}.hero-index>div{padding:16px;min-height:86px}.statement{padding-block:54px}.statement blockquote{font-size:27px}.section{padding-block:76px}.section-heading h2{font-size:36px}.about-panel{min-height:390px}.about-emblem span{font-size:46px}.about-emblem strong{font-size:76px}.principle{grid-template-columns:36px 1fr;padding:28px 22px}.principle b{display:none}.section-media>img{height:270px}.section-media figcaption{padding:25px}.section-media figcaption strong{font-size:22px}.service-grid{grid-template-columns:1fr}.service-card{min-height:330px}.facility-tabs{overflow:auto;padding-bottom:5px}.facility-tabs button{min-width:80px}.facility-grid{grid-template-columns:1fr}.equipment-card:last-child{grid-column:auto;display:block}.equipment-drawing{min-height:230px}.process-list{grid-template-columns:1fr}.process-list li{min-height:190px;border-left:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.12)}.process-list strong{margin-top:36px}.map-panel,.map-embed iframe{min-height:370px}.location-card{padding:36px 26px}.contact-form{padding:24px 20px}.form-row{grid-template-columns:1fr;gap:0}.footer-top{min-height:100px}.footer-bottom{grid-template-columns:1fr;gap:12px;padding-block:26px}.footer-bottom p:nth-child(2){color:#627889}
}


.brand-logo {
  display: block;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  object-fit: contain;
}
.brand-footer .brand-logo {
  background: #fff;
}
