@charset "utf-8";

/* 공통 */
.text-indent {text-indent: -9999px;}
.sub-section {padding: var(--space-120) 0;}
.sub-section:first-child {padding-top: 0;}
.sub-section:last-child {padding-bottom: 0;}
.real-cont.pb0 .sub-section:last-child {padding-bottom: var(--space-160);}
.sub-section.bg-color {background:#fafafa;}

/*************************** 회사소개 ***************************/
/* 인사말 */
.greetings-cont {display:flex; align-items:flex-start; justify-content:space-between;}
.greetings-slogan {flex:1 1 50%; min-width:0; padding-right: var(--space-24); color:var(--color-sub); font-size:var(--font-size-36); font-weight:600; line-height:1.39em; letter-spacing:-.02em;}
.greetings-slogan strong {color:var(--color-primary); font-weight:600;}
.greetings-body {display:flex; flex-direction:column; gap:var(--space-24); flex:1 1 50%; min-width:0;}
.greetings-body p {color:#676767; font-size:var(--font-size-20); font-weight:400; line-height:1.7em; letter-spacing:-.02em;}
.greetings-body .sign {margin-top:0; color:var(--color-sub); font-size:var(--font-size-20); font-weight:600; line-height:1.7em; letter-spacing:-.02em; text-align:right;}

/* 연혁 */
.history-section {border-top:1px solid #eee;}
.history-group {display:flex; align-items:flex-start; border-left:1px solid #eee; border-right:1px solid #eee;}
.history-group .period {position:relative; flex:0 0 29%; max-width:400px; margin:0; padding-left:var(--space-32); color:var(--color-sub); font-size:var(--font-size-48); font-weight:600; line-height:1.29em; letter-spacing:-.02em;}
.history-group .period:before {content:""; position:absolute; top:0; left:0; width:2px; height:1.29em; background:var(--color-primary);}
.history-group .items {position:relative; display:flex; flex-direction:column; gap:var(--space-24); flex:1; min-width:0; padding:11px 0 var(--space-100) var(--space-48); border-left:1px solid #eee;}
.history-group:first-child .period {padding-top:var(--space-100);}
.history-group:first-child .period:before {top:var(--space-100);}
.history-group:first-child .items {padding-top:var(--space-100);}
.history-group:last-child .items {padding-bottom:var(--space-160);}
.history-group .item {display:flex; align-items:flex-start; position:relative;}
.history-group .item .dot {position:absolute; top:8px; left:calc(var(--space-48) * -1 - 13px); display:flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:#97cce4; z-index:1;}
.history-group .item .dot:after {content:""; display:block; width:16px; height:16px; border:4px solid var(--color-primary); border-radius:50%; background:#fff; box-sizing:border-box;}
.history-group .item .date {flex:0 0 120px; width:120px; color:var(--color-sub); font-size:var(--font-size-24); font-weight:600; line-height:1.67em; letter-spacing:-.02em;}
.history-group .item ul {display:flex; flex-direction:column; gap:var(--space-10); flex:1; min-width:0; margin:0; padding:3px 0 0; list-style:none;}
.history-group .item li {position:relative; padding-left:14px; color:#676767; font-size:var(--font-size-20); font-weight:400; line-height:1.7em; letter-spacing:-.02em;}
.history-group .item li:before {content:""; position:absolute; top:15px; left:0; width:4px; height:4px; border-radius:50%; background:var(--color-primary);}

/* 안전보건방침·목표 */
.sec-head {display:flex; flex-direction:column; align-items:center; gap:var(--space-10); text-align:center; margin-bottom: var(--space-40);}
.sec-head .en {color:var(--color-primary); font-size:var(--font-size-20); font-weight:500; line-height:1.7em; letter-spacing:-.02em;}
.sec-head h3 {margin:0; color:var(--color-sub); font-size:var(--font-size-36); font-weight:600; line-height:1.39em; letter-spacing:-.02em;}
.policy-list {display:flex; flex-direction:column; gap:var(--space-8); width:100%; margin:0; padding:0; list-style:none;}
.policy-list li {display:flex; align-items:flex-start; gap:var(--space-16); width:100%; padding:var(--space-28); border:1px solid #eee;}
.policy-list .num {flex-shrink:0; color:var(--color-primary); font-size:var(--font-size-22); font-weight:500; line-height:1.64em; letter-spacing:-.02em;}
.policy-list p {margin:0; color:var(--color-sub); font-size:var(--font-size-22); font-weight:400; line-height:1.64em; letter-spacing:-.02em;}
.safety-quote {display:flex; flex-direction:column; align-items:center; gap:var(--space-10);}
.safety-quote:before {content:""; display:block; width:72px; height:72px; background:url(/images/sub/safety-quote.png) no-repeat center / contain;}
.safety-quote p {margin:0; color:#878787; font-size:var(--font-size-22); font-weight:600; line-height:1.64em; letter-spacing:-.02em; text-align:center;}

.obj-list {display:flex; gap:8px; flex-wrap:wrap; margin:0; padding:0; list-style:none;}
.obj-list li {display:flex; flex-direction:column; gap:var(--space-16); flex:1; min-width:0; padding:var(--space-28); border:1px solid #eee; background:#fff;}
.obj-list .num {color:var(--color-primary); font-size:var(--font-size-18); font-weight:500; line-height:1.78em; letter-spacing:-.02em;}
.obj-list .tit {display:block; color:var(--color-sub); font-size:var(--font-size-22); font-weight:600; line-height:1.64em; letter-spacing:-.02em;}
.obj-list p {margin:0; color:#676767; font-size:var(--font-size-20); font-weight:400; line-height:1.7em; letter-spacing:-.02em;}

.safety-plan .plan-diagram {display:flex; flex-direction:column; align-items:center; gap:var(--space-24); width:100%;}
.safety-plan .plan-top {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 #eee;}
.safety-plan .plan-top strong {color:var(--color-sub); font-size:var(--font-size-24); font-weight:600; line-height:1.67em; letter-spacing:-.02em; text-align:center;}
.safety-plan .plan-cols {display:flex; gap:var(--space-8); width:100%;}
.safety-plan .plan-col {display:flex; flex-direction:column; flex:1; min-width:0; padding:var(--space-16);}
.safety-plan .plan-col--blue {background:#f3f9fc;}
.safety-plan .plan-col--orange {background:#fff9f6;}
.safety-plan .plan-goal {display:flex; flex-direction:column; align-items:center; gap:var(--space-4); padding:var(--space-14) var(--space-12) var(--space-30); text-align:center;}
.safety-plan .plan-goal .en {font-size:var(--font-size-18); font-weight:500; line-height:1.56em; letter-spacing:-.02em;}
.safety-plan .plan-col--blue .plan-goal .en {color:#97cce4;}
.safety-plan .plan-col--orange .plan-goal .en {color:#febda0;}
.safety-plan .plan-goal strong {font-size:var(--font-size-24); font-weight:600; line-height:1.58em; letter-spacing:-.02em;}
.safety-plan .plan-col--blue .plan-goal strong {color:var(--color-primary);}
.safety-plan .plan-col--orange .plan-goal strong {color:#fd7b42;}
.safety-plan .plan-boxes {display:flex; gap:var(--space-8); width:100%; flex: 1;}
.safety-plan .plan-box {display:flex; flex-direction:column; gap:var(--space-20); flex:1; min-width:0; padding:var(--space-30) var(--space-40); background:#fff;}
.safety-plan .plan-col--blue .plan-box {flex:1;}
.safety-plan .plan-box .box-tit {display:block; color:var(--color-sub); font-size:var(--font-size-22); font-weight:500; line-height:1.64em; letter-spacing:-.02em;}
.safety-plan .plan-box ul {display:flex; flex-wrap:wrap; gap:var(--space-10) var(--space-8); width:100%; margin:0; padding:0; list-style:none;}
.safety-plan .plan-col--blue .plan-box ul {display:flex; flex-wrap:wrap; gap:var(--space-10) var(--space-8);}
.safety-plan .plan-col--blue .plan-box ul li:last-child {grid-column:1;}
.safety-plan .plan-col--orange .plan-box ul {flex-direction:column; flex-wrap:nowrap;}
.safety-plan .plan-box li {flex: 0 1 calc(50% - var(--space-8)/ 2); position:relative; padding-left:14px; color:#676767; font-size:var(--font-size-18); font-weight:400; line-height:1.56em; letter-spacing:-.02em;}
.safety-plan .plan-box li:before {content:""; position:absolute; top:12px; left:0; width:4px; height:4px; border-radius:50%; background:#ccc;}

/* 조직도 */

/* 오시는 길 */
.location-map {position: relative;}
.location-map .map-box{position:relative; height:600px; overflow:hidden;}
.location-map .root_daum_roughmap,
.location-map .root_daum_roughmap .wrap_map {width:100%; height:100%;}
.location-info {position:absolute; top:var(--space-20); left:var(--space-20); z-index:2; display:flex; flex-direction:column; justify-content:space-between; width:460px; height:calc(100% - var(--space-40)); padding:var(--space-40); background:rgba(255,255,255,.8); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); box-sizing:border-box;}
.location-info .logo-wrap {width: 230px;}
.location-info .info-list {display:flex; flex-direction:column; gap:var(--space-16); width:100%; margin:0; padding-top:var(--space-30); border-top:1px solid #eee;}
.location-info .info-list > div {display:flex; align-items:flex-start; width:100%;}
.location-info .info-list dt {flex-shrink:0; width:80px; color:#999; font-size:var(--font-size-18); font-weight:500; line-height:1.78em; letter-spacing:-.02em;}
.location-info .info-list dd {margin:0; color:#676767; font-size:var(--font-size-18); font-weight:400; line-height:1.78em; letter-spacing:-.02em;}

/*************************** 주요 사업 ***************************/
.biz-intro .contain {display:flex; align-items:center; gap:var(--space-100); }
.biz-intro .img {position:relative; flex:0 0 50%; max-width:700px;}
.biz-intro .txt {display:flex; flex-direction:column; gap:var(--space-40); flex:1; min-width:0;}
.biz-intro .txt h3 {margin:0; color:var(--color-sub); font-size:var(--font-size-36); font-weight:600; line-height:1.39em; letter-spacing:-.02em;}
.biz-intro .txt h3 strong {color:var(--color-primary); font-weight:600;}
.biz-intro .txt .desc {display:flex; flex-direction:column; gap:var(--space-24);}
.biz-intro .txt .desc p {margin:0; color:#676767; font-size:var(--font-size-20); font-weight:400; line-height:1.7em; letter-spacing:-.02em;}
.biz-sites-txt {display:flex; flex-direction:column; flex:1; min-width:0;}

.biz-sites .contain {display:flex; align-items:stretch; gap:var(--space-60); }
.land-section.biz-sites .contain {align-items: flex-start;}
.biz-sites-txt .head {padding-bottom:var(--space-30); border-bottom:1px solid #eee;}
.biz-sites-txt .head .label {margin:0 0 var(--space-10); color:var(--color-primary); font-size:var(--font-size-20); font-weight:500; line-height:1.7em; letter-spacing:-.02em;}
.biz-sites-txt .head h3 {margin:0; color:var(--color-sub); font-size:var(--font-size-36); font-weight:600; line-height:1.39em; letter-spacing:-.02em;}
.biz-sites-list {flex: 1; display:flex; flex-direction:column; justify-content: space-between; gap:var(--space-40); margin:var(--space-30) 0 0; }
.biz-sites-list ul {display:flex; flex-direction:column; gap:var(--space-8); padding:0; list-style:none;}
.biz-sites-list li {position:relative; padding-left:14px; color:#676767; font-size:var(--font-size-20); font-weight:400; line-height:1.7em; letter-spacing:-.02em;}
.biz-sites-list li:before {content:""; position:absolute; top:15px; left:0; width:4px; height:4px; border-radius:50%; background:#ccc;}
.biz-sites-list .btn-more {align-self:flex-start;}
.biz-sites-gallery {flex: 1; display: flex; gap: 4px; flex-wrap: wrap;}
.biz-sites-gallery .item {flex:0 0 calc(50% - 2px); min-width:0; position:relative; overflow:hidden;}
.biz-sites-gallery .item .img {position: relative; padding-bottom: 74.5%; overflow:hidden;}
.biz-sites-gallery .item .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-sites-gallery .item .tit {position:absolute; left:0; right:0; bottom:var(--space-16); z-index:2; padding:0 var(--space-10); color:#fff; font-size:var(--font-size-18); font-weight:600; line-height:1.78em; letter-spacing:-.02em; text-align:center;}

/*************************** 공사 실적 ***************************/


/*************************** 기술/면허 ***************************/
/* 보유 면허 */
.license-list {display:flex; flex-wrap:wrap; gap:var(--space-40) var(--space-24); margin:0; padding:0; list-style:none;}
.license-list > li {flex:0 0 calc(25% - var(--space-24)/ 4 * 3); }
.license-list .img {position:relative; padding-bottom:141.6%; overflow:hidden; margin-bottom: var(--space-20);}
.license-list .img::after {content:""; position:absolute; top:0; left:0; right:0; bottom:0; border:1px solid rgba(0,0,0,.08);}
.license-list .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;}
.license-list .txt {display:flex; flex-direction:column; gap:var(--space-10); width:100%;}
.license-list .tit {display:flex; align-items:flex-start; gap:var(--space-8); color:var(--color-sub); font-size:var(--font-size-20); font-weight:600; line-height:1.7em; letter-spacing:-.02em;}
.license-list .tit:before {content:""; flex-shrink:0; width:4px; height:4px; margin-top: 10px; border-radius:50%; background:var(--color-primary);}
.license-list .txt > ul {display:flex; flex-direction:column; gap:var(--space-4); margin:0; padding:0 0 0 var(--space-14); list-style:none;}
.license-list .txt > ul li {position:relative; padding-left:14px; color:#676767; font-size:var(--font-size-18); font-weight:400; line-height:1.56em; letter-spacing:-.02em;}
.license-list .txt > ul li:before {content:""; position:absolute; top:12px; left:0; width:4px; height:4px; border-radius:50%; background:#ccc;}
.license-list .badge {display:inline-flex; align-items:center; justify-content:center; padding:var(--space-4) var(--space-12); background:#f6f6f6; color:#a8a8a8; font-size:var(--font-size-16); font-weight:600; line-height:1.5em; letter-spacing:-.02em;}
.license-list > li:has(.badge) .txt {align-items:center;}

/* 시공능력평가 */
.tabs {display:flex; margin:0 0 var(--space-60); padding:0; list-style:none; border:1px solid #eee; background:#fafafa;}
.tabs > li {flex:1; min-width:0; border-right:1px solid #eee;}
.tabs > li:last-child {border-right:0;}
.tabs > li a {display:flex; align-items:center; justify-content:center; width:100%; padding:var(--space-16) 0; color:#878787; font-size:var(--font-size-18); font-weight:600; line-height:1.78em; letter-spacing:-.02em; text-align:center;}
.tabs > li.active {background:#1a1a1a;}
.tabs > li.active a {color:#fff;}
.capability-wrap {display:flex; flex-direction:column; gap:var(--space-20);}
.capability-wrap .unit {margin:0; color:#878787; font-size:var(--font-size-18); font-weight:500; line-height:1.78em; letter-spacing:-.02em; text-align:right;}
.com-table {overflow-x:auto; border-top: 1px solid var(--color-sub);}
.com-table table {width:100%; border-collapse:collapse; border-spacing:0; border-top:1px solid var(--color-sub);}
.com-table thead th {padding:14px 10px; border:1px solid #eee; border-bottom:0; background:#fafafa; color:var(--color-sub); font-size:var(--font-size-20); font-weight:600; line-height:1.7em; letter-spacing:-.03em; text-align:center;}
.com-table td {padding:14px 10px; border:1px solid #eee; color:#676767; font-size:var(--font-size-18); font-weight:400; line-height:1.78em; letter-spacing:-.02em; text-align:center;}
.com-table thead th {width: 18.29%;}
.com-table thead th:first-child,
.com-table td:first-child {width:8.58%; border-left:0;}
.com-table thead th:last-child,
.com-table td:last-child {border-right:0;}

/*************************** 인재채용 ***************************/
/* 채용 정보 */
.recruit-info {display:flex; flex-direction:column; gap:var(--space-80);}
.recruit-banner {position:relative; display:flex; align-items:center; justify-content:center; height:clamp(200px, calc(400 / var(--inner) * 100vw), 400px); overflow:hidden;}
.recruit-banner img {position:absolute; top:50%; left:0; width:100%; height:auto; min-height:100%; object-fit:cover; transform:translateY(-50%);}
.recruit-banner .txt {position:relative; z-index:1; margin:0; padding: 0 10px; color:rgba(255,255,255,.7); font-size:var(--font-size-28); font-weight:600; line-height:1.5em; letter-spacing:-.02em; text-align:center;}
.recruit-banner .txt strong {color:#fff; font-weight:600;}
.recruit-field {display:flex; align-items:flex-start; width:100%;}
.recruit-field h3 {flex:0 0 29%; max-width:400px; margin:0; color:var(--color-sub); font-size:var(--font-size-36); font-weight:600; line-height:1.39em; letter-spacing:-.02em;}
.com-table.type-recruit {flex:1; min-width:0;}
.com-table.type-recruit tr th:first-child,
.com-table.type-recruit tr td:first-child {width:16%;}
.com-table.type-recruit tr th:nth-child(2),
.com-table.type-recruit tr td:nth-child(2) {width:16%;}
.com-table.type-recruit tr th:last-child,
.com-table.type-recruit tr td:last-child {width:auto;}
.com-table.type-recruit tbody th {background:transparent; font-weight:400; color:#676767; font-size:var(--font-size-18); line-height:1.78em; letter-spacing:-.02em; border: 1px solid #eee; border-left: 0;}

/* 인사/복리후생 */
.welfare-cont {display:flex; flex-direction:column; gap:var(--space-120);}
.welfare-row {display:flex; align-items:flex-start; width:100%;}
.welfare-row h3 {flex:0 0 29%; max-width:400px; margin:0; color:var(--color-sub); font-size:var(--font-size-36); font-weight:600; line-height:1.39em; letter-spacing:-.02em;}
.career-path {display:flex; align-items:center; gap:var(--space-32); flex:1; min-width:0; margin:0; padding:0; list-style:none;}
.career-path li {position:relative; display:flex; align-items:center; justify-content:center; flex:1; min-width:0; aspect-ratio:1/1; border:2px solid; border-radius:50%; font-size:var(--font-size-20); font-weight:600; line-height:1.7em; letter-spacing:-.03em; text-align:center;}
.career-path li:not(:last-child):after {content:""; position:absolute; top:50%; right:calc(var(--space-32) / -2 - 2px); width:16px; height:16px; transform:translate(50%, -50%); background:url(/images/sub/welfare-arrow.svg) no-repeat center / contain; pointer-events:none;}
.career-path li:nth-child(1) {color:#80c1de; border-color:#80c1de;}
.career-path li:nth-child(2) {color:#52abd2; border-color:#52abd2;}
.career-path li:nth-child(3) {color:#2494c5; border-color:#2494c5;}
.career-path li:nth-child(4) {color:#0171a3; border-color:#0171a3;}
.career-path li:nth-child(5) {color:#015a80; border-color:#015a80;}
.career-path li:nth-child(6) {color:#00415e; border-color:#00415e;}
.welfare-box {display:flex; align-items:center; gap:var(--space-18); flex:1; min-width:0; padding:var(--space-28); border:1px solid #eee;}
.welfare-box .tit {display:inline-flex; align-items:center; gap:var(--space-12); flex-shrink:0; color:var(--color-sub); font-size:var(--font-size-20); font-weight:600; line-height:1.7em; letter-spacing:-.02em;}
.welfare-box .tit:after {content:""; display:block; width:1px; height:20px; margin-left:var(--space-6); background:#ddd;}
.welfare-box p {margin:0; color:#676767; font-size:var(--font-size-18); font-weight:400; line-height:1.78em; letter-spacing:-.02em;}
.welfare-cards {display:flex; gap:var(--space-16); flex:1; min-width:0; margin:0; padding:0; list-style:none;}
.welfare-cards li {flex:1; min-width:0; padding:var(--space-28); border:1px solid #eee;}
.welfare-cards .icon {display:flex; align-items:center; justify-content:center; width:36px; height:36px;}
.welfare-cards .tit {display: block; margin-top: var(--space-20); color:var(--color-sub); font-size:var(--font-size-20); font-weight:600; line-height:1.7em; letter-spacing:-.02em;}
.welfare-cards p {margin-top:var(--space-8); color:#676767; font-size:var(--font-size-18); font-weight:400; line-height:1.78em; letter-spacing:-.02em;}

/*************************** 고객센터 ***************************/
.btn-pack.round {border-radius: 4px;}
