@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700;800;900&family=Noto+Serif+KR:wght@700;900&display=swap');

/* ABOUT 히어로: 基盤 사훈 패널 */
.hero-principle {
    text-align:center;
    padding:38px 34px 34px;
}

.hero-principle > span {
    display:inline-block;
    color:#ffb25e;
    font-size:12px;
    font-weight:900;
    letter-spacing:3.4px;
    text-transform:uppercase;
    margin-bottom:14px;
}

.hero-principle-mark {
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:58px;
    font-weight:900;
    line-height:1;
    letter-spacing:10px;
    text-indent:10px;
    color:#fff;
    text-shadow:0 4px 26px rgba(232,114,12,.45);
    margin-bottom:16px;
}

.hero-principle strong {
    display:block;
    position:relative;
    font-size:22px;
    font-weight:800;
    letter-spacing:-.6px;
    color:#ffd9b0;
    padding-bottom:18px;
    margin-bottom:18px;
}

.hero-principle strong:after {
    content:'';
    position:absolute;
    left:50%;
    bottom:0;
    width:44px;
    height:2px;
    background:linear-gradient(90deg,transparent,#e8720c,transparent);
    transform:translateX(-50%);
}

.hero-principle p {
    color:#d5c7ba;
    font-size:15px;
    line-height:1.78;
    word-break:keep-all;
}

.hero-principle-values {
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:24px;
}

.hero-principle-values em {
    font-style:normal;
    font-size:15px;
    font-weight:800;
    color:#ffe3c4;
    letter-spacing:-.2px;
    padding:9px 19px;
    border:1px solid rgba(255,178,94,.55);
    border-radius:999px;
    background:rgba(232,114,12,.16);
    text-shadow:0 0 12px rgba(255,196,130,.65);
    box-shadow:0 0 16px rgba(255,178,94,.28), inset 0 0 10px rgba(255,178,94,.1);
}

/* 사훈 칩 3개를 대체한 한 줄 문구 */
.hero-principle-note {
    margin-top:22px;
    padding-top:22px;
    border-top:1px solid rgba(255,255,255,.16);
    text-align:center;
    font-size:15px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:-.3px;
    color:#f0d3b2;
}

/* ABOUT CEO 인사말: 사훈 카드 이동 후 단독 전체폭 배치 */
.ceo-solo .ceo-message-card {
    max-width:1040px;
    margin:0 auto;
}

/* ABOUT CEO Message V2: 격조 있는 인사말 구성 */
.ceo-message-v2 {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.4fr);
    gap:0;
    background:linear-gradient(160deg,#fff 55%,#fffaf3);
    border:1px solid #eadfd4;
    border-radius:22px;
    box-shadow:0 24px 60px rgba(55,38,25,.08);
    overflow:hidden;
}

.ceo-message-v2:before {
    content:'';
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    background:linear-gradient(90deg,#1a1512,#e8720c 45%,#ffb25e);
}

.ceo-msg-side {
    padding:58px 48px 52px 54px;
    border-right:1px solid #f0e6dc;
    background:
        radial-gradient(circle at 12% 92%,rgba(232,114,12,.06),transparent 42%);
}

.ceo-quote-mark {
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:96px;
    font-weight:900;
    line-height:.62;
    color:#f2c49a;
    margin:22px 0 6px;
}

.ceo-msg-side h2 {
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:33px;
    font-weight:900;
    line-height:1.44;
    letter-spacing:-1.2px;
    color:#1c1917;
}

.ceo-msg-side h2 em {
    font-style:normal;
    color:#c25708;
}

.ceo-side-line {
    width:52px;
    height:2px;
    margin:28px 0 20px;
    background:linear-gradient(90deg,#e8720c,transparent);
}

.ceo-side-note {
    font-size:14.5px;
    line-height:1.75;
    color:#8a7a6c;
    font-weight:700;
    letter-spacing:-.2px;
}

.ceo-msg-body {
    padding:58px 54px 52px;
}

.ceo-greeting {
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:21px;
    line-height:1.6;
    letter-spacing:-.6px;
    color:#1c1917;
    font-weight:700;
    padding-bottom:24px;
    margin-bottom:26px;
    border-bottom:1px solid #f0e6dc;
}

.ceo-greeting strong {
    color:#c25708;
    font-weight:900;
}

.ceo-msg-body > p:not(.ceo-greeting) {
    font-size:16px;
    line-height:1.92;
    color:#44403c;
    margin-bottom:18px;
    word-break:keep-all;
}

.ceo-sign-v2 {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:18px;
    margin-top:34px;
    padding-top:26px;
    border-top:1px solid #f0e6dc;
}

.ceo-sign-text {
    text-align:right;
}

.ceo-sign-text span {
    display:block;
    font-size:13px;
    font-weight:800;
    color:#8a7a6c;
    letter-spacing:.2px;
    margin-bottom:5px;
}

.ceo-sign-text strong {
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:25px;
    font-weight:900;
    letter-spacing:1px;
    color:#1c1917;
}

.ceo-seal {
    flex:0 0 auto;
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:19px;
    font-weight:900;
    letter-spacing:1px;
    color:#c25708;
    border:2px solid #d97a2b;
    border-radius:10px;
    background:rgba(232,114,12,.05);
    box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 4px rgba(217,122,43,.35);
    transform:rotate(-4deg);
}

@media(max-width:980px) {
    .ceo-message-v2 {
        grid-template-columns:1fr;
    }

    .ceo-msg-side {
        border-right:0;
        border-bottom:1px solid #f0e6dc;
        padding:44px 30px 38px;
    }

    .ceo-msg-body {
        padding:40px 30px 42px;
    }

    .ceo-msg-side h2 {
        font-size:28px;
    }

    .ceo-msg-side h2 br {
        display:none;
    }

    .ceo-quote-mark {
        font-size:76px;
        margin-top:14px;
    }
}

@media(max-width:640px) {
    .ceo-msg-side {
        padding:36px 22px 32px;
    }

    .ceo-msg-body {
        padding:32px 22px 36px;
    }

    .ceo-msg-side h2 {
        font-size:24px;
    }

    .ceo-greeting {
        font-size:18px;
    }

    .ceo-greeting br {
        display:none;
    }

    .ceo-sign-text strong {
        font-size:21px;
    }
}


* {
    box-sizing:border-box;
    margin:0;
    padding:0;
}

html {
    scroll-behavior:smooth;
}

body {
    font-size:16px;
    -webkit-text-size-adjust:100%;
    font-family:'Noto Sans KR','Malgun Gothic',Arial,sans-serif;
    color:#332b25;
    background:#fff;
    line-height:1.72;
    word-break:keep-all;
}

a {
    text-decoration:none;
    color:inherit;
}

img {
    display:block;
    max-width:100%;
    height:auto;
}

.wrap {
    max-width:1200px;
    margin:0 auto;
    padding:0 24px;
}

.topbar {
    background:#1a1512;
    color:#d7c9bd;
    font-size:13px;
}

.topbar .wrap {
    min-height:40px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.site-header {
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid #eadfd4;
    box-shadow:0 2px 14px rgba(0,0,0,.04);
}

.header-inner {
    min-height:84px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}

.brand {
    font-weight:900;
    font-size:24px;
    letter-spacing:-1px;
    color:#1c1917;
}

.brand span {
    color:#e8720c;
}

.logo small {
    display:block;
    font-size:10px;
    letter-spacing:1.5px;
    color:#78716c;
    font-weight:800;
    text-transform:uppercase;
}

.nav {
    display:flex;
    gap:28px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.nav a {
    font-size:15px;
    font-weight:800;
    color:#57534e;
    padding:8px 0;
    border-bottom:2px solid transparent;
}

.nav a:hover,.nav a.active {
    color:#e8720c;
    border-bottom-color:#e8720c;
}

.hero {
    background:linear-gradient(135deg,#18110d 0%,#402c17 56%,#14100d 100%);
    color:#fff;
    padding:92px 0;
}

.hero h1 {
    font-size:58px;
    line-height:1.16;
    letter-spacing:-3px;
    font-weight:900;
    margin-bottom:24px;
}

.hero h1 span {
    display:block;
}

.hero p {
    font-size:19px;
    color:#ded4ca;
    max-width:900px;
    margin:0 0 38px;
}

.eyebrow {
    display:inline-block;
    font-size:13px;
    font-weight:900;
    letter-spacing:2.6px;
    color:#e8720c;
    text-transform:uppercase;
    margin-bottom:12px;
}

.btn {
    display:inline-block;
    border-radius:5px;
    padding:14px 28px;
    font-weight:800;
    margin:4px 6px;
}

.btn-primary {
    background:#e8720c;
    color:#fff;
    border:1px solid #e8720c;
}

.btn-primary:hover {
    background:#c25708;
}

.btn-light {
    border:1px solid rgba(255,255,255,.45);
    color:#fff;
}

.btn-light:hover {
    background:#fff;
    color:#1c1917;
}

.section {
    padding:68px 0;
}

.section.alt {
    background:#faf7f2;
}

.section-head {
    text-align:center;
    max-width:850px;
    margin:0 auto 38px;
}

.section-head.left {
    text-align:left;
    margin-left:0;
}

.section-head h2 {
    font-size:40px;
    font-weight:900;
    line-height:1.25;
    letter-spacing:-2px;
    color:#1c1917;
    margin-bottom:14px;
}

.section-head p {
    font-size:17px;
    color:#78716c;
}

.sub-hero {
    padding:56px 0;
    background:linear-gradient(135deg,#1a1512,#3a2a1b 60%,#14100d);
    color:#fff;
}

.sub-hero h1 {
    font-size:50px;
    font-weight:900;
    letter-spacing:-2px;
}

.sub-hero .breadcrumb {
    margin-top:10px;
    font-size:16px;
    max-width:820px;
}

.sub-hero .breadcrumb {
    color:#c9bfb4;
}

.grid-2 {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px;
}

.preview-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}

.preview-card,.strength-card,.card,.service-card,.home-project-item,.process-detail-card {
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:10px;
    box-shadow:0 10px 26px rgba(55,38,25,.04);
    transition:.25s;
}

.preview-card {
    padding:26px 24px;
    min-height:188px;
}

.preview-card:hover,.card:hover,.service-card:hover,.strength-card:hover {
    transform:translateY(-5px);
    box-shadow:0 18px 40px rgba(194,87,8,.12);
    border-color:#e8720c;
}

.preview-card .num,.service-num,.step-no {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#fff3e8;
    color:#c25708;
    border:1px solid #f2c49a;
    border-radius:999px;
    font-weight:900;
    font-size:13px;
    width:42px;
    height:28px;
    margin-bottom:14px;
}

.preview-card h3,.strength-card h3,.card h3,.service-card h3,.home-project-item h3,.process-detail-card h3 {
    font-size:21px;
    color:#1c1917;
    margin-bottom:10px;
    letter-spacing:-.7px;
}

.preview-card p,.strength-card p,.card p,.service-card p,.home-project-item p {
    color:#57534e;
    font-size:15px;
}

.strength-grid,.capability-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:22px;
}

.strength-card,.card {
    padding:32px 28px;
}

.strength-card .icon {
    display:inline-block;
    color:#e8720c;
    font-weight:900;
    margin-bottom:10px;
}

.home-project-list {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}

.home-project-item {
    padding:28px;
}

.badge {
    display:inline-block;
    background:#fff3e8;
    color:#c25708;
    border:1px solid #f2c49a;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
    padding:4px 10px;
    margin-bottom:10px;
}

.service-stack {
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
}

.service-card {
    display:grid;
    grid-template-columns:72px 1fr;
    gap:18px;
    padding:30px;
}

.service-card small {
    font-size:14px;
    color:#78716c;
    font-weight:700;
}

.svc-list {
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid #f2ede6;
    list-style:none;
}

.svc-list li {
    position:relative;
    padding-left:16px;
    font-size:14px;
    color:#44403c;
    margin-bottom:8px;
    font-weight:600;
}

.svc-list li:before {
    content:'';
    position:absolute;
    left:0;
    top:10px;
    width:5px;
    height:5px;
    background:#e8720c;
    border-radius:50%;
}

.org-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}

.highlight h3 {
    color:#1c1917;
    margin-top:8px;
}

.muted {
    font-size:14px;
    color:#78716c;
}

.map-frame {
    position:relative;
    border-radius:14px;
    overflow:hidden;
    border:1px solid #eadfd4;
    box-shadow:0 16px 36px rgba(0,0,0,.08);
    background:#eee;
}

.map-frame img {
    width:100%;
    max-height:560px;
    object-fit:cover;
}

.map-link {
    position:absolute;
    right:18px;
    top:18px;
    background:rgba(255,255,255,.95);
    color:#1c1917;
    border:1px solid #eadfd4;
    border-radius:999px;
    padding:10px 16px;
    font-weight:900;
    box-shadow:0 6px 18px rgba(0,0,0,.15);
}

.contact-cards {
    margin:42px 0 10px;
}

.inquiry-form {
    display:grid;
    gap:14px;
}

.form-row-2 {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.form-field label {
    display:block;
    font-weight:800;
    color:#1c1917;
    margin-bottom:6px;
}

.form-field input,.form-field select,.form-field textarea {
    width:100%;
    border:1px solid #dacfc4;
    border-radius:6px;
    padding:12px;
    font:inherit;
}

.inquiry-btn {
    width:100%;
    text-align:center;
}

.table-container {
    overflow-x:auto;
    border:1px solid #eadfd4;
    border-radius:10px;
    background:#fff;
}

.project-table {
    width:100%;
    border-collapse:collapse;
}

.project-table th,.project-table td {
    padding:18px 20px;
    border-bottom:1px solid #eadfd4;
    text-align:left;
    font-size:15px;
}

.project-table th {
    background:#faf7f2;
    color:#1c1917;
    font-weight:900;
}

.project-table tr:last-child td {
    border-bottom:0;
}

.process-detail-grid {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:18px;
}

.process-detail-card {
    padding:26px;
}

.process-detail-card ul {
    list-style:none;
    margin-top:12px;
}

.process-detail-card li {
    font-size:14px;
    color:#57534e;
    border-top:1px solid #f2ede6;
    padding:8px 0;
}

.process-summary {
    text-align:center;
    margin-top:28px;
    padding:24px;
    border:1px solid #eadfd4;
    border-radius:10px;
    background:#fff;
    color:#57534e;
}

.process-summary strong {
    color:#1c1917;
}

.footer {
    background:#14100d;
    color:#c9bfb4;
    padding:52px 0 20px;
}

.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:36px;
}

.footer h4 {
    color:#fff;
    font-size:18px;
    margin-bottom:14px;
}

.footer-contact-list {
    list-style:none;
}

.copyright {
    border-top:1px solid rgba(255,255,255,.12);
    margin-top:28px;
    padding-top:18px;
    font-size:13px;
    color:#8f8781;
}

@media(max-width:980px) {
    .header-inner,.topbar .wrap {
        display:block;
        padding-top:14px;
        padding-bottom:14px;
    }

    .nav {
        justify-content:flex-start;
        gap:16px;
        margin-top:12px;
    }

    .hero h1 {
        font-size:42px;
    }

    .preview-grid {
        grid-template-columns:repeat(2,1fr);
    }

    .strength-grid,.capability-grid,.org-grid,.home-project-list {
        grid-template-columns:repeat(2,1fr);
    }

    .process-detail-grid {
        grid-template-columns:repeat(2,1fr);
    }

    .grid-2 {
        grid-template-columns:1fr;
    }

    .footer-grid {
        grid-template-columns:1fr;
    }

}

@media(max-width:640px) {
    .wrap {
        padding:0 18px;
    }

    .hero {
        padding:64px 0;
    }

    .hero h1 {
        font-size:34px;
        letter-spacing:-1.4px;
    }

    .section-head h2,.sub-hero h1 {
        font-size:32px;
    }

    .preview-grid,.strength-grid,.capability-grid,.org-grid,.home-project-list,.process-detail-grid {
        grid-template-columns:1fr;
    }

    .service-card {
        grid-template-columns:1fr;
    }

    .form-row-2 {
        grid-template-columns:1fr;
    }

    .map-link {
        position:static;
        display:block;
        border-radius:0;
        text-align:center;
    }

    .topbar {
        display:none;
    }

}

/* COMPANY V5: Organization & Business Scope refinement */
.org-section .section-head p {
    max-width:780px;
    margin:0 auto;
}

.org-chart {
    position:relative;
}

.org-chief {
    width:260px;
    margin:0 auto;
    text-align:center;
    background:linear-gradient(135deg,#1a1512,#3a2a1b);
    color:#fff;
    border-radius:14px;
    padding:20px 24px;
    box-shadow:0 18px 38px rgba(34,24,18,.16);
}

.org-chief span {
    display:block;
    font-size:22px;
    font-weight:900;
    letter-spacing:-.8px;
}

.org-chief strong {
    display:block;
    margin-top:4px;
    font-size:12px;
    letter-spacing:1.5px;
    color:#ffbf7a;
    text-transform:uppercase;
}

.org-line {
    width:1px;
    height:34px;
    background:#d9c7b6;
    margin:0 auto;
    position:relative;
}

.org-line:after {
    content:'';
    position:absolute;
    left:50%;
    bottom:0;
    width:min(920px,82vw);
    height:1px;
    background:#d9c7b6;
    transform:translateX(-50%);
}

.org-grid-5 {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:16px;
    margin-top:28px;
}

.org-card {
    position:relative;
    padding:26px 20px 24px;
    min-height:390px;
    border-top:4px solid #e8720c;
}

.org-card:before {
    content:'';
    position:absolute;
    top:-29px;
    left:50%;
    width:1px;
    height:28px;
    background:#d9c7b6;
}

.org-card .org-no {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:28px;
    border-radius:999px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:13px;
    font-weight:900;
    margin-bottom:14px;
}

.org-card h3 {
    font-size:21px;
    margin-bottom:4px;
}

.org-card small {
    display:block;
    color:#8a7a6c;
    font-size:12px;
    font-weight:800;
    line-height:1.35;
    min-height:34px;
    text-transform:uppercase;
    letter-spacing:.4px;
}

.org-card .svc-list {
    margin-top:18px;
}

.org-card .svc-list li {
    font-size:13.5px;
    line-height:1.55;
    padding-left:15px;
    margin-bottom:9px;
}

.service-summary-section {
    background:#fff;
}

.business-summary-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.business-summary-card {
    display:block;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:12px;
    padding:26px 24px;
    box-shadow:0 10px 26px rgba(55,38,25,.04);
    transition:.25s;
    min-height:166px;
}

.business-summary-card:hover {
    transform:translateY(-5px);
    border-color:#e8720c;
    box-shadow:0 18px 40px rgba(194,87,8,.12);
}

.business-summary-card span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:28px;
    border-radius:999px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:13px;
    font-weight:900;
    margin-bottom:14px;
}

.business-summary-card h3 {
    font-size:20px;
    color:#1c1917;
    letter-spacing:-.7px;
    margin-bottom:8px;
}

.business-summary-card p {
    font-size:14px;
    color:#57534e;
}

.preview-actions {
    text-align:center;
    margin-top:32px;
}

@media(max-width:1180px) {
    .org-grid-5 {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .org-line:after {
        display:none;
    }

    .org-card:before {
        display:none;
    }

    .org-card {
        min-height:0;
    }

    .business-summary-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

}

@media(max-width:760px) {
    .org-chief {
        width:100%;
    }

    .org-line {
        display:none;
    }

    .org-grid-5,.business-summary-grid {
        grid-template-columns:1fr;
    }

    .org-card {
        padding:26px 22px;
    }

    .org-card small {
        min-height:0;
    }

    .business-summary-card {
        min-height:0;
    }

}

/* COMPANY V6 Renewal */
.company-hero {
    position:relative;
    overflow:hidden;
    background:radial-gradient(circle at 78% 18%,rgba(232,114,12,.24),transparent 30%),linear-gradient(135deg,#17100c 0%,#352315 58%,#100c09 100%);
    color:#fff;
    padding:94px 0 82px;
}

.company-hero:before {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(0,0,0,.16),transparent 48%),repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 1px,transparent 1px 16px);
    pointer-events:none;
}

.company-hero-inner {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);
    gap:48px;
    align-items:center;
}

.company-hero-copy h1 {
    font-size:58px;
    line-height:1.12;
    letter-spacing:-3.2px;
    font-weight:900;
    margin:6px 0 24px;
}

.company-hero-copy p {
    max-width:760px;
    font-size:19px;
    line-height:1.75;
    color:#ded4ca;
}

.company-hero-panel {
    border:1px solid rgba(255,255,255,.18);
    border-radius:22px;
    padding:36px 34px;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(12px);
    box-shadow:0 26px 70px rgba(0,0,0,.22);
}

.company-hero-panel span {
    display:inline-block;
    color:#ffb25e;
    font-size:13px;
    font-weight:900;
    letter-spacing:2.2px;
    margin-bottom:18px;
}

.company-hero-panel strong {
    display:block;
    font-size:30px;
    line-height:1.22;
    letter-spacing:-1.4px;
    margin-bottom:18px;
}

.company-hero-panel p {
    color:#d5c7ba;
    font-size:15px;
}

.ceo-grid {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);
    gap:34px;
    align-items:stretch;
}

.ceo-message-card,.company-principle-card,.leader-card,.division-card,.license-card,.why-card {
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:18px;
    box-shadow:0 16px 42px rgba(55,38,25,.06);
}

.ceo-message-card {
    padding:44px;
}

.ceo-message-card h2 {
    font-size:38px;
    line-height:1.24;
    letter-spacing:-1.8px;
    color:#1c1917;
    margin-bottom:22px;
}

.ceo-message-card p {
    color:#57534e;
    margin-bottom:14px;
}

.ceo-sign {
    margin-top:28px!important;
    padding-top:22px;
    border-top:1px solid #f0e6dc;
    color:#1c1917!important;
    font-weight:800;
}

.company-principle-card {
    padding:44px;
    background:linear-gradient(180deg,#fff,#fff8f0);
}

.principle-mark {
    width:96px;
    height:96px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:linear-gradient(135deg,#1a1512,#e8720c);
    color:#fff;
    font-size:30px;
    font-weight:900;
    margin-bottom:24px;
}

.company-principle-card h3 {
    font-size:26px;
    letter-spacing:-1px;
    margin-bottom:12px;
    color:#1c1917;
}

.company-principle-card p {
    color:#57534e;
}

.principle-list {
    display:grid;
    gap:10px;
    margin-top:26px;
}

.principle-list span {
    display:block;
    background:#fff;
    border:1px solid #f0dcc8;
    border-radius:999px;
    padding:10px 14px;
    color:#5b4533;
    font-weight:900;
    text-align:center;
}

.leader-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px;
}

.leader-card {
    padding:34px;
}

.leader-top {
    display:flex;
    gap:20px;
    align-items:center;
    margin-bottom:20px;
}

.leader-avatar {
    width:74px;
    height:74px;
    border-radius:18px;
    background:linear-gradient(135deg,#3a2a1b,#e8720c);
    color:#fff;
    font-size:28px;
    font-weight:900;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
}

.leader-top h3 {
    font-size:26px;
    color:#1c1917;
    letter-spacing:-1px;
    margin-bottom:2px;
}

.leader-top p {
    font-size:13px;
    color:#c25708;
    font-weight:900;
    letter-spacing:1.2px;
    text-transform:uppercase;
}

.leader-tags {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:18px;
}

.leader-tags span {
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    border-radius:999px;
    padding:5px 10px;
    font-size:12px;
    font-weight:900;
}

.org-section-v6 {
    background:#fff;
}

.org-chart-v6 {
    position:relative;
}

.org-chief-v6 {
    width:280px;
    margin:0 auto;
    text-align:center;
    background:linear-gradient(135deg,#17100c,#3a2a1b);
    color:#fff;
    border-radius:18px;
    padding:22px 28px;
    box-shadow:0 20px 48px rgba(34,24,18,.18);
}

.org-chief-v6 span {
    display:block;
    font-size:24px;
    font-weight:900;
    letter-spacing:-1px;
}

.org-chief-v6 strong {
    display:block;
    margin-top:5px;
    font-size:12px;
    letter-spacing:1.6px;
    color:#ffb25e;
    text-transform:uppercase;
}

.org-connector {
    height:44px;
    width:1px;
    background:#d8c6b5;
    margin:0 auto;
    position:relative;
}

.org-connector:after {
    content:'';
    position:absolute;
    left:50%;
    bottom:0;
    width:min(980px,84vw);
    height:1px;
    background:#d8c6b5;
    transform:translateX(-50%);
}

.org-division-grid {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:16px;
    margin-top:28px;
}

.division-card {
    position:relative;
    padding:28px 20px 24px;
    border-top:4px solid #e8720c;
    min-height:354px;
}

.division-card:before {
    content:'';
    position:absolute;
    top:-29px;
    left:50%;
    width:1px;
    height:28px;
    background:#d8c6b5;
}

.division-no {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:28px;
    border-radius:999px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:13px;
    font-weight:900;
    margin-bottom:14px;
}

.division-card h3 {
    font-size:21px;
    letter-spacing:-.8px;
    color:#1c1917;
    margin-bottom:4px;
}

.division-card small {
    display:block;
    color:#8a7a6c;
    font-size:12px;
    font-weight:900;
    line-height:1.35;
    min-height:34px;
    text-transform:uppercase;
    letter-spacing:.35px;
}

.division-card ul {
    list-style:none;
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid #f2ede6;
}

.division-card li {
    position:relative;
    padding-left:15px;
    font-size:13.5px;
    color:#44403c;
    line-height:1.55;
    margin-bottom:9px;
    font-weight:700;
}

.division-card li:before {
    content:'';
    position:absolute;
    left:0;
    top:9px;
    width:5px;
    height:5px;
    border-radius:50%;
    background:#e8720c;
}

.license-grid {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:14px;
}

.license-card {
    padding:26px 18px;
    text-align:center;
    min-height:176px;
}

.license-card span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:58px;
    height:34px;
    border-radius:999px;
    background:#1c1917;
    color:#ffb25e;
    font-size:12px;
    font-weight:900;
    letter-spacing:.6px;
    margin-bottom:16px;
}

.license-card h3 {
    font-size:18px;
    color:#1c1917;
    letter-spacing:-.7px;
    margin-bottom:8px;
}

.license-card p {
    font-size:13px;
    color:#57534e;
    font-weight:700;
}

.why-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:22px;
}

.why-card {
    padding:32px 28px;
}

.why-card span {
    display:inline-block;
    color:#e8720c;
    font-weight:900;
    letter-spacing:1.4px;
    margin-bottom:12px;
}

.why-card h3 {
    font-size:22px;
    color:#1c1917;
    letter-spacing:-.9px;
    margin-bottom:10px;
}

.why-card p {
    font-size:15px;
    color:#57534e;
}

.timeline {
    position:relative;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:16px;
}

.timeline:before {
    content:'';
    position:absolute;
    left:8%;
    right:8%;
    top:36px;
    height:1px;
    background:#d8c6b5;
}

.timeline-item {
    position:relative;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:16px;
    padding:26px 20px;
    box-shadow:0 12px 32px rgba(55,38,25,.05);
    min-height:145px;
}

.timeline-item:before {
    content:'';
    position:absolute;
    top:30px;
    left:20px;
    width:13px;
    height:13px;
    background:#e8720c;
    border:4px solid #fff3e8;
    border-radius:50%;
    box-shadow:0 0 0 1px #f2c49a;
}

.timeline-item strong {
    display:block;
    color:#c25708;
    font-size:26px;
    line-height:1;
    margin-left:26px;
    margin-bottom:20px;
}

.timeline-item span {
    display:block;
    color:#57534e;
    font-size:14px;
    font-weight:700;
    line-height:1.55;
}

.leadership-section .profile-details li {
    font-size:14.5px;
}

@media(max-width:1180px) {
    .company-hero-inner,.ceo-grid {
        grid-template-columns:1fr;
    }

    .org-division-grid {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .org-connector:after,.division-card:before {
        display:none;
    }

    .division-card {
        min-height:0;
    }

    .license-grid {
        grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .timeline {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .timeline:before {
        display:none;
    }

    .why-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

}

@media(max-width:760px) {
    .company-hero {
        padding:68px 0;
    }

    .company-hero-copy h1 {
        font-size:38px;
        letter-spacing:-1.8px;
    }

    .company-hero-panel strong {
        font-size:24px;
    }

    .ceo-message-card,.company-principle-card,.leader-card {
        padding:28px 22px;
    }

    .ceo-message-card h2 {
        font-size:29px;
    }

    .leader-grid,.org-division-grid,.license-grid,.why-grid,.timeline {
        grid-template-columns:1fr;
    }

    .org-chief-v6 {
        width:100%;
    }

    .org-connector {
        display:none;
    }

    .division-card small {
        min-height:0;
    }

    .principle-mark {
        width:78px;
        height:78px;
    }

    .leader-top {
        align-items:flex-start;
    }

    .leader-avatar {
        width:62px;
        height:62px;
        border-radius:16px;
    }

    .timeline-item {
        min-height:0;
    }

}

/* COMPANY V7 - support departments between CEO and technical divisions */
.org-chart-v7 {
    padding-top:2px;
}

.org-support-row {
    position:relative;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    max-width:860px;
    margin:34px auto 0;
}

.org-support-row:before {
    content:'';
    position:absolute;
    left:50%;
    top:-34px;
    width:1px;
    height:34px;
    background:#d8c6b5;
}

.org-support-row:after {
    content:'';
    position:absolute;
    left:16%;
    right:16%;
    top:0;
    height:1px;
    background:#d8c6b5;
}

.support-card {
    position:relative;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:16px;
    padding:24px 26px;
    text-align:center;
    box-shadow:0 14px 36px rgba(55,38,25,.06);
    min-height:158px;
}

.support-card:before {
    content:'';
    position:absolute;
    top:-34px;
    left:50%;
    width:1px;
    height:34px;
    background:#d8c6b5;
}

.support-card span {
    display:inline-block;
    color:#c25708;
    font-size:12px;
    font-weight:900;
    letter-spacing:1.3px;
    text-transform:uppercase;
    margin-bottom:8px;
}

.support-card h3 {
    font-size:23px;
    color:#1c1917;
    letter-spacing:-.9px;
    margin-bottom:8px;
}

.support-card p {
    font-size:14px;
    line-height:1.62;
    color:#57534e;
    font-weight:600;
}

.admin-card {
    border-top:4px solid #e8720c;
}

.quality-card {
    border-top:4px solid #e8720c;
}

.org-connector-v7 {
    height:50px;
}

.org-connector-v7:before {
    content:'';
    position:absolute;
    left:50%;
    top:0;
    width:1px;
    height:50px;
    background:#d8c6b5;
    transform:translateX(-50%);
}

@media(max-width:1180px) {
    .org-support-row:after {
        display:none;
    }

    .org-support-row {
        max-width:760px;
    }

    .support-card:before {
        display:none;
    }

    .org-support-row:before {
        height:28px;
        top:-28px;
    }

}

@media(max-width:760px) {
    .org-support-row {
        grid-template-columns:1fr;
        margin-top:26px;
    }

    .org-support-row:before,.org-connector-v7:before {
        display:none;
    }

    .support-card {
        min-height:0;
        padding:22px;
    }

    .org-connector-v7 {
        display:none;
    }

}

/* HOME: wide one-line section description on desktop */
.section-head-wide {
    max-width:1120px;
}

.section-head-wide p {
    white-space:nowrap;
}

@media (max-width:980px) {
    .section-head-wide {
        max-width:850px;
    }

    .section-head-wide p {
        white-space:normal;
    }
}

/* FIX PASS: font-size smoothing & missing styles */
.logo small {
    font-size:11px;
    letter-spacing:1.2px;
}

/* about.html 공동대표 약력: 스타일 미정의로 기본 disc 마커가 카드 밖으로 밀려나던 문제 */
.profile-details {
    list-style:none;
    border-top:1px solid #f2ede6;
    padding-top:16px;
}

.profile-details li {
    position:relative;
    padding-left:16px;
    color:#44403c;
    font-weight:600;
    line-height:1.6;
    margin-bottom:9px;
}

.profile-details li:before {
    content:'';
    position:absolute;
    left:0;
    top:10px;
    width:5px;
    height:5px;
    border-radius:50%;
    background:#e8720c;
}

/* 사업구분 배지 색상 체계 (조사탐사·지반설계·지하수사업·계측안전점검·측량) */
.badge-survey {
    background:#fff3e8;
    border-color:#f2c49a;
    color:#c25708;
}

.badge-design {
    background:#eef4ff;
    border-color:#c4d7f7;
    color:#1d4ed8;
}

.badge-water {
    background:#ecfeff;
    border-color:#a5e3f0;
    color:#0e7490;
}

.badge-safety {
    background:#eefaf2;
    border-color:#bfe8cd;
    color:#15803d;
}

.badge-measure {
    background:#faf5ff;
    border-color:#e3d0f5;
    color:#7e22ce;
}

/* HOME 주요 수행사례: 세로 나열 (사업명 한 줄 표기) */
.home-project-list-5 {
    grid-template-columns:1fr;
    gap:12px;
    max-width:920px;
    margin:0 auto;
}

.home-project-list-5 .home-project-item {
    display:flex;
    align-items:center;
    gap:16px;
    padding:18px 26px;
}

.home-project-list-5 .home-project-item .badge {
    flex:0 0 auto;
    margin-bottom:0;
    min-width:96px;
    text-align:center;
}

.home-project-list-5 .home-project-item h3 {
    font-size:18px;
    letter-spacing:-.6px;
    line-height:1.45;
    margin-bottom:0;
}

@media(max-width:640px) {
    .home-project-list-5 .home-project-item {
        flex-direction:column;
        align-items:flex-start;
        gap:10px;
        padding:16px 18px;
    }

    .home-project-list-5 .home-project-item h3 {
        font-size:16px;
    }
}

/* PROJECTS: 분야별 대표 실적 외 다수 수행 안내 */
.project-note {
    margin:-18px 0 16px;
    padding:14px 20px;
    border:1px dashed #dcc9b4;
    border-radius:10px;
    background:#fffaf4;
    text-align:center;
    font-size:15px;
    color:#6b5c4d;
    font-weight:700;
}

.project-note strong {
    color:#c25708;
}

/* 폼 라벨이 본문(16px)과 같은 크기로 무거워 보이던 부분 */
.form-field label {
    font-size:14px;
}

.form-field input::placeholder,.form-field textarea::placeholder {
    color:#a8a29e;
}

/* 푸터 본문이 상단 본문과 동일한 16px로 커 보이던 부분 */
.footer-grid p {
    font-size:14.5px;
    line-height:1.7;
}

.footer-contact-list li {
    font-size:14.5px;
    margin-bottom:7px;
}

.map-link:hover {
    border-color:#e8720c;
    color:#c25708;
}

.ceo-message-card p {
    font-size:16px;
    line-height:1.8;
}

@media(max-width:760px) {
    .section-head h2 {
        letter-spacing:-1.2px;
    }
}

/* ABOUT 정리 패스: 문단 삭제 후 여백·간격 최적화 */
.company-hero {
    padding:70px 0 62px;
}

.company-hero-inner {
    gap:56px;
}

.company-hero-copy h1 {
    margin-bottom:0;
}

.hero-principle {
    padding:34px 32px 32px;
}

.hero-principle-mark {
    margin-bottom:14px;
}

.hero-principle strong {
    padding-bottom:0;
    margin-bottom:6px;
}

.hero-principle strong:after {
    display:none;
}

.hero-principle-values {
    margin-top:22px;
    padding-top:22px;
    border-top:1px solid rgba(255,255,255,.14);
}

.ceo-section {
    padding:58px 0 54px;
}

.leadership-section {
    padding:56px 0;
}

.leadership-section .section-head {
    margin-bottom:28px;
}

/* 공동대표 카드: 간결·산뜻하게 */
.leader-card {
    padding:30px 32px 26px;
    border-top:4px solid #e8720c;
}

.leader-top {
    margin-bottom:18px;
    padding-bottom:18px;
    border-bottom:1px solid #f2ede6;
}

.leader-avatar {
    width:64px;
    height:64px;
    font-size:25px;
    border-radius:16px;
}

.leader-top h3 {
    font-size:24px;
}

.leader-card .profile-details {
    border-top:0;
    padding-top:0;
}

.org-section-v6 {
    padding:56px 0;
}

.org-section-v6 .section-head {
    margin-bottom:30px;
}

@media(max-width:760px) {
    .company-hero {
        padding:54px 0 48px;
    }

    .company-hero-inner {
        gap:32px;
    }

    .ceo-section,.leadership-section,.org-section-v6 {
        padding:44px 0;
    }
}

/* ABOUT 등록면허: 2그룹 체크리스트 구성 */
.license-section {
    padding:56px 0;
}

.license-section .section-head {
    margin-bottom:30px;
}

.license-simple {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    max-width:1040px;
    margin:0 auto;
}

.license-group {
    background:#fff;
    border:1px solid #eadfd4;
    border-top:4px solid #e8720c;
    border-radius:16px;
    padding:30px 32px 26px;
    box-shadow:0 14px 36px rgba(55,38,25,.05);
}

.license-group h3 {
    display:flex;
    align-items:center;
    gap:10px;
    font-size:20px;
    letter-spacing:-.7px;
    color:#1c1917;
    padding-bottom:16px;
    margin-bottom:18px;
    border-bottom:1px solid #f2ede6;
}

.license-group h3 span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:28px;
    border-radius:999px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:13px;
    font-weight:900;
}

.license-list {
    list-style:none;
}

.license-list li {
    position:relative;
    padding:11px 0 11px 34px;
    font-size:16px;
    font-weight:700;
    color:#44403c;
    letter-spacing:-.3px;
    border-bottom:1px dashed #f0e6dc;
}

.license-list li:last-child {
    border-bottom:0;
    padding-bottom:4px;
}

.license-list li:before {
    content:'✓';
    position:absolute;
    left:0;
    top:50%;
    transform:translateY(-50%);
    width:22px;
    height:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:12px;
    font-weight:900;
}

.license-list li:last-child:before {
    top:calc(50% - 3.5px);
}

@media(max-width:760px) {
    .license-simple {
        grid-template-columns:1fr;
        gap:16px;
    }

    .license-group {
        padding:24px 22px 20px;
    }

    .license-list li {
        font-size:15px;
    }
}

/* ABOUT CEO 본문 양쪽맞춤 */
.ceo-msg-body > p:not(.ceo-greeting) {
    text-align:justify;
}

/* ABOUT 조직도: 로마숫자 배지 + 부서명 가로 정렬 */
.division-head {
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:16px;
    padding-bottom:14px;
    border-bottom:1px solid #f2ede6;
}

.division-head .division-no {
    flex:0 0 auto;
    width:36px;
    height:36px;
    margin-bottom:0;
    border-radius:10px;
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:17px;
    font-weight:900;
    line-height:1;
}

.division-title {
    min-width:0;
}

.division-title h3 {
    font-size:19px;
    letter-spacing:-.8px;
    margin-bottom:2px;
    line-height:1.2;
    white-space:nowrap;
}

.division-title small {
    display:block;
    min-height:0;
    font-size:10.5px;
    line-height:1.3;
    letter-spacing:.3px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.division-card .division-head + ul {
    margin-top:0;
    padding-top:0;
    border-top:0;
}

@media(max-width:1180px) {
    .division-title h3,.division-title small {
        white-space:normal;
    }
}

/* ABOUT 성장 로드맵: 세로 타임라인 (최신 연도부터 하강) */
.timeline-v {
    max-width:760px;
    margin:0 auto;
}

.tl-row {
    display:flex;
    gap:0;
}

.tl-year {
    flex:0 0 108px;
    text-align:right;
    padding-right:28px;
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:25px;
    font-weight:900;
    line-height:1.1;
    color:#c25708;
}

.tl-year em {
    display:block;
    font-style:normal;
    font-family:'Noto Sans KR',sans-serif;
    font-size:10px;
    font-weight:900;
    letter-spacing:2px;
    color:#e8720c;
    margin-top:4px;
}

.tl-body {
    position:relative;
    flex:1;
    padding:0 0 34px 32px;
}

.tl-body:before {
    content:'';
    position:absolute;
    left:-6.5px;
    top:7px;
    width:13px;
    height:13px;
    background:#e8720c;
    border:4px solid #fff3e8;
    border-radius:50%;
    box-shadow:0 0 0 1px #f2c49a;
    z-index:1;
}

.tl-body:after {
    content:'';
    position:absolute;
    left:0;
    top:20px;
    bottom:0;
    width:1px;
    background:#e5d6c5;
}

.tl-row:first-child .tl-body:before {
    box-shadow:0 0 0 1px #f2c49a, 0 0 14px rgba(232,114,12,.5);
}

.tl-row:last-child .tl-body {
    padding-bottom:6px;
}

.tl-row:last-child .tl-body:after {
    display:none;
}

.tl-body span {
    display:block;
    padding-top:2px;
    font-size:16.5px;
    font-weight:700;
    line-height:1.65;
    color:#44403c;
    letter-spacing:-.3px;
    word-break:keep-all;
}

.history-section {
    padding:56px 0 62px;
}

.history-section .section-head {
    margin-bottom:34px;
}

/* 조직도: 영어표현 삭제 후 정렬 보정 */
.division-title h3 {
    margin-bottom:0;
}

.support-card h3 {
    margin-top:2px;
}

.org-chief-v6 span {
    margin:2px 0;
}

@media(max-width:640px) {
    .tl-year {
        flex:0 0 82px;
        padding-right:20px;
        font-size:21px;
    }

    .tl-body {
        padding-left:24px;
        padding-bottom:28px;
    }

    .tl-body span {
        font-size:15px;
    }
}

/* ABOUT 조직도 다듬기: 대표이사 밝은 중후 톤 + 부서 카드 여백 축소 */
.org-chief-v6 {
    background:linear-gradient(135deg,#6b4a2c 0%,#9c6b38 55%,#54381f 100%);
    border:1px solid rgba(255,255,255,.16);
    box-shadow:0 18px 42px rgba(107,74,44,.32), inset 0 1px 0 rgba(255,255,255,.22);
    padding:18px 28px;
}

.org-chief-v6 span {
    font-size:23px;
    letter-spacing:2px;
    text-shadow:0 1px 6px rgba(0,0,0,.25);
}

.support-card {
    min-height:0;
    padding:20px 24px 18px;
}

.support-card h3 {
    font-size:21px;
    margin-bottom:5px;
}

.support-card p {
    font-size:13.5px;
}

.division-card {
    min-height:0;
    padding:20px 18px 16px;
}

.division-head {
    margin-bottom:12px;
    padding-bottom:11px;
}

.division-card li {
    margin-bottom:7px;
    font-size:13px;
    line-height:1.5;
}

.division-card li:last-child {
    margin-bottom:0;
}

/* ABOUT 공동대표: 이니셜 아바타 원형 처리 */
.leader-avatar {
    border-radius:50%;
}

/* ABOUT 조직도 대표이사: 바탕색 제거, 이중 테두리 액자형 */
.org-chief-v6 {
    background:#fff;
    border:2px solid #8a5f39;
    box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 4px rgba(138,95,57,.5), 0 12px 30px rgba(74,52,32,.1);
    padding:20px 28px;
}

.org-chief-v6 span {
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    color:#2b2018;
    font-size:24px;
    font-weight:900;
    letter-spacing:6px;
    text-indent:6px;
    text-shadow:none;
}

/* ABOUT 조직도 대표이사: 글꼴을 부서 카드(고딕)와 통일 */
.org-chief-v6 span {
    font-family:'Noto Sans KR','Malgun Gothic',Arial,sans-serif;
    font-size:22px;
    font-weight:900;
    letter-spacing:-.8px;
    text-indent:0;
}

/* ABOUT CEO Message: 여백 축소 + 한지 질감 배경 */
.ceo-section {
    padding:50px 0 48px;
}

.ceo-message-v2 {
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='hanji'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.52 0 0 0 0 0.42 0 0 0 0 0.29 0 0 0 0.055 0'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23hanji)'/%3E%3C/svg%3E"),
        radial-gradient(circle at 18% 12%,rgba(214,182,138,.14),transparent 48%),
        radial-gradient(circle at 86% 84%,rgba(196,158,110,.12),transparent 44%),
        linear-gradient(160deg,#fdf9f0 45%,#f7efdf);
    border-color:#e3d3bd;
}

.ceo-msg-side {
    padding:40px 38px 36px 42px;
    border-right-color:#e9dac2;
    background:none;
}

.ceo-quote-mark {
    font-size:70px;
    margin:14px 0 2px;
}

.ceo-msg-side h2 {
    font-size:30px;
}

.ceo-side-line {
    margin:20px 0 14px;
}

.ceo-msg-body {
    padding:40px 42px 36px;
}

.ceo-greeting {
    font-size:20px;
    padding-bottom:18px;
    margin-bottom:20px;
    border-bottom-color:#e9dac2;
}

.ceo-msg-body > p:not(.ceo-greeting) {
    margin-bottom:14px;
    line-height:1.85;
}

.ceo-sign-v2 {
    margin-top:24px;
    padding-top:20px;
    border-top-color:#e9dac2;
}

@media(max-width:980px) {
    .ceo-msg-side {
        padding:34px 26px 28px;
        border-bottom-color:#e9dac2;
    }

    .ceo-msg-body {
        padding:32px 26px 32px;
    }
}

@media(max-width:640px) {
    .ceo-msg-side {
        padding:28px 20px 24px;
    }

    .ceo-msg-body {
        padding:26px 20px 28px;
    }

    .ceo-msg-side h2 {
        font-size:24px;
    }

    .ceo-quote-mark {
        font-size:56px;
    }
}

/* ============================================================
   BUSINESS: 분야별 대표 이미지 2장 + 관련 실적 링크
   (images/business/번호-1.jpg, 번호-2.jpg 파일을 실제 사진으로 교체)
   ============================================================ */
.svc-photos {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-top:20px;
}

.svc-photos img {
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:10px;
    border:1px solid #eadfd4;
    box-shadow:0 8px 22px rgba(55,38,25,.06);
}

.svc-more {
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:16px;
    font-size:14px;
    font-weight:800;
    letter-spacing:-.2px;
    color:#c25708;
    padding:9px 18px;
    border:1px solid #f2c49a;
    border-radius:999px;
    background:#fff3e8;
    transition:background .18s,color .18s,border-color .18s;
}

.svc-more:hover {
    background:#e8720c;
    border-color:#e8720c;
    color:#fff;
}

@media(max-width:560px) {
    .svc-photos {
        grid-template-columns:1fr;
    }
}

/* PROJECTS: 분류 앵커 이동 시 고정 헤더 가림 방지 + 도착 행 하이라이트 */
.project-table tr[id] {
    scroll-margin-top:160px;
}

.project-table tr:target td {
    background:#fff7ee;
}

/* ============================================================
   GALLERY: 분야별 대표사진 3장 (images/gallery/번호-1~3.jpg 교체)
   ============================================================ */
.gal-jump {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:44px;
}

.gal-jump a {
    font-size:13.5px;
    font-weight:800;
    letter-spacing:-.2px;
    color:#57534e;
    padding:8px 16px;
    border:1px solid #eadfd4;
    border-radius:999px;
    background:#fff;
    transition:background .18s,color .18s,border-color .18s;
}

.gal-jump a:hover {
    background:#fff3e8;
    border-color:#f2c49a;
    color:#c25708;
}

.gal-block {
    margin-bottom:58px;
    scroll-margin-top:150px;
}

.gal-block:last-child {
    margin-bottom:8px;
}

.gal-head {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    padding-bottom:14px;
    margin-bottom:20px;
    border-bottom:1px solid #eadfd4;
}

.gal-head .badge {
    margin-bottom:0;
}

.gal-head h2 {
    font-size:24px;
    font-weight:900;
    letter-spacing:-.9px;
    color:#1c1917;
}

.gal-head-links {
    margin-left:auto;
    display:flex;
    gap:14px;
}

.gal-head-links a {
    font-size:13.5px;
    font-weight:800;
    color:#8a7a6c;
    transition:color .18s;
}

.gal-head-links a:hover {
    color:#c25708;
}

.gal-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.gal-grid figure {
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 10px 26px rgba(55,38,25,.05);
    transition:transform .18s,box-shadow .18s;
}

.gal-grid figure:hover {
    transform:translateY(-3px);
    box-shadow:0 16px 34px rgba(55,38,25,.1);
}

.gal-grid img {
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}

.gal-grid figcaption {
    padding:12px 16px;
    font-size:14px;
    font-weight:700;
    letter-spacing:-.3px;
    color:#44403c;
    border-top:1px solid #f2ede6;
}

@media(max-width:900px) {
    .gal-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .gal-head-links {
        margin-left:0;
        width:100%;
    }
}

@media(max-width:560px) {
    .gal-grid {
        grid-template-columns:1fr;
    }

    .gal-head h2 {
        font-size:20px;
    }
}

/* ============================================================
   수정: BUSINESS 이미지 3장 구성 + 실적 링크 라운드 사각형
   ============================================================ */
.svc-photos {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}

.svc-more {
    border-radius:8px;
}

@media(max-width:560px) {
    .svc-photos {
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:8px;
    }

    .svc-photos img {
        border-radius:7px;
    }
}

/* ============================================================
   GALLERY: 7개 분야 고유 색상 배지 (라운드 사각형)
   01 조사 · 02 설계 · 03 지하안전 · 04 지하수 · 05 점검 · 06 계측 · 07 측량
   ============================================================ */
.fld-01 {
    background:#fff3e8;
    border-color:#f2c49a;
    color:#c25708;
}

.fld-02 {
    background:#eef4ff;
    border-color:#c4d7f7;
    color:#1d4ed8;
}

.fld-03 {
    background:#fff1f2;
    border-color:#fbc4cf;
    color:#be123c;
}

.fld-04 {
    background:#ecfeff;
    border-color:#a5e3f0;
    color:#0e7490;
}

.fld-05 {
    background:#eefaf2;
    border-color:#bfe8cd;
    color:#15803d;
}

.fld-06 {
    background:#f0fdfa;
    border-color:#99e0d5;
    color:#0f766e;
}

.fld-07 {
    background:#faf5ff;
    border-color:#e3d0f5;
    color:#7e22ce;
}

.gal-head .badge {
    border-radius:8px;
    font-size:13px;
    padding:5px 12px;
}

.gal-jump a {
    border-radius:8px;
    border:1px solid #eadfd4;
}

.gal-jump a.fld-01,.gal-jump a.fld-02,.gal-jump a.fld-03,.gal-jump a.fld-04,.gal-jump a.fld-05,.gal-jump a.fld-06,.gal-jump a.fld-07 {
    border-width:1px;
    border-style:solid;
}

.gal-jump a:hover {
    filter:brightness(.97);
}

/* 갤러리 바로가기 칩: hover 시에도 분야 고유 색상 유지 */
.gal-jump a.fld-01,.gal-jump a.fld-01:hover { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
.gal-jump a.fld-02,.gal-jump a.fld-02:hover { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
.gal-jump a.fld-03,.gal-jump a.fld-03:hover { background:#fff1f2; border-color:#fbc4cf; color:#be123c; }
.gal-jump a.fld-04,.gal-jump a.fld-04:hover { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
.gal-jump a.fld-05,.gal-jump a.fld-05:hover { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
.gal-jump a.fld-06,.gal-jump a.fld-06:hover { background:#f0fdfa; border-color:#99e0d5; color:#0f766e; }
.gal-jump a.fld-07,.gal-jump a.fld-07:hover { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }
.gal-jump a:hover { transform:translateY(-1px); }

/* ============================================================
   수정: 갤러리 섹션 제목 중복 제거 (번호칩 + 분야명 1회 표기)
   ============================================================ */
.gal-no {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:36px;
    padding:0 10px;
    border:1px solid;
    border-radius:8px;
    font-size:17px;
    font-weight:900;
    letter-spacing:.5px;
}

/* 갤러리 헤더 링크: 눈에 띄는 버튼형으로 강조 */
.gal-head-links {
    gap:8px;
}

.gal-head-links a {
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:13.5px;
    font-weight:900;
    letter-spacing:-.2px;
    padding:9px 16px;
    border-radius:8px;
    transition:background .18s,color .18s,border-color .18s,transform .18s;
}

.gal-head-links a:first-child {
    color:#c25708;
    background:#fff;
    border:1px solid #e8a662;
}

.gal-head-links a:first-child:hover {
    background:#fff3e8;
    color:#c25708;
    transform:translateY(-1px);
}

.gal-head-links a:last-child {
    color:#fff;
    background:#e8720c;
    border:1px solid #e8720c;
    box-shadow:0 6px 16px rgba(232,114,12,.28);
}

.gal-head-links a:last-child:hover {
    background:#c25708;
    border-color:#c25708;
    color:#fff;
    transform:translateY(-1px);
}

@media(max-width:900px) {
    .gal-head-links a {
        flex:1;
        justify-content:center;
    }
}

/* ============================================================
   수정: 갤러리 헤더 버튼 축소 + 상단 바로가기 추가
   ============================================================ */
.gal-head-links a {
    font-size:12px;
    padding:6px 12px;
    gap:4px;
}

.gal-head-links a.to-top {
    color:#8a7a6c;
    background:#faf7f2;
    border:1px solid #e5d6c5;
    box-shadow:none;
}

.gal-head-links a.to-top:hover {
    background:#f2ede6;
    border-color:#d7c9bd;
    color:#57534e;
    transform:translateY(-1px);
}

/* ============================================================
   수정: 분야 바로가기 칩 - 양쪽 정렬 + 연결선
   ============================================================ */
.gal-jump {
    position:relative;
    justify-content:space-between;
    gap:0;
    scroll-margin-top:150px;
}

.gal-jump:before {
    content:'';
    position:absolute;
    left:10px;
    right:10px;
    top:50%;
    height:1px;
    background:linear-gradient(90deg,transparent,#dcc9b4 12%,#dcc9b4 88%,transparent);
}

.gal-jump a {
    position:relative;
    z-index:1;
}

@media(max-width:980px) {
    .gal-jump {
        justify-content:flex-start;
        gap:8px;
    }

    .gal-jump:before {
        display:none;
    }
}

/* 수정: 갤러리 사진 설명을 위로, 사진을 아래로 배치 */
.gal-grid figcaption {
    border-top:0;
    border-bottom:1px solid #f2ede6;
    background:#faf7f2;
}

/* ============================================================
   수정: 갤러리 헤더 버튼 - 아이콘으로 역할 구분
   (사업분야=가방 / 관련 실적=목록 / 상단=위 화살표)
   ============================================================ */
.gal-head-links a svg {
    flex:0 0 auto;
}

/* ============================================================
   수정: BUSINESS 번호를 원형으로 + 프로젝트 분류 색상 매칭
   01 조사탐사(주황) 02·03 지반설계(파랑) 04 지하수(청록)
   05·06 계측안전점검(초록) 07 측량(보라)
   ============================================================ */
.service-card .service-num {
    width:46px;
    height:46px;
    border-radius:50%;
    font-size:15px;
}

/* 사업분야 번호칩: 담당 사업부 색상을 그대로 사용 */
#field-01 .dept-fno { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
#field-02 .dept-fno,
#field-03 .dept-fno { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
#field-04 .dept-fno { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
#field-05 .dept-fno,
#field-06 .dept-fno { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
#field-07 .dept-fno { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }

/* 실적 보기 버튼: 축소 + 사업부 분류 색상 매칭 */
.svc-more {
    font-size:12.5px;
    padding:7px 14px;
    margin-top:14px;
}

#biz-survey .svc-more { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
#biz-survey .svc-more:hover { background:#c25708; border-color:#c25708; color:#fff; }

#biz-design .svc-more { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
#biz-design .svc-more:hover { background:#1d4ed8; border-color:#1d4ed8; color:#fff; }

#biz-water .svc-more { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
#biz-water .svc-more:hover { background:#0e7490; border-color:#0e7490; color:#fff; }

#biz-safety .svc-more { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
#biz-safety .svc-more:hover { background:#15803d; border-color:#15803d; color:#fff; }

#biz-measure .svc-more { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }
#biz-measure .svc-more:hover { background:#7e22ce; border-color:#7e22ce; color:#fff; }

/* ============================================================
   수정: 갤러리 번호칩 - 로마숫자 원형 (비즈니스 번호와 통일)
   ============================================================ */
.gal-no {
    min-width:46px;
    width:46px;
    height:46px;
    padding:0;
    border-radius:50%;
    font-family:'Noto Serif KR','Nanum Myeongjo',Batang,serif;
    font-size:19px;
}

/* ============================================================
   PROCESS: 공통 수행 로직 플로차트 (예/아니오 분기)
   ============================================================ */
.yes-word { font-style:normal; font-weight:900; color:#15803d; }
.no-word { font-style:normal; font-weight:900; color:#be123c; }

.flow {
    max-width:900px;
    margin:0 auto;
}

.flow-row {
    display:flex;
    align-items:center;
    justify-content:center;
}

.flow-row.has-branch {
    justify-content:flex-start;
}

.fnode {
    flex:0 0 auto;
    width:min(100%,420px);
    text-align:center;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:12px;
    padding:16px 26px;
    font-size:16.5px;
    font-weight:800;
    letter-spacing:-.4px;
    color:#1c1917;
    box-shadow:0 10px 26px rgba(55,38,25,.06);
}

.fnode small {
    display:block;
    margin-top:4px;
    font-size:12.5px;
    font-weight:700;
    color:#8a7a6c;
}

.f-start,.f-end {
    border-radius:999px;
    background:#1a1512;
    border-color:#1a1512;
    color:#ffd9b0;
    box-shadow:0 12px 30px rgba(26,21,18,.25);
}

.f-end {
    background:linear-gradient(135deg,#c25708,#e8720c);
    border-color:#e8720c;
    color:#fff;
}

.f-decision {
    position:relative;
    background:#fffbeb;
    border:1.5px dashed #f2c464;
    color:#92600a;
}

.f-decision .q,.pq .q {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    margin-right:8px;
    border-radius:50%;
    background:#f2b93e;
    color:#fff;
    font-size:14px;
    font-weight:900;
}

.flow-row.has-branch .fnode {
    margin-left:calc(50% - 210px);
}

.fbranch {
    position:relative;
    flex:1 1 auto;
    min-width:56px;
    height:0;
    border-top:2px dashed #e79aac;
}

.fbranch:after {
    content:'';
    position:absolute;
    right:-1px;
    top:-5px;
    border-left:8px solid #e79aac;
    border-top:4px solid transparent;
    border-bottom:4px solid transparent;
}

.fbranch .no-chip {
    position:absolute;
    left:50%;
    top:-13px;
    transform:translateX(-50%);
}

.no-chip {
    display:inline-block;
    background:#fff1f2;
    border:1px solid #fbc4cf;
    color:#be123c;
    border-radius:8px;
    font-size:11.5px;
    font-weight:900;
    padding:3px 9px;
    line-height:1.4;
}

.yes-chip {
    display:inline-block;
    background:#eefaf2;
    border:1px solid #bfe8cd;
    color:#15803d;
    border-radius:8px;
    font-size:11.5px;
    font-weight:900;
    padding:3px 9px;
    line-height:1.4;
}

.fside {
    flex:0 0 218px;
    background:#fff;
    border:1.5px dashed #fbc4cf;
    border-radius:12px;
    padding:12px 16px;
    font-size:13.5px;
    font-weight:800;
    color:#9f1239;
    text-align:center;
}

.fside em {
    display:block;
    margin-top:3px;
    font-style:normal;
    font-size:11.5px;
    font-weight:800;
    color:#c98a97;
}

.fjoin {
    position:relative;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.fjoin:before {
    content:'';
    position:absolute;
    left:50%;
    top:0;
    bottom:8px;
    width:2px;
    background:#d7c9bd;
    transform:translateX(-50%);
}

.fjoin:after {
    content:'';
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
    border-top:8px solid #d7c9bd;
    border-left:5px solid transparent;
    border-right:5px solid transparent;
}

.fjoin.yes:before {
    background:#86c79e;
}

.fjoin.yes:after {
    border-top-color:#86c79e;
}

.fjoin .yes-chip {
    position:relative;
    z-index:1;
    margin-left:64px;
}

@media(max-width:860px) {
    .flow-row.has-branch {
        flex-direction:column;
        gap:0;
    }

    .flow-row.has-branch .fnode {
        margin-left:0;
    }

    .fbranch {
        width:0;
        min-width:0;
        flex:0 0 auto;
        height:34px;
        border-top:0;
        border-left:2px dashed #e79aac;
    }

    .fbranch:after {
        right:auto;
        left:-5px;
        top:auto;
        bottom:-1px;
        border-left:4px solid transparent;
        border-right:4px solid transparent;
        border-top:8px solid #e79aac;
        border-bottom:0;
    }

    .fbranch .no-chip {
        left:8px;
        top:50%;
        transform:translateY(-50%);
    }

    .fside {
        flex:0 0 auto;
        width:min(100%,320px);
    }

    .fjoin .yes-chip {
        margin-left:56px;
    }
}

/* ============================================================
   PROCESS: 분야별 세부 프로세스 (탭 + 단계 체인)
   ============================================================ */
.gallery-dept-section {
    overflow:visible;
}
.gallery-dept-tabs {
    position:sticky;
    top:78px;
    z-index:20;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
    margin:0 0 44px;
    padding:10px;
    background:rgba(255,255,255,.96);
    border:1px solid #dce4ec;
    border-radius:14px;
    box-shadow:0 8px 24px rgba(15,42,65,.09);
    backdrop-filter:blur(8px);
}
.gallery-dept-tabs a {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:48px;
    padding:9px 12px;
    color:#1f3b53;
    background:#f5f8fb;
    border:1px solid #e0e7ee;
    border-radius:9px;
    text-decoration:none;
    transition:.2s ease;
}
.gallery-dept-tabs a:hover,
.gallery-dept-tabs a:focus-visible {
    color:#fff;
    background:#123f62;
    border-color:#123f62;
    transform:translateY(-1px);
}
.gallery-dept-tabs span {
    font-family:Georgia,serif;
    font-size:1.18rem;
    color:#c67422;
}
.gallery-dept-tabs a:hover span,
.gallery-dept-tabs a:focus-visible span {
    color:#ffd39b;
}
.gallery-dept-tabs b {
    font-size:.92rem;
    white-space:nowrap;
}
.gallery-dept {
    scroll-margin-top:160px;
    margin:0 0 72px;
    padding-top:4px;
}
.gallery-dept + .gallery-dept {
    padding-top:54px;
    border-top:1px solid #dce4ec;
}
.gallery-dept-head {
    display:flex;
    align-items:flex-start;
    gap:18px;
    margin-bottom:28px;
}
.gallery-dept-no {
    flex:0 0 58px;
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    color:#fff;
    background:#123f62;
    border-radius:12px;
    font:700 1.55rem/1 Georgia,serif;
    box-shadow:inset 0 -4px 0 rgba(0,0,0,.12);
}
.gallery-dept-head h2 {
    margin:1px 0 7px;
    color:#173b57;
    font-size:1.8rem;
}
.gallery-dept-head p {
    margin:0;
    color:#617282;
    line-height:1.65;
}
.gallery-subgroup + .gallery-subgroup {
    margin-top:40px;
}
.gallery-subgroup h3 {
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 17px;
    color:#21465f;
    font-size:1.08rem;
}
.gallery-subgroup h3::before {
    content:"";
    width:5px;
    height:20px;
    border-radius:3px;
    background:#c67422;
}
.gallery-back-top {
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:30;
    display:flex;
    align-items:center;
    gap:6px;
    padding:10px 14px;
    color:#fff;
    background:#123f62;
    border-radius:999px;
    box-shadow:0 6px 18px rgba(15,42,65,.24);
    text-decoration:none;
    font-size:.83rem;
}
.gallery-back-top:hover {
    background:#c67422;
}
@media (max-width:900px) {
    .gallery-dept-tabs {
        top:64px;
        display:flex;
        overflow-x:auto;
        justify-content:flex-start;
        scrollbar-width:thin;
        scroll-snap-type:x proximity;
    }
    .gallery-dept-tabs a {
        flex:0 0 auto;
        min-width:145px;
        scroll-snap-align:start;
    }
}
@media (max-width:600px) {
    .gallery-dept-tabs {
        margin-bottom:32px;
        padding:7px;
    }
    .gallery-dept-tabs a {
        min-width:132px;
        min-height:44px;
        padding:8px 10px;
    }
    .gallery-dept-tabs b {
        font-size:.82rem;
    }
    .gallery-dept {
        scroll-margin-top:135px;
        margin-bottom:52px;
    }
    .gallery-dept + .gallery-dept {
        padding-top:38px;
    }
    .gallery-dept-head {
        gap:12px;
        margin-bottom:22px;
    }
    .gallery-dept-no {
        flex-basis:46px;
        width:46px;
        height:46px;
        font-size:1.25rem;
    }
    .gallery-dept-head h2 {
        font-size:1.42rem;
    }
    .gallery-dept-head p {
        font-size:.9rem;
    }
    .gallery-subgroup + .gallery-subgroup {
        margin-top:31px;
    }
    .gallery-back-top {
        right:14px;
        bottom:14px;
        width:42px;
        height:42px;
        justify-content:center;
        padding:0;
    }
    .gallery-back-top span {
        display:none;
    }
}

.ptabs {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:26px;
}

.ptab {
    cursor:pointer;
    font-family:inherit;
    font-size:13.5px;
    font-weight:800;
    letter-spacing:-.2px;
    padding:9px 16px;
    border-radius:8px;
    border:1px solid #eadfd4;
    background:#fff;
    color:#78716c;
    transition:transform .15s,box-shadow .15s,opacity .15s;
    opacity:.62;
}

.ptab.active {
    opacity:1;
    transform:translateY(-1px);
    box-shadow:0 8px 18px rgba(55,38,25,.1);
}

.ptab:hover {
    opacity:1;
}

.ppanel {
    display:none;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:14px;
    padding:30px 30px 24px;
    box-shadow:0 14px 34px rgba(55,38,25,.06);
}

.ppanel.active {
    display:block;
}

.pflow {
    display:flex;
    flex-wrap:wrap;
    align-items:stretch;
    gap:10px 0;
}

.pstep {
    display:flex;
    align-items:center;
    text-align:center;
    justify-content:center;
    background:#faf7f2;
    border:1px solid #eadfd4;
    border-radius:10px;
    padding:12px 16px;
    font-size:14px;
    font-weight:800;
    letter-spacing:-.3px;
    color:#44403c;
}

.pstep.pq {
    background:#fffbeb;
    border:1.5px dashed #f2c464;
    color:#92600a;
}

.pstep.pdone {
    background:#fff3e8;
    border-color:#f2c49a;
    color:#7c3b06;
}

.pstep.pdone strong {
    color:#c25708;
    margin-left:4px;
}

.parr {
    position:relative;
    align-self:center;
    width:34px;
    height:0;
    margin:0 2px;
    border-top:2px solid #d7c9bd;
}

.parr:after {
    content:'';
    position:absolute;
    right:-1px;
    top:-5px;
    border-left:8px solid #d7c9bd;
    border-top:4px solid transparent;
    border-bottom:4px solid transparent;
}

.parr.yes {
    border-top-color:#86c79e;
}

.parr.yes:after {
    border-left-color:#86c79e;
}

.pno {
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:18px;
    padding:12px 16px;
    border:1.5px dashed #fbc4cf;
    border-radius:10px;
    background:#fff;
    font-size:13.5px;
    font-weight:800;
    color:#9f1239;
}

.pno em {
    font-style:normal;
    color:#c98a97;
}

@media(max-width:860px) {
    .pflow {
        flex-direction:column;
        align-items:stretch;
    }

    .parr {
        width:0;
        height:26px;
        margin:0 auto;
        border-top:0;
        border-left:2px solid #d7c9bd;
    }

    .parr:after {
        right:auto;
        left:-5px;
        top:auto;
        bottom:-1px;
        border-left:4px solid transparent;
        border-right:4px solid transparent;
        border-top:8px solid #d7c9bd;
        border-bottom:0;
    }

    .parr.yes {
        border-left-color:#86c79e;
    }

    .parr.yes:after {
        border-top-color:#86c79e;
        border-left-color:transparent;
    }

    .ppanel {
        padding:22px 18px 18px;
    }
}

/* ============================================================
   수정: PROCESS 분야 탭 - 갤러리 바로가기와 동일한
   분야색 바탕 + 연결선 + 양쪽 정렬
   ============================================================ */
.ptabs {
    position:relative;
    justify-content:space-between;
    gap:0;
}

.ptabs:before {
    content:'';
    position:absolute;
    left:10px;
    right:10px;
    top:50%;
    height:1px;
    background:linear-gradient(90deg,transparent,#dcc9b4 12%,#dcc9b4 88%,transparent);
}

.ptab {
    position:relative;
    z-index:1;
}

.ptab.fld-01 { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
.ptab.fld-02 { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
.ptab.fld-03 { background:#fff1f2; border-color:#fbc4cf; color:#be123c; }
.ptab.fld-04 { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
.ptab.fld-05 { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
.ptab.fld-06 { background:#f0fdfa; border-color:#99e0d5; color:#0f766e; }
.ptab.fld-07 { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }

.ptab.active {
    box-shadow:0 8px 18px rgba(55,38,25,.14);
    outline:2px solid currentColor;
    outline-offset:-2px;
}

@media(max-width:980px) {
    .ptabs {
        justify-content:flex-start;
        gap:8px;
    }

    .ptabs:before {
        display:none;
    }
}

/* ============================================================
   수정: COMPANY 등록면허 - 숫자 대신 전문 아이콘 칩
   ============================================================ */
.license-group h3 span.lg-ic {
    width:34px;
    height:34px;
    border-radius:9px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
}

/* ============================================================
   수정: HOME 핵심 사업분야 번호 - 원형 + 프로젝트 분류 색상
   ============================================================ */
.preview-card .num {
    width:40px;
    height:40px;
    border-radius:50%;
    font-size:14px;
}

.preview-card[href$="#service-01"] .num { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
.preview-card[href$="#service-02"] .num,
.preview-card[href$="#service-03"] .num { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
.preview-card[href$="#service-04"] .num { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
.preview-card[href$="#service-05"] .num,
.preview-card[href$="#service-06"] .num { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
.preview-card[href$="#service-07"] .num { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }

/* ============================================================
   수정: 분류 배지(조사탐사·지반설계 등) - 라운드 사각형 통일
   (HOME 주요 수행사례 · PROJECTS 실적 테이블)
   ============================================================ */
.badge {
    border-radius:8px;
}

/* ============================================================
   PROCESS V2: Engineering Life Cycle Renewal
   ============================================================ */
.process-hero-v2 .breadcrumb {
    max-width:980px;
    line-height:1.75;
}

.process-intro-section {
    padding-bottom:54px;
}

.process-scope-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
}

.process-scope-card {
    position:relative;
    overflow:hidden;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:18px;
    padding:30px 26px 28px;
    min-height:210px;
    box-shadow:0 16px 42px rgba(55,38,25,.06);
}

.process-scope-card:before {
    content:'';
    position:absolute;
    right:-34px;
    top:-34px;
    width:96px;
    height:96px;
    border-radius:50%;
    background:rgba(232,114,12,.08);
}

.process-scope-card span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:30px;
    border-radius:999px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:13px;
    font-weight:900;
    margin-bottom:18px;
}

.process-scope-card h3 {
    font-size:22px;
    line-height:1.32;
    letter-spacing:-.8px;
    color:#1c1917;
    margin-bottom:10px;
}

.process-scope-card p {
    font-size:15px;
    color:#57534e;
    font-weight:600;
    line-height:1.72;
}

.life-flow {
    max-width:860px;
    margin:0 auto;
}

.lf-step,.lf-gate {
    position:relative;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:18px;
    padding:24px 30px 24px 112px;
    box-shadow:0 14px 34px rgba(55,38,25,.06);
}

.lf-step:before,.lf-gate:before {
    content:'';
    position:absolute;
    left:78px;
    top:24px;
    bottom:24px;
    width:1px;
    background:#f0e6dc;
}

.lf-no {
    position:absolute;
    left:28px;
    top:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:34px;
    border-radius:12px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:12px;
    font-weight:900;
    letter-spacing:.3px;
}

.lf-step h3,.lf-gate h3 {
    font-size:23px;
    line-height:1.28;
    letter-spacing:-.9px;
    color:#1c1917;
    margin-bottom:7px;
}

.lf-step p,.lf-gate p {
    font-size:15.5px;
    color:#57534e;
    font-weight:600;
    line-height:1.72;
}

.lf-start {
    background:linear-gradient(135deg,#1a1512,#3a2a1b);
    border-color:#1a1512;
}

.lf-start:before {
    background:rgba(255,255,255,.18);
}

.lf-start .lf-no {
    background:rgba(255,255,255,.1);
    border-color:rgba(255,178,94,.42);
    color:#ffb25e;
}

.lf-start h3,.lf-start p {
    color:#fff;
}

.lf-start p {
    color:#d7c9bd;
}

.lf-end {
    background:linear-gradient(135deg,#c25708,#e8720c);
    border-color:#e8720c;
}

.lf-end:before {
    background:rgba(255,255,255,.24);
}

.lf-end .lf-no {
    background:rgba(255,255,255,.16);
    border-color:rgba(255,255,255,.45);
    color:#fff;
}

.lf-end h3,.lf-end p {
    color:#fff;
}

.lf-gate {
    border:1.5px dashed #f2c464;
    background:linear-gradient(135deg,#fffbeb,#fff);
}

.lf-gate .q {
    position:absolute;
    left:28px;
    top:25px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border-radius:50%;
    background:#f2b93e;
    color:#fff;
    font-size:21px;
    font-weight:900;
    box-shadow:0 10px 22px rgba(242,185,62,.24);
}

.lf-gate h3 {
    color:#7c5209;
}

.lf-gate strong:first-of-type {
    color:#be123c;
}

.lf-gate strong:last-of-type {
    color:#15803d;
}

.lf-gate em {
    display:inline-flex;
    margin-top:12px;
    padding:6px 12px;
    border-radius:999px;
    background:#fff;
    border:1px solid #f2c464;
    color:#92600a;
    font-size:12px;
    font-weight:900;
    font-style:normal;
}

.lf-arrow {
    position:relative;
    height:42px;
}

.lf-arrow:before {
    content:'';
    position:absolute;
    left:50%;
    top:0;
    bottom:8px;
    width:2px;
    background:#d7c9bd;
    transform:translateX(-50%);
}

.lf-arrow:after {
    content:'';
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
    border-top:9px solid #d7c9bd;
    border-left:6px solid transparent;
    border-right:6px solid transparent;
}

.lf-arrow.yes:before {
    background:#86c79e;
}

.lf-arrow.yes:after {
    border-top-color:#86c79e;
}

.process-domain-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.domain-card {
    background:#fff;
    border:1px solid #eadfd4;
    border-left:4px solid #e8720c;
    border-radius:14px;
    padding:24px 24px 22px;
    box-shadow:0 12px 32px rgba(55,38,25,.05);
}

.domain-card b {
    display:block;
    color:#1c1917;
    font-size:20px;
    letter-spacing:-.7px;
    margin-bottom:8px;
}

.domain-card p {
    color:#57534e;
    font-size:14.5px;
    font-weight:600;
    line-height:1.68;
}

@media(max-width:980px) {
    .process-scope-grid,.process-domain-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:640px) {
    .process-scope-grid,.process-domain-grid {
        grid-template-columns:1fr;
    }

    .process-scope-card {
        min-height:0;
        padding:24px 22px;
    }

    .lf-step,.lf-gate {
        padding:82px 22px 22px;
    }

    .lf-step:before,.lf-gate:before {
        left:22px;
        right:22px;
        top:68px;
        bottom:auto;
        width:auto;
        height:1px;
    }

    .lf-no,.lf-gate .q {
        left:22px;
        top:22px;
    }

    .lf-step h3,.lf-gate h3 {
        font-size:21px;
    }

    .lf-step p,.lf-gate p {
        font-size:14.5px;
    }
}

/* ============================================================
   PROCESS V3: 8개 분야 + 심의·보완수정 대응 체계
   ============================================================ */
.process-head-compact {
    margin-bottom:34px;
}

.process-head-compact p strong {
    color:#c25708;
}

.process-lifecycle-section {
    padding-bottom:76px;
}

/* --- 심의·보완 대응 절차 스트립 --- */
.review-strip {
    display:flex;
    align-items:stretch;
    flex-wrap:wrap;
    gap:10px 0;
    max-width:1120px;
    margin:0 auto;
}

.rv-step {
    flex:1 1 0;
    min-width:140px;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:12px;
    padding:16px 14px 14px;
    text-align:center;
    box-shadow:0 10px 26px rgba(55,38,25,.05);
}

.rv-step span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:26px;
    border-radius:50%;
    background:#faf7f2;
    border:1px solid #eadfd4;
    color:#78716c;
    font-size:12.5px;
    font-weight:900;
    margin-bottom:8px;
}

.rv-step b {
    display:block;
    font-size:15px;
    font-weight:900;
    letter-spacing:-.4px;
    color:#1c1917;
    margin-bottom:4px;
}

.rv-step small {
    display:block;
    font-size:12.5px;
    font-weight:700;
    color:#78716c;
    line-height:1.5;
}

.rv-step.rv-hot {
    background:#fffbf5;
    border-color:#f2c49a;
}

.rv-step.rv-hot span {
    background:#fff3e8;
    border-color:#f2c49a;
    color:#c25708;
}

.rv-step.rv-hot b {
    color:#c25708;
}

.rv-step.rv-ok {
    background:#eefaf2;
    border-color:#bfe8cd;
}

.rv-step.rv-ok span {
    background:#fff;
    border-color:#bfe8cd;
    color:#15803d;
}

.rv-step.rv-ok b {
    color:#15803d;
}

.rv-arr {
    position:relative;
    align-self:center;
    width:26px;
    height:0;
    border-top:2px solid #d7c9bd;
    flex:0 0 auto;
}

.rv-arr:after {
    content:'';
    position:absolute;
    right:-1px;
    top:-5px;
    border-left:8px solid #d7c9bd;
    border-top:4px solid transparent;
    border-bottom:4px solid transparent;
}

.rv-arr.yes {
    border-top-color:#86c79e;
}

.rv-arr.yes:after {
    border-left-color:#86c79e;
}

/* 시그니처: 보완요구 반복 루프 */
.review-loop-wrap {
    max-width:1120px;
    margin:0 auto 40px;
}

.review-loop {
    position:relative;
    margin-left:34%;
    margin-right:17%;
    padding:16px 20px 14px;
    border:2px dashed #f2b0be;
    border-top:0;
    border-radius:0 0 16px 16px;
    text-align:center;
    font-size:14px;
    font-weight:800;
    color:#9f1239;
}

.review-loop:before,.review-loop:after {
    content:'';
    position:absolute;
    top:-14px;
    width:0;
    height:14px;
    border-left:2px dashed #f2b0be;
}

.review-loop:before {
    left:0;
}

.review-loop:after {
    right:0;
    border-left:0;
    border-right:2px dashed #f2b0be;
}

.review-loop span {
    display:inline-block;
    margin-right:8px;
    padding:4px 12px;
    border-radius:999px;
    background:#fff1f2;
    border:1px solid #fbc4cf;
    font-size:12.5px;
    font-weight:900;
    color:#be123c;
}

.review-loop em {
    font-style:normal;
    margin-left:6px;
    color:#c98a97;
}

.review-aside {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.rv-card {
    background:#fff;
    border:1px solid #eadfd4;
    border-top:4px solid #e8720c;
    border-radius:14px;
    padding:24px 24px 22px;
    box-shadow:0 12px 32px rgba(55,38,25,.05);
}

.rv-card h3 {
    font-size:19px;
    font-weight:900;
    letter-spacing:-.6px;
    color:#1c1917;
    margin-bottom:10px;
}

.rv-card p {
    font-size:14.5px;
    font-weight:600;
    color:#57534e;
    line-height:1.78;
}

.rv-card p strong {
    display:inline-block;
    margin-top:4px;
    color:#c25708;
}

/* --- 분야별 패널: 심의·인허가 대응 행 --- */
.pauth {
    display:flex;
    gap:16px;
    align-items:flex-start;
    margin-top:14px;
    padding:16px 18px;
    border:1px solid #e3d9ce;
    border-left:4px solid #e8720c;
    border-radius:10px;
    background:#fffdf9;
}

.pauth b {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    padding:6px 12px;
    border-radius:8px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:13px;
    font-weight:900;
    letter-spacing:-.3px;
    white-space:nowrap;
}

.pauth p {
    font-size:14px;
    font-weight:600;
    color:#57534e;
    line-height:1.74;
}

/* 8번째 분야 탭 색상 (계측일반) */
.ptab.fld-08 { background:#f1f5f9; border-color:#c3d2e2; color:#33475b; }

/* 반응형 */
@media(max-width:1120px) {
    .review-strip {
        flex-wrap:wrap;
        justify-content:center;
    }

    .rv-step {
        flex:1 1 160px;
    }
}

@media(max-width:980px) {
    .review-aside {
        grid-template-columns:1fr;
    }
}

@media(max-width:760px) {
    .review-strip {
        flex-direction:column;
    }

    .rv-step {
        min-width:0;
    }

    .rv-arr {
        width:0;
        height:24px;
        margin:0 auto;
        border-top:0;
        border-left:2px solid #d7c9bd;
    }

    .rv-arr:after {
        right:auto;
        left:-5px;
        top:auto;
        bottom:-1px;
        border-left:4px solid transparent;
        border-right:4px solid transparent;
        border-top:8px solid #d7c9bd;
        border-bottom:0;
    }

    .rv-arr.yes {
        border-left-color:#86c79e;
    }

    .rv-arr.yes:after {
        border-top-color:#86c79e;
        border-left-color:transparent;
    }

    .review-loop {
        border-radius:0 0 12px 12px;
    }

    .pauth {
        flex-direction:column;
        gap:10px;
    }
}

@media(max-width:1120px) {
    .review-loop {
        margin-left:0;
        margin-right:0;
    }
}

/* ============================================================
   PROCESS V3-1: 표준절차 좌우 분할 (좌: 흐름 / 우: 단계별 특별절차)
   ============================================================ */
.ld {
    max-width:1160px;
    margin:0 auto;
}

.ld-row {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);
    gap:0 34px;
    align-items:stretch;
}

.ld-main {
    display:flex;
    flex-direction:column;
    min-width:0;
}

/* 좌측 흐름 카드 컴팩트화 */
.ld .lf-step,.ld .lf-gate {
    padding:20px 24px 19px 94px;
    border-radius:15px;
}

.ld .lf-step:before,.ld .lf-gate:before {
    left:66px;
    top:20px;
    bottom:20px;
}

.ld .lf-no {
    left:20px;
    top:20px;
    width:38px;
    height:30px;
    border-radius:10px;
    font-size:11.5px;
}

.ld .lf-gate .q {
    left:20px;
    top:19px;
    width:38px;
    height:38px;
    font-size:18px;
}

.ld .lf-step h3,.ld .lf-gate h3 {
    font-size:19px;
    margin-bottom:5px;
}

.ld .lf-step p,.ld .lf-gate p {
    font-size:14px;
    line-height:1.68;
}

/* 행 사이 연결 화살표: 남는 높이를 채워 연속선 유지 */
.ld-arr {
    position:relative;
    flex:1 0 auto;
    min-height:40px;
}

.ld-arr:before {
    content:'';
    position:absolute;
    left:50%;
    top:0;
    bottom:8px;
    width:2px;
    background:#d7c9bd;
    transform:translateX(-50%);
}

.ld-arr:after {
    content:'';
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
    border-top:9px solid #d7c9bd;
    border-left:6px solid transparent;
    border-right:6px solid transparent;
}

.ld-row.yes .ld-arr:before {
    background:#86c79e;
}

.ld-row.yes .ld-arr:after {
    border-top-color:#86c79e;
}

/* 우측: 단계별 특별절차 카드 */
.ld-side {
    position:relative;
    min-width:0;
    padding-bottom:22px;
}

.side-card {
    position:relative;
    background:#fff;
    border:1.5px dashed #e0b98c;
    border-radius:15px;
    padding:20px 22px 18px;
    box-shadow:0 12px 30px rgba(55,38,25,.05);
}

.side-card:before {
    content:'';
    position:absolute;
    left:-35px;
    top:30px;
    width:34px;
    border-top:2px dashed #e0b98c;
}

.side-card:after {
    content:'';
    position:absolute;
    left:-8px;
    top:26px;
    width:9px;
    height:9px;
    border-radius:50%;
    background:#e8720c;
    box-shadow:0 0 0 4px #fff3e8;
}

.sc-tag {
    display:inline-block;
    padding:4px 11px;
    border-radius:999px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    color:#c25708;
    font-size:11.5px;
    font-weight:900;
    letter-spacing:.6px;
    margin-bottom:10px;
}

.side-card h3 {
    font-size:18px;
    font-weight:900;
    letter-spacing:-.6px;
    color:#1c1917;
    margin-bottom:8px;
}

.sc-desc {
    font-size:13.5px;
    font-weight:600;
    color:#78716c;
    line-height:1.65;
    margin-bottom:12px;
}

.sc-list {
    list-style:none;
    margin:0;
    padding:0;
}

.sc-list li {
    position:relative;
    padding:7px 0 7px 16px;
    font-size:13.5px;
    font-weight:600;
    color:#57534e;
    line-height:1.62;
    border-bottom:1px dashed #f0e6dc;
}

.sc-list li:last-child {
    border-bottom:0;
}

.sc-list li:before {
    content:'';
    position:absolute;
    left:0;
    top:15px;
    width:6px;
    height:6px;
    border-radius:2px;
    background:#e8720c;
}

.sc-list li b {
    color:#1c1917;
    margin-right:5px;
}

/* 부지 유형별 허가 그리드 (시그니처) */
.permit-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-bottom:12px;
}

.permit {
    background:#faf7f2;
    border:1px solid #eadfd4;
    border-radius:10px;
    padding:10px 12px 9px;
}

.permit b {
    display:block;
    font-size:12.5px;
    font-weight:900;
    color:#c25708;
    margin-bottom:2px;
}

.permit span {
    display:block;
    font-size:12.5px;
    font-weight:700;
    color:#57534e;
    line-height:1.55;
}

.sc-sub {
    margin-bottom:12px;
    padding:11px 14px;
    border-radius:10px;
    background:#fffbeb;
    border:1px dashed #f2c464;
}

.sc-sub b {
    display:block;
    font-size:13px;
    font-weight:900;
    color:#92600a;
    margin-bottom:3px;
}

.sc-sub p {
    font-size:13px;
    font-weight:600;
    color:#7c5f2a;
    line-height:1.62;
}

/* 분야 칩 */
.fchips {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    padding-top:11px;
    border-top:1px solid #f0e6dc;
}

.fchip {
    font-style:normal;
    font-size:11.5px;
    font-weight:900;
    letter-spacing:-.2px;
    padding:4px 10px;
    border-radius:999px;
    border:1px solid;
}

.fchip.fld-01 { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
.fchip.fld-02 { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
.fchip.fld-03 { background:#fff1f2; border-color:#fbc4cf; color:#be123c; }
.fchip.fld-04 { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
.fchip.fld-05 { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
.fchip.fld-06 { background:#f0fdfa; border-color:#99e0d5; color:#0f766e; }
.fchip.fld-07 { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }
.fchip.fld-08 { background:#f1f5f9; border-color:#c3d2e2; color:#33475b; }

/* 강조 카드(착수 전 필수) */
.side-card.sc-key {
    border:1.5px dashed #e8720c;
    background:linear-gradient(160deg,#fff 62%,#fffaf3);
    box-shadow:0 16px 40px rgba(232,114,12,.1);
}

.side-card.sc-key .sc-tag {
    background:#e8720c;
    border-color:#e8720c;
    color:#fff;
}

/* 분야 패널: 착수 전 절차 행 */
.ppre {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    margin-bottom:16px;
    padding:11px 14px;
    border:1px dashed #e0b98c;
    border-radius:10px;
    background:#fffdf9;
}

.pre-chip {
    display:inline-flex;
    align-items:center;
    padding:5px 11px;
    border-radius:8px;
    background:#e8720c;
    color:#fff;
    font-size:12px;
    font-weight:900;
    letter-spacing:-.2px;
}

.ppre em {
    font-style:normal;
    font-size:12.5px;
    font-weight:800;
    color:#8a6a45;
    padding:5px 10px;
    border-radius:8px;
    background:#faf7f2;
    border:1px solid #eadfd4;
}

/* 반응형 */
@media(max-width:980px) {
    .ld-row {
        grid-template-columns:1fr;
        gap:0;
    }

    .ld-side {
        padding:0 0 0 26px;
    }

    .ld-side:empty {
        display:none;
    }

    .side-card {
        margin:2px 0 16px;
        border-radius:12px;
    }

    .side-card:before {
        left:-26px;
        top:-12px;
        width:0;
        height:26px;
        border-top:0;
        border-left:2px dashed #e0b98c;
    }

    .side-card:after {
        left:-30px;
        top:12px;
    }

    .ld-arr {
        min-height:34px;
    }
}

@media(max-width:560px) {
    .permit-grid {
        grid-template-columns:1fr;
    }

    .ld .lf-step,.ld .lf-gate {
        padding:70px 20px 18px;
    }

    .ld .lf-step:before,.ld .lf-gate:before {
        left:20px;
        right:20px;
        top:58px;
        bottom:auto;
        width:auto;
        height:1px;
    }

    .ld .lf-no,.ld .lf-gate .q {
        left:18px;
        top:16px;
    }
}


/* ═══════════════════════════════════════════════
   헤더 CI 마크 (2026-08-01 추가)
   HTML 수정 없이 style.css 하나로 전 페이지에 적용됩니다.
   제거하려면 이 주석부터 파일 끝까지 삭제하세요.
   이미지를 폴더에 넣으셨다면 아래 url() 경로만 바꾸세요.
   ═══════════════════════════════════════════════ */

.logo {
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:center;
    column-gap:10px;
}

.logo:before {
    content:"";
    grid-area:1 / 1 / 3 / 2;
    align-self:center;
    width:43px;
    height:44px;
    background:url("images/ci-mark.png") center/contain no-repeat;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
}

@media(max-width:640px) {
    .logo {
        column-gap:8px;
    }

    .logo:before {
        width:35px;
        height:36px;
    }
}
.visually-hidden {
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

/* ABOUT 대표 인사말: 한라산 지질 단면 씬 */
.ceo-scene {
    position:relative;
    padding:0 0 clamp(60px,7vw,92px);
    background:#f2ede9;
    overflow:hidden;
    isolation:isolate;
}

/* 한라산 지질 단면 — 흐름에서 빼내 배경 레이어로.
   카드가 그 위에 얹히므로 이미지와 카드가 세로 공간을 공유한다.
   좌측·하단을 마스킹해 잘린 단면선이 배경으로 녹아들게 함 */
.ceo-scene-ridge {
    position:absolute;
    top:0;
    right:0;
    z-index:0;
    display:block;
    width:min(86%,1220px);
    height:auto;
    pointer-events:none;
    -webkit-mask-image:
        linear-gradient(90deg,transparent 0,#000 15%,#000 100%),
        linear-gradient(180deg,#000 0,#000 88%,transparent 100%);
    -webkit-mask-composite:source-in;
    mask-image:
        linear-gradient(90deg,transparent 0,#000 15%,#000 100%),
        linear-gradient(180deg,#000 0,#000 88%,transparent 100%);
    mask-composite:intersect;
}

/* 제주 등고선 실루엣 — 산 왼쪽 여백에 겹쳐 한 장의 삽화처럼 이어지게 */
.ceo-scene-isle {
    position:absolute;
    left:clamp(-70px,-3vw,0px);
    top:clamp(16px,3vw,48px);
    width:clamp(200px,23vw,340px);
    height:auto;
    opacity:.5;
    z-index:-1;
    pointer-events:none;
}

/* 카드 아래 빈 여백에도 같은 등고선 결을 이어 한 장면으로 묶음.
   좌우 반전은 이미지 안 지명이 거꾸로 읽히므로 쓰지 않고, 농도만 낮춰 질감으로 사용 */
.ceo-scene-isle-b {
    top:auto;
    left:auto;
    right:clamp(-90px,-3vw,0px);
    bottom:clamp(-70px,-4vw,-10px);
    width:clamp(260px,32vw,480px);
    opacity:.22;
}

/* 카드를 종이 위에 인쇄된 것처럼 — 순백 대신 미색, 그림자는 낮고 따뜻하게 */
.ceo-scene .ceo-message-v2 {
    background:linear-gradient(160deg,#fffdf9 50%,#fdf6ec);
    border-color:#e7dbcc;
    box-shadow:0 16px 40px rgba(72,50,30,.10);
}

/* 산이 드러날 만큼 카드를 아래로 밀되, 겹쳐서 세로 공간을 아낀다 */
.ceo-scene-inner {
    position:relative;
    z-index:1;
    padding-top:clamp(150px,26vw,340px);
}

/* 좌측 인용 패널을 원본 시안의 딥브라운으로.
   사이드 노트를 뺀 뒤 남는 아래 여백이 어색하지 않도록 세로 중앙 정렬 */
.ceo-scene .ceo-msg-side {
    background:linear-gradient(158deg,#3d2d20,#241a12);
    border-right:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.ceo-scene .ceo-msg-side .eyebrow {
    color:#f0a259;
}

.ceo-scene .ceo-msg-side h2 {
    color:#fdf8f2;
}

.ceo-scene .ceo-msg-side h2 em {
    color:#f8a45c;
}

.ceo-scene .ceo-quote-mark {
    color:#e8720c;
}

.ceo-scene .ceo-side-line {
    background:linear-gradient(90deg,#f0a259,transparent);
}

.ceo-scene .ceo-side-note {
    color:#c3b2a1;
}

/* 인용구 패널을 뺀 인사말 단독 카드.
   폭을 넓게 써서 줄바꿈을 줄이면 카드가 낮아지고 그만큼 한라산이 더 드러난다 */
.ceo-letter-only {
    grid-template-columns:minmax(0,1fr);
}

/* 겹침 구성에 맞춰 카드 세로 길이 축소 (가독성 유지 범위 내) */
.ceo-scene .ceo-msg-side {
    padding:34px 32px 30px 36px;
}

.ceo-scene .ceo-msg-body {
    padding:42px 48px 38px;
}

.ceo-scene .ceo-quote-mark {
    font-size:58px;
    margin:10px 0 2px;
}

.ceo-scene .ceo-msg-side h2 {
    font-size:28px;
    line-height:1.4;
}

.ceo-scene .ceo-greeting {
    font-size:18.5px;
    padding-bottom:15px;
    margin-bottom:17px;
}

.ceo-scene .ceo-msg-body > p:not(.ceo-greeting) {
    line-height:1.74;
    margin-bottom:11px;
}

.ceo-scene .ceo-sign-v2 {
    margin-top:18px;
    padding-top:16px;
}

.ceo-scene .ceo-sign-text strong {
    font-size:22px;
}

@media(max-width:980px) {
    .ceo-scene .ceo-msg-side {
        border-bottom:0;
        padding:30px 26px 28px;
    }

    .ceo-scene .ceo-msg-body {
        padding:30px 26px 30px;
    }

    .ceo-scene .ceo-msg-side h2 {
        font-size:26px;
    }
}

/* 폭이 좁아지면 양쪽맞춤이 단어 사이를 벌려 놓으므로 왼쪽정렬로 */
@media(max-width:820px) {
    .ceo-scene .ceo-msg-body > p:not(.ceo-greeting) {
        text-align:left;
    }
}

@media(max-width:640px) {
    .ceo-scene .ceo-msg-side h2 {
        font-size:23px;
    }

    .ceo-scene .ceo-greeting {
        font-size:17.5px;
    }

    .ceo-scene .ceo-quote-mark {
        font-size:50px;
    }

    .ceo-scene .ceo-sign-text strong {
        font-size:20px;
    }
}

@media(max-width:640px) {
    /* 좁은 폭에서는 산을 크게 키워 배경 질감처럼 쓰고, 카드는 그 위로 */
    .ceo-scene-ridge {
        width:170%;
        right:-35%;
    }

    .ceo-scene-inner {
        padding-top:104px;
    }

    .ceo-scene-isle {
        width:210px;
        opacity:.4;
    }
}

/* ABOUT 등록면허: 면허증·인증서 문서 슬롯 */
.license-docs {
    display:grid;
    gap:26px;
    max-width:1120px;
    margin:0 auto;
}

.license-docs-group {
    background:#fff;
    border:1px solid #eadfd4;
    border-top:4px solid #e8720c;
    border-radius:16px;
    padding:30px 32px 32px;
    box-shadow:0 14px 36px rgba(55,38,25,.05);
}

.license-docs-head {
    display:flex;
    align-items:center;
    gap:10px;
    font-size:20px;
    letter-spacing:-.7px;
    color:#1c1917;
    padding-bottom:16px;
    margin-bottom:24px;
    border-bottom:1px solid #f2ede6;
}

.license-doc-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(168px,1fr));
    gap:22px 20px;
}

.license-doc {
    margin:0;
}

.license-doc-thumb {
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    aspect-ratio:3/4;
    border:1px solid #eadfd4;
    border-radius:10px;
    background:#faf7f2;
    overflow:hidden;
}

.license-doc-thumb img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:top center;
    display:block;
    cursor:zoom-in;
    transition:transform .35s ease;
}

.license-doc-thumb img:hover {
    transform:scale(1.04);
}

/* 스캔본이 아직 없는 슬롯 */
.license-doc.is-pending .license-doc-thumb {
    border-style:dashed;
    border-color:#ded1c3;
    background:linear-gradient(135deg,rgba(232,114,12,.035),transparent 62%),#fbf8f4;
}

.license-doc.is-pending .license-doc-thumb:before {
    content:'';
    width:34px;
    height:42px;
    opacity:.55;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23bfae9c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M9 13h6M9 17h4'/%3E%3C/svg%3E") center/contain no-repeat;
}

.license-doc.is-pending .license-doc-thumb:after {
    content:'스캔본 준비 중';
    font-size:12.5px;
    font-weight:800;
    letter-spacing:-.2px;
    color:#b3a596;
}

.license-doc figcaption {
    margin-top:12px;
    text-align:center;
    font-size:14.5px;
    font-weight:800;
    line-height:1.5;
    letter-spacing:-.3px;
    color:#44403c;
    word-break:keep-all;
}

/* 면허증 원본 확대 보기 */
.doc-lightbox {
    position:fixed;
    inset:0;
    z-index:1200;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:34px;
    background:rgba(28,20,14,.87);
    opacity:0;
    visibility:hidden;
    transition:opacity .25s ease,visibility .25s ease;
}

.doc-lightbox.is-open {
    opacity:1;
    visibility:visible;
}

.doc-lightbox img {
    max-width:min(1000px,92vw);
    max-height:86vh;
    border-radius:8px;
    background:#fff;
    box-shadow:0 30px 80px rgba(0,0,0,.5);
}

.doc-lightbox-close {
    position:absolute;
    top:22px;
    right:26px;
    width:46px;
    height:46px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.15);
    color:#fff;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    transition:background .2s ease;
}

.doc-lightbox-close:hover {
    background:rgba(255,255,255,.3);
}

.doc-lightbox-cap {
    position:absolute;
    left:0;
    right:0;
    bottom:26px;
    text-align:center;
    font-size:15px;
    font-weight:800;
    letter-spacing:-.3px;
    color:#f4ece3;
}

@media(max-width:640px) {
    .license-docs-group {
        padding:26px 20px 28px;
    }

    .license-doc-grid {
        grid-template-columns:repeat(auto-fill,minmax(132px,1fr));
        gap:18px 14px;
    }

    .license-doc figcaption {
        font-size:13px;
    }
}

/* ─── HOME 히어로: 제주 지반 공정 일러스트 ───────────────────────────
   .hero 의 position/overflow 는 개편안내 스티커 스타일 블록에도 있지만,
   그 블록을 나중에 통째로 삭제해도 히어로가 깨지지 않도록 여기에도 둡니다. */
.hero {
    position:relative;
    overflow:hidden;
    padding:68px 0 66px;
    background:linear-gradient(135deg,#18110d 0%,#402c17 56%,#14100d 100%);
}

.hero .wrap {
    position:relative;
    z-index:2;
}

.hero .hero-tagline {
    font-size:clamp(18px,1.8vw,23px);
    font-weight:800;
    letter-spacing:-1.1px;
    line-height:1.5;
    color:#f2c79c;
    margin:0 0 20px;
    max-width:900px;
}

@media(max-width:980px) {
    .hero {
        padding:58px 0 56px;
    }

    .hero .hero-tagline {
        margin-bottom:16px;
    }

}

@media(max-width:600px) {
    .hero { padding:48px 0 48px; }
}

/* ─── 서브 히어로 통일 ────────────────────────────────────────────
   about(.company-hero)의 빗금 + 오렌지 글로우를 서브페이지 전체에 적용.
   HOME(.hero)은 성격이 달라 제외한다.
   배경을 한 곳에서만 정의하므로 페이지끼리 다시 어긋나지 않는다. */
.sub-hero,
.company-hero {
    position:relative;
    overflow:hidden;
    color:#fff;
    background:
        radial-gradient(circle at 78% 18%,rgba(232,114,12,.24),transparent 30%),
        linear-gradient(135deg,#17100c 0%,#352315 58%,#100c09 100%);
}

.sub-hero:before,
.company-hero:before {
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(90deg,rgba(0,0,0,.16),transparent 48%),
        repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 1px,transparent 1px 16px);
}

.sub-hero > .wrap,
.company-hero > .wrap {
    position:relative;
    z-index:1;
}

.sub-hero {
    padding:64px 0 58px;
}

/* ─── HOME 사업분야·수행체계: 지반 단면 공정 일러스트 ─────────────
   매트릭스 5개 사업부와 같은 순서·같은 로마숫자로 대응시킨 라이트 버전 */
.biz-flow-art {
    display:block;
    width:100%;
    max-width:1240px;
    height:auto;
    margin:0 auto clamp(18px,2.4vw,34px);
    pointer-events:none;
    user-select:none;
}

@media(max-width:820px) {
    /* 모바일에서는 문서 폭을 넘기지 않도록 화면 안에 맞춤 */
    .biz-flow-art {
        width:100%;
        max-width:100%;
        margin-left:auto;
        margin-right:auto;
        opacity:.85;
    }
}

/* ─── HOME 사업분야·수행체계 매트릭스 (5개 사업부) ─────────────── */
.cap-matrix {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:16px;
    margin-bottom:40px;
}

.cap-col {
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid #eadfd4;
    border-top:4px solid #e8720c;
    border-radius:14px;
    padding:22px 20px 20px;
    box-shadow:0 14px 36px rgba(55,38,25,.05);
}

.cap-head {
    display:flex;
    align-items:center;
    gap:9px;
    padding-bottom:14px;
    margin-bottom:15px;
    border-bottom:1px solid #f2ede6;
}

.cap-no {
    flex:0 0 auto;
    width:27px;
    height:27px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:7px;
    background:#fdf2e6;
    color:#c25708;
    font-size:13px;
    font-weight:900;
}

.cap-head h3 {
    font-size:16.5px;
    line-height:1.3;
    letter-spacing:-.7px;
    color:#1c1917;
    word-break:keep-all;
}

.cap-fields {
    display:flex;
    flex-direction:column;
    gap:7px;
    margin-bottom:auto;
    padding-bottom:16px;
}

.cap-field {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    font-size:14.5px;
    font-weight:800;
    letter-spacing:-.4px;
    color:#44403c;
    background:#faf7f2;
    border:1px solid #f2ebe1;
    border-radius:8px;
    padding:9px 11px;
    word-break:keep-all;
    transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.cap-field b {
    display:inline-flex;
    align-items:center;
    min-height:23px;
    margin-right:0;
    padding:3px 8px;
    border-radius:999px;
    background:#fff3e8;
    border:1px solid #f2c49a;
    font-size:10.5px;
    font-weight:900;
    letter-spacing:.4px;
    color:#e8720c;
}

.cap-field span {
    display:block;
    line-height:1.4;
}

.business-capability-lead {
    max-width:720px;
    margin-top:4px;
    color:#657581;
    font-size:17px;
    font-weight:650;
    line-height:1.7;
    letter-spacing:-.35px;
    word-break:keep-all;
}

.cap-col:nth-child(2) { border-top-color:#1d4ed8; }
.cap-col:nth-child(2) .cap-no,.cap-col:nth-child(2) .cap-field b { color:#1d4ed8; background:#eef4ff; border-color:#c4d7f7; }
.cap-col:nth-child(3) { border-top-color:#0e7490; }
.cap-col:nth-child(3) .cap-no,.cap-col:nth-child(3) .cap-field b { color:#0e7490; background:#ecfeff; border-color:#a5e3f0; }
.cap-col:nth-child(4) { border-top-color:#15803d; }
.cap-col:nth-child(4) .cap-no,.cap-col:nth-child(4) .cap-field b { color:#15803d; background:#eefaf2; border-color:#bfe8cd; }
.cap-col:nth-child(5) { border-top-color:#7e22ce; }
.cap-col:nth-child(5) .cap-no,.cap-col:nth-child(5) .cap-field b { color:#7e22ce; background:#faf5ff; border-color:#e3d0f5; }

.cap-field:hover {
    background:#fdf0e2;
    border-color:#f3d3ad;
    color:#c25708;
}

.cap-row h4 {
    font-size:10.5px;
    font-weight:900;
    letter-spacing:1.4px;
    text-transform:uppercase;
    color:#a89684;
    margin-bottom:6px;
}

.cap-row p {
    font-size:13.5px;
    line-height:1.62;
    font-weight:600;
    letter-spacing:-.3px;
    color:#57534e;
    word-break:keep-all;
}

.cap-out {
    margin-top:14px;
    padding-top:13px;
    border-top:1px dashed #ece1d4;
}

.cap-out p {
    color:#c25708;
    font-weight:700;
}

@media(max-width:1180px) {
    .cap-matrix {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:820px) {
    .cap-matrix {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:14px;
    }
}

@media(max-width:520px) {
    .cap-matrix {
        grid-template-columns:1fr;
    }

    .cap-fields {
        padding-bottom:14px;
    }
}

/* ─── BUSINESS 사업부별 탭 (조사탐사 · 지반설계 · 지하수 · 계측안전 · 측량) ─── */
.dept-tabs .ptab {
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.ptab-no {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    border-radius:6px;
    background:rgba(255,255,255,.72);
    font-size:11px;
    font-weight:900;
}

.dept-tabs .ptab[data-p="biz-survey"]  { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
.dept-tabs .ptab[data-p="biz-design"]  { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
.dept-tabs .ptab[data-p="biz-water"]   { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
.dept-tabs .ptab[data-p="biz-safety"]  { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
.dept-tabs .ptab[data-p="biz-measure"] { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }
.gallery-tabs .ptab[data-p="gallery-survey"]  { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
.gallery-tabs .ptab[data-p="gallery-design"]  { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
.gallery-tabs .ptab[data-p="gallery-water"]   { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
.gallery-tabs .ptab[data-p="gallery-safety"]  { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
.gallery-tabs .ptab[data-p="gallery-measure"] { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }
.dept-tabs .ptab.active { color:#fff; box-shadow:0 5px 14px rgba(28,25,23,.16); transform:translateY(-1px); }
.dept-tabs .ptab.active .ptab-no { background:rgba(255,255,255,.2); color:#fff; }
.dept-tabs .ptab[data-p="biz-survey"].active,.gallery-tabs .ptab[data-p="gallery-survey"].active,.project-dept-tabs .ptab[data-dept="survey"].active { background:#c25708; border-color:#c25708; }
.dept-tabs .ptab[data-p="biz-design"].active,.gallery-tabs .ptab[data-p="gallery-design"].active,.project-dept-tabs .ptab[data-dept="design"].active { background:#1d4ed8; border-color:#1d4ed8; }
.dept-tabs .ptab[data-p="biz-water"].active,.gallery-tabs .ptab[data-p="gallery-water"].active,.project-dept-tabs .ptab[data-dept="water"].active { background:#0e7490; border-color:#0e7490; }
.dept-tabs .ptab[data-p="biz-safety"].active,.gallery-tabs .ptab[data-p="gallery-safety"].active,.project-dept-tabs .ptab[data-dept="safety"].active { background:#15803d; border-color:#15803d; }
.dept-tabs .ptab[data-p="biz-measure"].active,.gallery-tabs .ptab[data-p="gallery-measure"].active,.project-dept-tabs .ptab[data-dept="measure"].active { background:#7e22ce; border-color:#7e22ce; }
.project-dept-tabs .ptab[data-dept="survey"] { background:#fff3e8; border-color:#f2c49a; color:#c25708; }
.project-dept-tabs .ptab[data-dept="design"] { background:#eef4ff; border-color:#c4d7f7; color:#1d4ed8; }
.project-dept-tabs .ptab[data-dept="water"] { background:#ecfeff; border-color:#a5e3f0; color:#0e7490; }
.project-dept-tabs .ptab[data-dept="safety"] { background:#eefaf2; border-color:#bfe8cd; color:#15803d; }
.project-dept-tabs .ptab[data-dept="measure"] { background:#faf5ff; border-color:#e3d0f5; color:#7e22ce; }
.project-dept-tabs .ptab.active,
.project-dept-tabs .ptab.active .ptab-no { color:#fff !important; }
.project-dept-tabs .ptab.active { outline-color:rgba(255,255,255,.72); }

.gallery-panel { padding:0; }
.gallery-six-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.gallery-card { position:relative; overflow:hidden; margin:0; background:#fff; border:1px solid #e3e7eb; border-radius:12px; box-shadow:0 5px 18px rgba(31,41,55,.08); }
.gallery-card img,.gallery-placeholder .placeholder-art { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.gallery-card figcaption { min-height:55px; display:flex; align-items:center; padding:14px 16px; color:#273b4a; font-size:14px; font-weight:750; line-height:1.4; }
.gallery-category { position:absolute; top:12px; left:12px; z-index:2; padding:6px 9px; color:#fff; background:rgba(20,52,75,.88); border-radius:6px; font-size:11px; font-weight:800; backdrop-filter:blur(4px); }
.gallery-placeholder { border:1px dashed #b9c3cc; box-shadow:none; background:#f7f9fa; }
.gallery-placeholder .placeholder-art { display:grid; place-items:center; color:#a9b5bf; background:linear-gradient(135deg,#f8fafb,#edf1f4); font-size:48px; }
.gallery-placeholder figcaption { flex-direction:column; justify-content:center; align-items:flex-start; gap:4px; }
.gallery-placeholder figcaption b { color:#526574; font-size:14px; }
.gallery-placeholder figcaption span { color:#8997a2; font-size:12px; font-weight:500; }
#gallery-survey .gallery-card { border-top:3px solid #c25708; }
#gallery-design .gallery-card { border-top:3px solid #1d4ed8; }
#gallery-water .gallery-card { border-top:3px solid #0e7490; }
#gallery-safety .gallery-card { border-top:3px solid #15803d; }
#gallery-measure .gallery-card { border-top:3px solid #7e22ce; }
#gallery-survey .gallery-category { background:#c25708; }
#gallery-design .gallery-category { background:#1d4ed8; }
#gallery-water .gallery-category { background:#0e7490; }
#gallery-safety .gallery-category { background:#15803d; }
#gallery-measure .gallery-category { background:#7e22ce; }

.project-source-table { display:none; }
.project-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:24px; }
.project-result-card { position:relative; min-height:190px; padding:24px 22px; overflow:hidden; background:#fff; border:1px solid #e3e7eb; border-top-width:4px; border-radius:12px; box-shadow:0 5px 18px rgba(31,41,55,.08); }
.project-result-card.dept-survey { border-top-color:#c25708; }
.project-result-card.dept-design { border-top-color:#1d4ed8; }
.project-result-card.dept-water { border-top-color:#0e7490; }
.project-result-card.dept-safety { border-top-color:#15803d; }
.project-result-card.dept-measure { border-top-color:#7e22ce; }
.project-result-type { margin-bottom:14px; font-size:12px; font-weight:850; letter-spacing:.2px; }
.dept-survey .project-result-type { color:#c25708; }.dept-design .project-result-type { color:#1d4ed8; }.dept-water .project-result-type { color:#0e7490; }.dept-safety .project-result-type { color:#15803d; }.dept-measure .project-result-type { color:#7e22ce; }
.project-result-card h3 { margin-bottom:12px; color:#273b4a; font-size:18px; line-height:1.45; letter-spacing:-.5px; word-break:keep-all; }
.project-result-card p { color:#667785; font-size:14px; line-height:1.7; word-break:keep-all; }
@media(max-width:900px){.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.project-card-grid{grid-template-columns:1fr}.project-result-card{min-height:auto}.project-dept-tabs{gap:6px}.project-dept-tabs .ptab{flex:1 1 calc(50% - 6px);justify-content:center;font-size:12px;padding:10px 8px}}
@media(max-width:900px){.gallery-six-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.gallery-six-grid{grid-template-columns:1fr;gap:16px}.gallery-card figcaption{min-height:50px}.gallery-panel .dept-intro{margin-top:18px}.gallery-tabs{gap:6px}.gallery-tabs .ptab{flex:1 1 calc(50% - 6px);justify-content:center;font-size:12px;padding:10px 8px}}

/* 부서 머리말 */
.dept-intro {
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin:26px 0 24px;
    padding-bottom:20px;
    border-bottom:2px solid #f0e6dc;
}

.dept-no {
    flex:0 0 auto;
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    background:#1c1917;
    color:#f5ebdd;
    font-size:17px;
    font-weight:900;
}

.dept-intro h3 {
    font-size:25px;
    letter-spacing:-1.1px;
    color:#1c1917;
    margin-bottom:6px;
}

.dept-intro p {
    font-size:15.5px;
    line-height:1.65;
    color:#6b6259;
    font-weight:600;
    letter-spacing:-.3px;
    word-break:keep-all;
}

/* 사업분야 블록 */
.dept-field {
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:16px;
    padding:28px 30px 30px;
    margin-bottom:22px;
    box-shadow:0 14px 36px rgba(55,38,25,.05);
}

.dept-field-head {
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:14px;
}

.dept-fno {
    flex:0 0 auto;
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #eadfd4;
    border-radius:50%;
    background:#faf7f2;
    font-size:14px;
    font-weight:900;
    letter-spacing:.3px;
}

.dept-field-head h4 {
    font-size:21px;
    letter-spacing:-.9px;
    color:#1c1917;
    line-height:1.35;
    word-break:keep-all;
}

.dept-field-head h4 small {
    display:block;
    margin-top:3px;
    font-size:12.5px;
    font-weight:700;
    letter-spacing:.2px;
    color:#a89684;
}

.dept-desc {
    font-size:15.5px;
    line-height:1.8;
    color:#44403c;
    letter-spacing:-.3px;
    word-break:keep-all;
}

/* 세부업무 = 이미지 캡션. 목록과 사진을 하나로 합쳐 중복을 없앤다 */
.work-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px 16px;
    margin-top:24px;
}

.work-card {
    overflow:hidden;
    margin:0;
    background:#fff;
    border:1px solid #e3e7eb;
    border-top-width:3px;
    border-radius:12px;
    box-shadow:0 5px 18px rgba(31,41,55,.08);
}

.work-card img {
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border:0;
    border-radius:0;
    background:#fbf8f4;
    box-shadow:0 8px 22px rgba(55,38,25,.06);
}

.work-card figcaption {
    display:flex;
    align-items:center;
    min-height:58px;
    margin-top:0;
    padding:13px 15px;
    font-size:13.5px;
    font-weight:800;
    line-height:1.55;
    letter-spacing:-.35px;
    color:#44403c;
    word-break:keep-all;
}

#biz-survey .work-card { border-top-color:#c25708; }
#biz-design .work-card { border-top-color:#1d4ed8; }
#biz-water .work-card { border-top-color:#0e7490; }
#biz-safety .work-card { border-top-color:#15803d; }
#biz-measure .work-card { border-top-color:#7e22ce; }

@media(max-width:900px) {
    .work-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:460px) {
    .work-grid {
        grid-template-columns:1fr;
        gap:14px;
    }
}

.dept-sub {
    display:flex;
    align-items:center;
    gap:9px;
    margin:26px 0 14px;
    font-size:12px;
    font-weight:900;
    letter-spacing:1.6px;
    text-transform:uppercase;
    color:#a89684;
}

.dept-sub:after {
    content:'';
    flex:1;
    height:1px;
    background:#f0e6dc;
}

/* 업무 흐름 (process 에서 가져온 블록) */
.dept-flow + .dept-flow {
    margin-top:22px;
    padding-top:20px;
    border-top:1px dashed #ece1d4;
}

.flow-cap {
    display:inline-block;
    margin-bottom:12px;
    padding:5px 12px;
    border-radius:999px;
    background:#f6f1ea;
    border:1px solid #eadfd4;
    font-size:12.5px;
    font-weight:800;
    letter-spacing:-.2px;
    color:#6b6259;
}

/* 수행사례 */
.dept-projects {
    background:#faf7f2;
    border:1px solid #eee5da;
    border-radius:16px;
    padding:24px 28px 26px;
}

.dept-projects .dept-sub {
    margin-top:0;
}

.dept-proj-list {
    list-style:none;
    display:grid;
    gap:10px;
}

.dept-proj-list li {
    background:#fff;
    border:1px solid #eee5da;
    border-radius:11px;
    padding:14px 18px;
}

.dept-proj-list strong {
    display:block;
    font-size:15px;
    font-weight:800;
    letter-spacing:-.4px;
    color:#1c1917;
    margin-bottom:5px;
    word-break:keep-all;
}

.dept-proj-list span {
    display:block;
    font-size:13.5px;
    line-height:1.62;
    color:#6b6259;
    letter-spacing:-.2px;
    word-break:keep-all;
}

@media(max-width:640px) {
    .dept-field {
        padding:22px 18px 24px;
    }

    .dept-intro h3 {
        font-size:21px;
    }

    .dept-field-head h4 {
        font-size:18px;
    }

    .dept-projects {
        padding:20px 16px 22px;
    }
}

/* PROCESS → BUSINESS 부서별 상세 안내 카드 */
.dept-jump {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    max-width:1120px;
    margin:0 auto;
}

.dept-jump-card {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:7px;
    background:#fff;
    border:1px solid #eadfd4;
    border-radius:14px;
    padding:20px 18px 18px;
    box-shadow:0 12px 30px rgba(55,38,25,.05);
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.dept-jump-card:hover {
    transform:translateY(-3px);
    border-color:#f2c49a;
    box-shadow:0 18px 40px rgba(55,38,25,.1);
}

.djc-no {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    border-radius:9px;
    background:#1c1917;
    color:#f5ebdd;
    font-size:13px;
    font-weight:900;
}

.dept-jump-card b {
    font-size:16px;
    font-weight:900;
    letter-spacing:-.6px;
    color:#1c1917;
    word-break:keep-all;
}

.dept-jump-card em {
    font-style:normal;
    font-size:13px;
    font-weight:600;
    line-height:1.55;
    letter-spacing:-.3px;
    color:#8a7a6c;
    word-break:keep-all;
}

@media(max-width:1000px) {
    .dept-jump {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:620px) {
    .dept-jump {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
    }
}

/* BUSINESS + PROCESS integrated layout */
.workflow-heading { margin-bottom:4px; padding-bottom:18px; border-bottom:1px solid #eceff2; }
.workflow-heading h4 { color:#273b4a; font-size:20px; line-height:1.4; letter-spacing:-.6px; }
.workflow-heading p { margin-top:6px; color:#778792; font-size:13.5px; line-height:1.6; }
.dept-field > .dept-sub { margin-top:20px; }
#biz-survey .workflow-heading { border-bottom-color:#f2c49a; }
#biz-design .workflow-heading { border-bottom-color:#c4d7f7; }
#biz-water .workflow-heading { border-bottom-color:#a5e3f0; }
#biz-safety .workflow-heading { border-bottom-color:#bfe8cd; }
#biz-measure .workflow-heading { border-bottom-color:#e3d0f5; }
.common-process { margin:28px 0 32px; padding:26px 28px 28px; border:1px solid #e3e7eb; border-radius:16px; background:#f8fafb; scroll-margin-top:100px; }
.common-process-head { margin-bottom:22px; }
.common-process-head h3 { margin:5px 0 7px; color:#1c3344; font-size:24px; letter-spacing:-.8px; }
.common-process-head p { color:#687a87; font-size:14.5px; }
.common-process-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.common-process-steps li { position:relative; min-height:116px; padding:17px 15px; border:1px solid #dce3e8; border-top:3px solid #1d4ed8; border-radius:11px; background:#fff; }
.common-process-steps li:not(:last-child):after { content:'›'; position:absolute; top:43px; right:-10px; z-index:2; color:#9aa9b4; font-size:22px; font-weight:800; }
.common-process-steps span { display:block; margin-bottom:8px; color:#1d4ed8; font-size:11px; font-weight:900; letter-spacing:.8px; }
.common-process-steps b { display:block; margin-bottom:5px; color:#273b4a; font-size:14px; }
.common-process-steps em { display:block; color:#788894; font-size:12px; font-style:normal; line-height:1.45; word-break:keep-all; }

details.pauth { display:block; margin-top:18px; padding:0; overflow:hidden; border-width:2px; box-shadow:0 7px 18px rgba(194,87,8,.1); transition:box-shadow .2s ease,transform .2s ease; }
details.pauth:hover { transform:translateY(-1px); box-shadow:0 10px 24px rgba(194,87,8,.16); }
details.pauth summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; color:#9f4507; background:linear-gradient(90deg,#fff3e8 0%,#fffaf5 100%); font-size:14px; font-weight:900; letter-spacing:-.3px; cursor:pointer; list-style:none; }
details.pauth summary::-webkit-details-marker { display:none; }
details.pauth summary span { display:inline-flex; align-items:center; gap:8px; flex:0 0 auto; padding:7px 12px; border-radius:999px; color:#fff; background:#c25708; font-size:12px; font-weight:850; box-shadow:0 4px 10px rgba(194,87,8,.22); }
details.pauth summary span:after { content:'＋'; font-size:15px; line-height:1; }
details.pauth[open] summary { border-bottom:1px solid #ead4c0; background:#fff8f0; }
details.pauth[open] summary span:after { content:'－'; }
details.pauth p { padding:15px 18px 17px; }

#biz-design details.pauth { border-left-color:#1d4ed8; box-shadow:0 7px 18px rgba(29,78,216,.1); }
#biz-design details.pauth summary { color:#1d4ed8; background:linear-gradient(90deg,#eef4ff 0%,#fafcff 100%); }
#biz-design details.pauth summary span { background:#1d4ed8; box-shadow:0 4px 10px rgba(29,78,216,.2); }
#biz-water details.pauth { border-left-color:#0e7490; box-shadow:0 7px 18px rgba(14,116,144,.1); }
#biz-water details.pauth summary { color:#0e7490; background:linear-gradient(90deg,#ecfeff 0%,#f8feff 100%); }
#biz-water details.pauth summary span { background:#0e7490; box-shadow:0 4px 10px rgba(14,116,144,.2); }
#biz-safety details.pauth { border-left-color:#15803d; box-shadow:0 7px 18px rgba(21,128,61,.1); }
#biz-safety details.pauth summary { color:#15803d; background:linear-gradient(90deg,#eefaf2 0%,#f9fdfb 100%); }
#biz-safety details.pauth summary span { background:#15803d; box-shadow:0 4px 10px rgba(21,128,61,.2); }
#biz-measure details.pauth { border-left-color:#7e22ce; box-shadow:0 7px 18px rgba(126,34,206,.1); }
#biz-measure details.pauth summary { color:#7e22ce; background:linear-gradient(90deg,#faf5ff 0%,#fdfaff 100%); }
#biz-measure details.pauth summary span { background:#7e22ce; box-shadow:0 4px 10px rgba(126,34,206,.2); }

@media(max-width:850px){.common-process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.common-process-steps li:not(:last-child):after{display:none}}
@media(max-width:520px){.common-process{padding:22px 16px}.common-process-steps{grid-template-columns:1fr}.common-process-steps li{min-height:auto}}

/* 오른쪽 고정 퀵 메뉴 */
.cap-fields .cap-field > b { display:none; }
.cap-fields .cap-field > span { margin-top:0; }

.quick-nav{position:fixed;top:55%;right:0;z-index:9000;transform:translateY(-50%);font-family:inherit}
.quick-nav-panel{width:64px;padding:12px 6px 7px;border:1px solid rgba(255,255,255,.16);border-right:0;border-radius:14px 0 0 14px;background:rgba(20,52,75,.97);box-shadow:0 12px 30px rgba(8,24,36,.24);backdrop-filter:blur(10px)}
.quick-nav-title{display:block;margin:0 0 8px;color:rgba(255,255,255,.66);font-size:8px;font-weight:800;letter-spacing:.7px;text-align:center;white-space:nowrap}
.quick-nav-list{display:flex;flex-direction:column;gap:4px}
.quick-nav-link{position:relative;display:flex;width:50px;min-height:49px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;color:#fff;text-decoration:none;transition:background .22s ease,box-shadow .22s ease}
.quick-nav-link svg{width:21px;height:21px;flex:0 0 21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.quick-nav-link span{position:absolute;right:50px;display:flex;width:0;height:49px;align-items:center;overflow:hidden;border-radius:9px 0 0 9px;background:#123e5a;color:#fff;font-size:12px;font-weight:850;letter-spacing:.15px;white-space:nowrap;opacity:0;transition:width .22s ease,padding .22s ease,opacity .16s ease;box-shadow:-8px 8px 18px rgba(8,24,36,.16)}
.quick-nav-link:hover,.quick-nav-link:focus-visible{background:#0d324a;outline:none}
.quick-nav-link:hover span,.quick-nav-link:focus-visible span{width:112px;padding:0 14px;opacity:1}
.quick-nav-link.active{background:#e8720c;border-color:rgba(255,255,255,.48);box-shadow:0 6px 14px rgba(232,114,12,.34)}
.quick-nav-link.active span{background:#c95e06}.quick-nav-toggle{display:none}
@media(max-height:660px) and (min-width:761px){.quick-nav-panel{padding-top:8px}.quick-nav-title{display:none}.quick-nav-link{min-height:42px}.quick-nav-link span{height:42px}}
@media(max-width:760px){.quick-nav{top:auto;right:12px;bottom:16px;transform:none}.quick-nav-panel{position:absolute;right:0;bottom:54px;width:184px;padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:12px;visibility:hidden;opacity:0;transform:translateY(8px) scale(.97);transform-origin:bottom right;transition:opacity .18s ease,transform .18s ease,visibility .18s}.quick-nav.is-open .quick-nav-panel{visibility:visible;opacity:1;transform:none}.quick-nav-title{margin-bottom:6px;font-size:9px}.quick-nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.quick-nav-link{width:auto;min-height:49px;gap:7px;padding:0 8px;justify-content:flex-start}.quick-nav-link svg{width:18px;height:18px;flex-basis:18px}.quick-nav-link span,.quick-nav-link:hover span,.quick-nav-link:focus-visible span{position:static;display:block;width:auto;height:auto;padding:0;overflow:visible;background:transparent;box-shadow:none;font-size:10.5px;opacity:1}.quick-nav-toggle{display:flex;width:46px;height:46px;margin-left:auto;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px solid rgba(255,255,255,.34);border-radius:50%;background:#123e5a;box-shadow:0 8px 22px rgba(8,24,36,.28);cursor:pointer}.quick-nav-toggle span{width:18px;height:2px;border-radius:2px;background:#fff;transition:transform .18s ease,opacity .18s ease}.quick-nav.is-open .quick-nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}.quick-nav.is-open .quick-nav-toggle span:nth-child(2){opacity:0}.quick-nav.is-open .quick-nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}}
