@charset "utf-8";

/* ========== 전체 서브페이지 스타일 (컨텐츠만) ========== */

/* 회사개요 */
.sub-contents {position:relative;}
.sub-contents__image {width:100%; border-radius:16px; overflow:hidden;}
.sub-contents__image img {width:100%; height:100%; object-fit:cover; display:block;}
.sub-contents__body {display:flex; align-items:flex-start; justify-content:space-between; margin-top:60px; gap: 20px;}
.sub-contents__heading {display:flex; flex-direction:column; gap:4px;}
.sub-contents__subtitle {color:var(--color-title); font-size:var(--font-size28); font-weight:400; line-height:1.4em; letter-spacing:-0.03em; white-space:nowrap;}
.sub-contents__title {font-size:64px; font-weight:700; line-height:1.3em; letter-spacing:-0.03em; white-space:nowrap; background:linear-gradient(90deg, var(--color-sub) 0%, var(--color-primary) 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;}
.sub-contents__text {display:flex; flex-direction:column; gap:30px; width:800px; color:var(--color-body); font-size:var(--font-size18); font-weight:400; line-height:1.6em; letter-spacing:-0.03em;}
.sub-contents__text p {margin:0;}
.sub-contents__text strong {color:var(--color-title); font-weight:600;}

/* 연혁 */
.history-layout {display:grid; grid-template-columns:560px 1fr; align-items:start;}
.history-left {position:sticky; top:130px; align-self:start; padding:60px 80px 0 0;}
.history-since {margin-bottom:8px; color:#eee; font-size:90px; font-weight:700; line-height:.9em; letter-spacing:-0.03em;}
.history-hero {margin-bottom:32px;}
.history-hero__accent {color:var(--color-sub); font-size:38px; font-weight:700; line-height:1.4em; letter-spacing:-0.03em;}
.history-hero__main {color:var(--color-title); font-size:38px; font-weight:700; line-height:1.4em; letter-spacing:-0.03em;}
.history-left-desc {color:var(--color-body); font-size:16px; font-weight:400; line-height:1.8em; letter-spacing:-0.03em;}
.history-right {border-left:1px solid #eee;}
.history-timeline {display:flex; flex-direction:column;}
.history-group {padding:60px 40px 60px 90px; border-bottom:1px solid #eee;}
.history-group:last-child {border-bottom:none;}
.history-group__hd {display:flex; align-items:center; gap:24px; margin:0 0 40px -100px;}
.history-dot {position:relative; display:block; flex-shrink:0; width:20px; height:20px; border-radius:50%; background:var(--color-primary); z-index:1;}
.history-dot::after {content:""; position:absolute; top:4px; left:4px; width:12px; height:12px; border-radius:50%; background:#fff;}
.history-year {margin:0; color:var(--color-title); font-size:var(--font-size30); font-weight:600; line-height:1em; letter-spacing:-0.03em;}
.history-items {display:flex; flex-direction:column; gap:18px;}
.history-item {display:flex; align-items:flex-start; gap:14px;}
.history-bullet {display:block; flex-shrink:0; width:6px; height:6px; margin-top:8px; border-radius:50%; background:#ccc;}
.history-item__text {color:var(--color-body); font-size:var(--font-size20); font-weight:400; line-height:1.65em; letter-spacing:-0.03em;}
.history-item__text--highlight {color:var(--color-sub); font-weight:600;}

/* 조직도 */
.org-wrap {display:flex; flex-direction:column; gap:80px;}
.org-chart {display:flex; flex-direction:column; align-items:center;}
.org-ceo-node {display:flex; align-items:center; justify-content:center; flex-shrink:0; width:160px; height:160px; border-radius:50%; background:var(--color-primary); color:#fff; font-size:var(--font-size24); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.org-connector-v {width:1px; height:60px; background:#ddd;}
.org-connector-v-sm {width:1px; height:40px; background:#ddd;}
.org-col-sep {display:none;}
.org-cols {position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:40px; width:100%;}
.org-cols::before {content:""; position:absolute; top:0; left:calc((100% - 80px) / 6); right:calc((100% - 80px) / 6); height:1px; background:#ddd;}
.org-col {position:relative; display:flex; flex-direction:column; align-items:center; padding-top:60px;}
.org-col::before {content:""; position:absolute; top:0; left:50%; transform:translateX(-50%); width:1px; height:60px; background:#ddd;}
.org-dept-node {display:flex; align-items:center; justify-content:center; width:100%; height:72px; border:1.5px solid var(--color-primary); border-radius:16px; color:var(--color-primary); font-size:var(--font-size20); font-weight:600; line-height:1.4em; letter-spacing:-0.03em; text-align:center;}
.org-team-grid {display:flex; flex-direction:column; gap:12px; width:100%;}
.org-team-card {display:flex; align-items:center; justify-content:center; height:64px; border:1px solid #ddd; border-radius:16px; background:#fff; color:var(--color-title); font-size:var(--font-size18); font-weight:600; line-height:1.4em; letter-spacing:-0.03em;}
.org-roles__title {margin:0 0 28px; color:var(--color-title); font-size:var(--font-size32); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.org-roles__grid {display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.org-role-card {padding:36px 32px; border-radius:16px; background:#f7f8f9;}
.org-role-card__en {margin:0 0 12px; color:var(--color-sub); font-size:13px; font-weight:600; line-height:1.4em; letter-spacing:.04em; text-transform:uppercase;}
.org-role-card__name {margin:0 0 16px; color:var(--color-title); font-size:var(--font-size20); font-weight:700; line-height:1.4em; letter-spacing:-0.03em;}
.org-role-card__desc {margin:0; color:var(--color-body); font-weight:400; line-height:1.7em; letter-spacing:-0.03em;}

/* 오시는 길 */
.location-wrap {display:flex; flex-direction:column; gap:60px;}
.location-map {width:100%; height:500px; border-radius:20px; overflow:hidden; background:#f7f8f9;}
.location-map .root_daum_roughmap,
.location-map .root_daum_roughmap .wrap_map {width:100%; height:100%;}
.location-map iframe {width:100%; height:100%; border:none;}
.location-info-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.location-info-card {display:flex; flex-direction:column; gap:16px; padding:40px 36px; border-radius:16px; background:#f7f8f9;}
.location-info-card__icon {display:flex;}
.location-info-card__icon img {display:block; width:56px; height:56px;}
.location-info-card__label {margin:0; color:var(--color-primary); font-size:14px; font-weight:600; line-height:1.4em; letter-spacing:.04em; text-transform:uppercase;}
.location-info-card__value {margin:0; color:var(--color-title); font-size:var(--font-size18); font-weight:600; line-height:1.5em; letter-spacing:-0.03em;}
.location-info-card__sub {margin:0; color:var(--color-body); font-size:14px; font-weight:400; line-height:1.6em; letter-spacing:-0.03em;}
.location-transport {display:grid; grid-template-columns:repeat(2,1fr); gap:60px;}
.location-transport__item {display:flex; flex-direction:column; gap:16px;}
.location-transport__title {margin:0; padding-bottom:16px; border-bottom:2px solid var(--color-primary); color:var(--color-title); font-size:var(--font-size20); font-weight:700; line-height:1.4em; letter-spacing:-0.03em;}
.location-transport__list {display:flex; flex-direction:column; gap:10px;}
.location-transport__row {display:flex; align-items:flex-start; gap:40px; color:var(--color-body); font-size:16px; line-height:1.6em;}
.location-transport__row strong {flex-shrink:0; color:var(--color-title); font-weight:700;}

/* 설비소개 — 소개·기능·특징 */
.equip-list-wrap {display:flex; flex-direction:column;}
.equip-intro-section {margin-bottom:64px;}
.equip-intro-section__title {margin:0 0 20px; color:var(--color-title); font-size:38px; font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.equip-intro-section__desc {margin:0; max-width:720px; color:var(--color-body); font-size:var(--font-size18); font-weight:400; line-height:1.7em; letter-spacing:-0.03em;}
.equip-func-section {margin-bottom:60px; padding:60px; border-radius:24px; background:#f7f8f9;}
.equip-func-section__hd {margin-bottom:40px;}
.equip-func-section__title {margin:0 0 8px; color:var(--color-title); font-size:var(--font-size26); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.equip-func-section__desc {margin:0; color:var(--color-body); font-size:16px; line-height:1.6em; letter-spacing:-0.03em;}
.equip-func-row {display:flex; align-items:stretch;}
.equip-func-card {display:flex; flex-direction:column; flex:1; gap:10px; min-width:0; padding:28px 22px; border:1px solid #ddd; border-radius:16px; background:#fff;}
.equip-func-card__num {display:flex; align-items:center; justify-content:center; flex-shrink:0; width:30px; height:30px; margin-bottom:6px; border-radius:50%; background:var(--color-primary); color:#fff; font-size:12px; font-weight:700; line-height:1em;}
.equip-func-card__en {color:var(--color-sub); font-size:12px; font-weight:700; line-height:1.4em; letter-spacing:.04em; text-transform:uppercase;}
.equip-func-card__ko {color:var(--color-title); font-size:19px; font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.equip-func-card__desc {margin:4px 0 0; color:var(--color-body); font-size:15px; line-height:1.65em; letter-spacing:-0.03em;}
.equip-func-arrow {display:flex; align-items:center; justify-content:center; flex-shrink:0; padding:0 10px; color:#ddd; font-size:var(--font-size18);}
.equip-feature-section {margin-bottom:120px;}
.equip-feature-section__hd {margin-bottom:20px;}
.equip-feature-section__title {margin:0; color:var(--color-title); font-size:var(--font-size32); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.equip-feature-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.equip-feature-card {display:flex; flex-direction:column; gap:20px; padding:40px 36px; border:1px solid #ddd; border-radius:20px;}
.equip-feature-card__badge {display:inline-flex; align-self:flex-start; padding:5px 14px; border-radius:99px; background:var(--color-primary); color:#fff; font-size:11px; font-weight:700; line-height:1.4em; letter-spacing:.08em; text-transform:uppercase;}
.equip-feature-card__title {margin:0 0 20px; color:var(--color-title); font-size:var(--font-size24); font-weight:700; line-height:1.35em; letter-spacing:-0.03em;}
.equip-feature-card__items {display:flex; flex-direction:column; gap:30px;}
.equip-feature-card__label {margin:0 0 5px; color:var(--color-title); font-size:17px; font-weight:700; line-height:1.4em; letter-spacing:-0.03em;}
.equip-feature-card__desc {margin:0; color:var(--color-body); font-size:16px; font-weight:400; line-height:1.65em; letter-spacing:-0.03em;}
.equip-grid-section__hd {margin-bottom:20px;}
.equip-grid-section__title {margin:0; color:var(--color-title); font-size:var(--font-size32); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}

/* 설비소개 — 상세 */
.equip-view-wrap {display:flex; flex-direction:column;}
.equip-view-slider {position:relative; width:100%; height:auto; aspect-ratio:728 / 480; overflow:hidden;}
.equip-view-slider .swiper-wrapper {height:100%;}
.equip-view-slider .swiper-slide {height:100%; position:relative;}
.equip-view-slider__btn {position:absolute; top:50%; z-index:2; display:flex; align-items:center; justify-content:center; width:40px; height:40px; margin:0; border:1px solid #ddd; border-radius:50%; background:#fff; color:var(--color-title); transform:translateY(-50%); cursor:pointer;}
.equip-view-slider__btn:hover {background:var(--color-primary); border-color:var(--color-primary); color:#fff;}
.equip-view-slider__btn--prev {left:12px;}
.equip-view-slider__btn--next {right:12px;}
.equip-view-slider.swiper .equip-view-slider__dots {position:absolute; left:0; bottom:14px; width:100%; display:flex; align-items:center; justify-content:center; gap:6px; transform:none; z-index:2;}
.equip-view-slider.swiper .swiper-pagination-bullet {display:block; flex-shrink:0; width:6px; height:6px; margin:0; background:#ddd; opacity:1; border-radius:99px;}
.equip-view-slider.swiper .swiper-pagination-bullet-active {width:18px; background:var(--color-primary);}
.equip-spec-section,
.equip-process-section {position:relative; padding:80px 0;}
/* .equip-spec-section::after,
.equip-process-section::after {content:"해당 섹션은 에디터 박스 영역입니다.\A현재 임시 컨텐츠로, 추후 관리자 페이지에서 내용을 직접 등록해주세요."; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; border-radius:12px; background:rgba(5,46,107,.72); color:#fff; font-size:16px; font-weight:500; line-height:1.7em; letter-spacing:-0.03em; text-align:center; white-space:pre; opacity:0; pointer-events:none; transition:opacity .2s;}
.equip-spec-section:hover::after,
.equip-process-section:hover::after {opacity:1;} */
.equip-spec-table {width:100%; border-collapse:collapse; border-top:2px solid var(--color-title);}
.equip-spec-table th,
.equip-spec-table td {padding:18px 24px; border-bottom:1px solid #ddd; font-size:16px; line-height:1.5em; letter-spacing:-0.03em; text-align:left;}
.equip-spec-table th {width:240px; background:#f7f8f9; color:var(--color-title); font-weight:700;}
.equip-spec-table td {color:var(--color-body); font-weight:400;}
.equip-overview {display:flex; align-items:center; gap:40px;}
.equip-overview__text {flex:1; min-width:0;}
.equip-overview__text p {margin:0 0 24px; color:var(--color-body); font-size:17px; font-weight:400; line-height:1.7em; letter-spacing:-0.03em;}
.equip-overview__text p:last-child {margin-bottom:0;}
.equip-overview__image {display:flex; align-items:center; justify-content:center; flex:1; position: relative; min-width:0; aspect-ratio:772 / 320;  border-radius:16px; overflow:hidden; background:#f7f8f9; box-sizing:border-box;}
.equip-overview__image img {position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); -ms-transform:translate(-50%,-50%); -webkit-transform:translate(-50%,-50%); width:auto !important; height:auto !important; max-width:92%; max-height:87%; object-fit:contain;}
.equip-process-steps {display:flex; align-items:center; flex-wrap:wrap;}
.equip-process-step {display:flex; flex-direction:column; align-items:center; flex:1; gap:12px; text-align:center;}
.equip-process-step__icon {display:flex; align-items:center; justify-content:center; width:72px; height:72px; border-radius:50%; background:var(--color-primary); color:#fff; font-size:var(--font-size22); font-weight:700; line-height:1em; letter-spacing:-0.03em;}
.equip-process-step__name {color:var(--color-title); font-size:15px; font-weight:600; line-height:1.4em; letter-spacing:-0.03em;}
.equip-process-arrow {flex-shrink:0; padding:0 8px; margin-bottom:28px; color:#ddd; font-size:var(--font-size20);}
.equip-process-section__desc {margin:40px 0 0; color:var(--color-body); font-size:16px; font-weight:400; line-height:1.7em; letter-spacing:-0.03em;}

/* 관계사 */
.affiliate-wrap {display:flex; flex-direction:column;}
.affiliate-wrap .sub-contents__heading {margin-bottom:80px;}
.affiliate-group {margin-bottom:80px;}
.affiliate-group__title {margin:0 0 20px; color:var(--color-title); font-size:var(--font-size32); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.affiliate-group__desc {margin:0 0 40px; color:var(--color-body); font-size:16px; font-weight:400; line-height:1.7em; letter-spacing:-0.03em;}
.affiliate-parent {display:flex; flex-direction:column; gap:30px; padding:48px 56px; border:1px solid #ddd; border-radius:20px;}
.affiliate-parent__label {margin:0 0 8px; color:var(--color-sub); font-size:13px; font-weight:600; line-height:1.4em; letter-spacing:.04em; text-transform:uppercase;}
.affiliate-parent__name {margin:0; color:var(--color-title); font-size:var(--font-size28); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.affiliate-parent__en {margin:6px 0 0; color:var(--color-body); font-size:14px; font-weight:500; line-height:1.4em; letter-spacing:-0.03em;}
.affiliate-parent__meta {display:flex; gap:20px;}
.affiliate-parent__item {flex:1; min-width:0;}
.affiliate-parent__dt {margin:0 0 4px; color:var(--color-body); font-size:14px; font-weight:600; line-height:1.4em; letter-spacing:-0.03em;}
.affiliate-parent__dd {margin:0; color:var(--color-title); font-size:var(--font-size18); font-weight:600; line-height:1.4em; letter-spacing:-0.03em;}
.affiliate-parent__link {display:block; color:var(--color-sub); font-size:var(--font-size18); font-weight:600; line-height:1.4em; letter-spacing:-0.03em;}
.affiliate-parent__desc {margin:0; color:var(--color-body); font-size:var(--font-size18); font-weight:400; line-height:1.7em; letter-spacing:-0.03em;}
.affiliate-grid {display:flex; flex-wrap:wrap; gap:24px;}
.affiliate-card {display:flex; flex-direction:column; gap:20px; flex:0 1 calc(50% - 12px); min-width:0; padding:40px 48px; border:1px solid #ddd; border-radius:20px; box-sizing:border-box;}
.affiliate-card__label {margin:0 0 8px; color:var(--color-sub); font-size:12px; font-weight:600; line-height:1.4em; letter-spacing:.06em; text-transform:uppercase;}
.affiliate-card__name {margin:0; color:var(--color-title); font-size:var(--font-size22); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
.affiliate-card__en {margin:4px 0 0; color:var(--color-body); font-size:13px; font-weight:500; line-height:1.4em; letter-spacing:-0.03em;}
.affiliate-card__info {display:flex; flex-direction:column; gap:10px; padding-top:20px; border-top:1px solid #ddd;}
.affiliate-card__row {display:flex; align-items:flex-start; gap:12px;}
.affiliate-card__row strong {flex-shrink:0; min-width:52px; color:var(--color-title); font-size:15px; font-weight:600; line-height:1.5em;}
.affiliate-card__row span {color:var(--color-body);  line-height:1.5em;}
.affiliate-cta {display:flex; align-items:center; justify-content:space-between; gap:40px; padding:60px 80px; border-radius:24px; background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-sub) 100%);}
.affiliate-cta__desc {margin:0 0 12px; color:rgba(255,255,255,.7);  font-weight:500; line-height:1.4em; letter-spacing:-0.03em;}
.affiliate-cta__title {margin:0; color:#fff; font-size:var(--font-size32); font-weight:700; line-height:1.3em; letter-spacing:-0.03em;}
