@charset "utf-8";

/* 공통 */
.sub-intro {padding:0 0 var(--space-100); text-align:center;}
.sub-intro-en {font-size:var(--font-size-20); font-weight:600; color:#ccc; line-height:1.7em; letter-spacing:-.02em;}
.sub-intro-tit {margin-top:var(--space-16); font-size:var(--font-size-40); font-weight:600; color:var(--color-sub); line-height:1.35em; letter-spacing:-.02em;}

/********************* 회사소개 *********************/
/* 인사말 */
.greeting-wrap {display:flex; gap:var(--space-100); align-items:center;}
.greeting-txt {flex:1;}
.greeting-en {display:inline-block; font-size:var(--font-size-18); font-weight:600; line-height:1.777em; letter-spacing:-.02em; background:linear-gradient(90deg, var(--color-primary) 0%, #8debed 100%); -webkit-background-clip:text; background-clip:text; color:transparent;}
.greeting-lead {margin-top:var(--space-16); font-size:var(--font-size-32); font-weight:600; color:var(--color-sub); line-height:1.4375em; letter-spacing:-.02em;}
.greeting-desc {display:flex; flex-direction:column; gap:var(--space-24); margin-top:var(--space-40);}
.greeting-desc p {font-size:var(--font-size-20); font-weight:400; color:#676767; line-height:1.7em; letter-spacing:-.02em;}
.greeting-sign {margin-top:var(--space-40); font-size:var(--font-size-20); font-weight:600; color:var(--color-sub); line-height:1.7em; letter-spacing:-.02em;}
.greeting-visual {flex:0 1 44%; max-width: 620px; min-width:0; margin:0; border-radius:var(--radius-16); overflow:hidden;}

/* 회사연혁 */
.history-timeline {position:relative; padding-top:var(--space-48); border-top:1px solid #eee;}
.history-timeline:before {content:""; position:absolute; top:0; left:50%; width:1px; height:100%; background:#eee; transform:translateX(-50%);}
.history-row {display:flex; align-items:stretch;}
.history-row + .history-row {margin-top:var(--space-100);}
.history-row > * {flex:1; min-width:0;}
.history-row > .history-img-wrap {padding-right:var(--space-48);}
.history-row.reverse > .history-img-wrap {padding-left:var(--space-48);}
.history-img-wrap {flex: 0 1 50%;}
.history-img {border-radius:var(--radius-16); overflow:hidden;}
.history-cont {flex: 0 1 50%; display:flex; flex-direction:column; gap:var(--space-48); justify-content:center;}
.history-year {font-size:var(--font-size-48); font-weight:600; color:var(--color-primary); line-height:1em; letter-spacing:-.02em;}
.history-row .history-year {border-left:2px solid var(--color-primary); padding-left:var(--space-40);}
.history-row.reverse .history-img-wrap {order: 2;}
.history-row.reverse .history-cont {order: 1; align-items:flex-end;}
.history-row.reverse .history-year {border-right:2px solid var(--color-primary); border-left: none; padding-right:var(--space-40);}
.history-list {display:flex; flex-direction:column; gap:var(--space-24); margin:0; padding:0; list-style:none; width:100%;}
.history-row .history-list {padding-left:var(--space-40);}
.history-row.reverse .history-list {padding-right:var(--space-40); align-items:flex-end;}
.history-list li {display:flex; gap:var(--space-20); align-items:flex-start;}
.history-row.reverse .history-list li {flex-direction:row-reverse;}
.history-month {flex-shrink:0; font-size:var(--font-size-22); font-weight:600; color:var(--color-sub); line-height:1.636em; letter-spacing:-.02em;}
.history-txt {font-size:var(--font-size-22); font-weight:500; color:#676767; line-height:1.636em; letter-spacing:-.02em;}

/* 조직도 */
.org-chart {display:flex; flex-direction:column; align-items:center; }
.org-ceo {position:relative; display:flex; align-items:center; justify-content:center; width:clamp(150px, calc(240 / var(--inner) * 100vw), 240px); aspect-ratio: 1/1; border-radius:500px; font-size:var(--font-size-28); font-weight:600; color:#fff; line-height:1.5em; letter-spacing:-.02em; background:url("/images/sub/org-ceo-bg.jpg") no-repeat center / cover;}
.org-ceo:after {content:""; position:absolute; bottom:-72px; left:50%; width:1px; height:72px; background:#ddd; transform:translateX(-50%);}
.org-tree {position:relative; width:100%; margin-top:72px; padding-top:72px;}
.org-tree:before {content:""; position:absolute; top:0; left:calc((100% - 2 * var(--space-48)) / 6); right:calc((100% - 2 * var(--space-48)) / 6); height:1px; background:#ddd;}
.org-list {display:flex; gap:var(--space-48); margin:0; padding:0; list-style:none;}
.org-item {position:relative; flex:1; display:flex; flex-direction:column; align-items:center;}
.org-item:before {content:""; position:absolute; top:-72px; left:50%; width:1px; height:72px; background:#ddd; transform:translateX(-50%);}
.org-box {display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-14); width:100%; padding:var(--space-32) 0; border:1px solid var(--color-primary); border-radius:var(--radius-16); background:#fff;}
.org-icon {display:flex; align-items:center; justify-content:center; width:24px; height:24px;}
.org-icon img {display:block; width:100%; height:100%; object-fit:contain;}
.org-name {font-size:var(--font-size-24); font-weight:600; color:var(--color-primary); line-height:1.666em; letter-spacing:-.02em;}

/* 오시는길 */
.location-head {margin-bottom: var(--space-48);}
.location-tit {display:flex; flex-wrap:wrap; gap:10px; font-size:var(--font-size-40); font-weight:600; line-height:1.35em; letter-spacing:-.02em;}
.location-tit-txt {color:var(--color-sub);}
.location-tit-en {background:linear-gradient(90deg, var(--color-primary) 0%, #8debed 100%); -webkit-background-clip:text; background-clip:text; color:transparent;}
.location-info {display:flex; flex-direction:column; gap:var(--space-24); margin-bottom: var(--space-48);}
.location-info-row {display:flex; flex-wrap: wrap; margin:0; padding:0; list-style:none;}
.location-info-row > li {flex:1; min-width:0;}
.location-dl {margin:0; padding-right: var(--space-24);}
.location-dl dt {font-size:var(--font-size-18); font-weight:600; color:#a8a8a8; line-height:1.777em; letter-spacing:-.02em;}
.location-dl dd {margin-top:var(--space-8); font-size:var(--font-size-22); font-weight:400; color:var(--color-sub); line-height:1.636em; letter-spacing:-.02em;}
.location-dl dd a {color:inherit; text-decoration:none;}
.location-dl dd a:hover {color:var(--color-primary);}
.location-map {position:relative; height:480px; border:1px solid #eee; border-radius:var(--radius-16); overflow:hidden;}
.location-map img {display:block; width:100%; height:100%; object-fit:cover;}
.location-map .root_daum_roughmap, 
.location-map .root_daum_roughmap .wrap_map {width: 100%; height: 100%;}

/********************* 사업분야 *********************/
/* 가설구조물구조검토 */
.biz-block {padding-bottom:var(--space-100);}
.biz-block-last {padding-bottom:0;}
.biz-tit {display:flex; align-items:center; gap:var(--space-14); margin-bottom:var(--space-40); font-size:var(--font-size-28); font-weight:600; color:var(--color-sub); line-height:1.5em; letter-spacing:-.02em;}
.biz-tit:before {content:""; flex-shrink:0; width:20px; height:24px; background:url("/images/sub/tit-deco.svg") no-repeat center / contain;}
.biz-tag-grid {display:flex; flex-wrap: wrap; gap:var(--space-24); margin:0; padding:0; list-style:none;}
.biz-tag {flex: 0 1 calc(25% - var(--space-24)*3/4); display:flex; flex-direction:column; align-items:center; gap:var(--space-8); padding:var(--space-20) 0 var(--space-14); border:1px solid #eee; border-radius:var(--radius-8); font-size:var(--font-size-20); font-weight:500; color:var(--color-sub); line-height:1.7em; letter-spacing:-.02em; text-align:center;}
.biz-tag:before {content:""; width:16px; height:4px; background: url("/images/sub/tag-dot.svg") no-repeat center / contain;}
.biz-tag--grid {justify-content:center; }
.biz-card-grid {display:flex; flex-wrap: wrap; align-items: center; gap:var(--space-24); margin:0; padding:0; list-style:none;}
.biz-card-grid > li {flex: 0 1 calc(25% - var(--space-24)*3/4); min-width:0;}
.biz-card {position:relative;} 
.biz-card .img {position: relative; padding-bottom: 100%;  border-radius:var(--radius-16); overflow:hidden;}
.biz-card .img:after {content:""; position:absolute; top:0; left:0; right:0; bottom:0; border-radius:var(--radius-16); background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 50%, rgba(0, 0, 0, 0.40) 100%);}
.biz-card .img img {position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); -ms-transform:translate(-50%,-50%); -webkit-transform:translate(-50%,-50%); width:auto !important; height:auto !important; max-width:100%; max-height:100%; object-fit:contain;}
.biz-card.type-geoxd .img img {position:absolute; top:50%; left:0; transition:.4s ease-in-out; transform:translateY(-50%); -ms-transform:translateY(-50%); -webkit-transform:translateY(-50%); width:100%; height:auto !important; max-width:100%; min-height:100%; object-fit:cover;}
.biz-card span {position:absolute; bottom: 0; left: 0; width: 100%; padding: var(--space-24); z-index:1; font-size:var(--font-size-22); font-weight:600; color:#fff; line-height:1.636em; letter-spacing:-.02em;}
.biz-card-empty img {opacity:0;}

/* AI */
.ai-intro .ai-desc {margin-top:var(--space-36);}
.ai-desc p {font-size:var(--font-size-20); font-weight:400; color:#676767; line-height:1.7em; letter-spacing:-.02em;}
.ai-data-panel {position:relative; padding:var(--space-72) var(--space-55) var(--space-80); border-radius:var(--radius-16); overflow:hidden;}
.ai-data-panel:before {content:""; position:absolute; inset:0; background:url("/images/sub/ai-data-bg.jpg") no-repeat center / cover;}
.ai-data-list {position:relative; z-index:1; display:flex; flex-wrap: wrap; gap:var(--space-48); margin:0; padding:0; list-style:none;}
.ai-data-list > li {flex:1; min-width:0;}
.ai-data-item {display:flex; flex-direction:column; gap:var(--space-24);}
.ai-data-num {font-size:var(--font-size-18); font-weight:600; color:rgba(255,255,255,0.4); line-height:1.777em; letter-spacing:-.02em;}
.ai-data-tit {font-size:var(--font-size-24); font-weight:600; color:#fff; line-height:1.666em; letter-spacing:-.02em;}
.ai-data-item .ai-data-tit:after {content:""; display:block; width:100%; height:1px; margin-top:var(--space-24); background:rgba(255,255,255,0.16);}
.ai-data-desc {font-size:var(--font-size-20); font-weight:500; color:rgba(255,255,255,0.8); line-height:1.7em; letter-spacing:-.02em;}
.ai-feature-list {display:flex; margin:0; padding:0; list-style:none;}
.ai-feature-item {flex:1; display:flex; flex-direction:column; align-items:center; gap:var(--space-28); min-width:0;}
.ai-feature-head {position:relative; display:flex; align-items:center; justify-content:center; width:100%;}
.ai-feature-head:before {content:""; position:absolute; top:50%; left:0; right:0; height:1px; background:#eee; transform:translateY(-50%);}
.ai-feature-item:first-child .ai-feature-head:before {background:linear-gradient(90deg, rgba(238,238,238,0.5) 0%, #eee 100%);}
.ai-feature-item:last-child .ai-feature-head:before {background:linear-gradient(90deg, #eee 0%, rgba(238,238,238,0.5) 100%);}
.ai-feature-icon {position:relative; z-index:1; display:flex; align-items:center; justify-content:center; flex-shrink:0; width:80px; height:80px; border:1px solid #eee; border-radius:500px; background:#fff; transition:border-color .3s, background .3s;}
.ai-feature-icon svg {stroke:var(--color-primary);}
.ai-feature-txt {display:flex; flex-direction:column; align-items:center; gap:var(--space-14); text-align:center;}
.ai-feature-tit {font-size:var(--font-size-24); font-weight:600; color:var(--color-sub); line-height:1.666em; letter-spacing:-.02em; transition:color .3s;}
.ai-feature-txt p {font-size:var(--font-size-20); font-weight:400; color:#676767; line-height:1.7em; letter-spacing:-.02em;}
.ai-feature-item:hover .ai-feature-icon {border:4px solid var(--color-primary); background:var(--color-primary);}
.ai-feature-item:hover .ai-feature-icon svg {stroke: #fff;}
.ai-feature-item:hover .ai-feature-tit {color:var(--color-primary);}
.ai-block-last {padding-bottom:0;}

/********************* 홍보자료 *********************/
/* 지식재산권 */
.tab-menu {display:flex; margin:0 0 var(--space-100); padding:0; list-style:none; border:1px solid #eee; border-radius:500px; background:#fafafa;}
.tab-menu > li {flex:1; min-width:0;}
.tab-menu > li > a {display:flex; align-items:center; justify-content:center; padding:18px 0; font-size:var(--font-size-20); font-weight:600; color:#878787; line-height:1.7em; letter-spacing:-.02em; text-decoration:none; border:1px solid transparent; border-radius:500px; transition:color .3s, background .3s, border-color .3s;}
.tab-menu > li.active > a {color:var(--color-primary); background:#fff; border-color:var(--color-primary);}
.ip-grid {display:flex; flex-wrap:wrap; margin:0 -12px;}
.ip-grid li {width: 25%; padding:0 12px; min-width:0;}
.ip-thumb {position:relative; padding-bottom: 141.55%; border-radius:var(--radius-16); background:#f3f3f3; overflow:hidden;}
.ip-thumb:after {content:""; position:absolute; top:0; left:0; right:0; bottom:0; border-radius:var(--radius-16); border:1px solid rgba(238, 238, 238, 1); pointer-events: none;}
.ip-thumb img {position:absolute; top:50%; left:0; transition:.4s ease-in-out; transform:translateY(-50%); -ms-transform:translateY(-50%); -webkit-transform:translateY(-50%); width:100%; height:auto !important; max-width:100%; min-height:100%; object-fit:cover;}
.ip-thumb-empty img {opacity:0;}
.ip-thumb-empty:before {content:""; position:absolute; top:50%; left:50%; width:120px; height:56px; background:url("/images/common/logo.svg") no-repeat center / contain; opacity:0.35; transform:translate(-50%, -50%);}
.ip-name {margin-top:var(--space-24); font-size:var(--font-size-20); font-weight:600; color:var(--color-sub); line-height:1.7em; letter-spacing:-.02em; text-align:center;}

/********************* 고개센터 *********************/
.inquiry-btn {padding: var(--space-14) var(--space-28); font-size:var(--font-size-18); font-weight:600; color:#fff; line-height:1.777em; letter-spacing:-.02em; background:var(--color-primary); cursor:pointer; border: none;}
.board-form table th .required {color:var(--color-primary);}