@charset "utf-8";

/* ========== 전체 서브페이지 스타일 (컨텐츠만) ========== */

/* CEO */
.ceo-message {padding-bottom:100px;}
.ceo-grid {display:grid; grid-template-columns:minmax(0, 586px) minmax(0, 1fr); gap:60px; align-items:start;}
.media-ceo {width:100%; min-width:0; aspect-ratio:586 / 391;}
.ceo-body {display:flex; flex-direction:column; gap:24px;}
.ceo-greeting {margin:0; font-size:28px; font-weight:600; line-height:1.14em; color:var(--color-text-title);}
.ceo-greeting strong {font-weight:600; background:var(--gradient-brand); -webkit-background-clip:text; background-clip:text; color:transparent;}
.ceo-body-copy {display:flex; flex-direction:column; gap:16px;}
.ceo-body .intro-text {margin:0; font-weight:400; line-height:1.75em; color:var(--color-text-body);}
.ceo-sign {margin-top:16px; text-align:right; line-height:1.75em; color:var(--color-text-title);}
.ceo-sign strong {font-weight:600;}

/* 경영이념 */
.philosophy-banner {position:relative; width:100%; padding:72px 0; color:var(--color-white); background-color:var(--color-primary); background-image:linear-gradient(90deg, rgba(0, 43, 108, 0.9) 0%, rgba(38, 106, 182, 0.78) 45%, rgba(77, 169, 255, 0.88) 100%), url("/images/all/facility-01.jpg"); background-position:center; background-size:cover; background-repeat:no-repeat;}
.philosophy-banner-inner {display:flex; align-items:center; justify-content:center; gap:32px; text-align:center;}
.philosophy-banner-icon {flex-shrink:0; display:flex; width:40px; height:40px;}
.philosophy-banner-icon img {display:block; width:40px; height:40px;}
.philosophy-banner-copy {display:flex; flex-direction:column; align-items:center; gap:24px; max-width:960px;}
.philosophy-banner-label {margin:0; font-weight:600; line-height:1.38em; letter-spacing:0.08em; color:var(--color-white); opacity:0.8;}
.philosophy-banner-message {display:flex; flex-direction:column; align-items:center; gap:16px;}
.philosophy-banner-lead {margin:0; font-size:48px; line-height:1.33em; color:var(--color-white);}
.philosophy-banner-lead strong {font-weight:700; color:var(--color-white);}
.philosophy-banner-desc {margin:0; line-height:1.63em; color:var(--color-white); opacity:0.92;}
.philosophy-section {padding:100px 0; background:rgba(0, 43, 108, 0.04);}
.philosophy-intro {display:flex; flex-direction:column; align-items:center; text-align:center; margin-bottom:64px;}
.philosophy-intro .text-h2 {margin:16px 0 0; font-size:36px; font-weight:700; line-height:1.22em; color:var(--color-text-title);}
.philosophy-cards {display:grid; grid-template-columns:repeat(3, 1fr); gap:32px;}
.philosophy-card {display:flex; flex-direction:column; align-items:center; gap:32px; padding:0 32px; text-align:center;}
.philosophy-card-icon {display:flex; align-items:center; justify-content:center; width:160px; height:160px; padding:44px; box-sizing:border-box; border-radius:50%; border:3px solid var(--color-primary); background:var(--color-white); transition:background-color 0.35s ease, border-color 0.35s ease;}
.philosophy-card-icon img {display:block; width:56px; height:56px; transition:filter 0.35s ease;}
.philosophy-card:hover .philosophy-card-icon {background:var(--color-primary); border-color:var(--color-primary);}
.philosophy-card:hover .philosophy-card-icon img {filter:brightness(0) invert(1);}
.philosophy-card-copy {display:flex; flex-direction:column; align-items:center; gap:20px; width:100%;}
.philosophy-card-heading {display:flex; flex-direction:column; align-items:center; gap:8px;}
.philosophy-card-label {margin:0; font-size:14px; font-weight:700; line-height:1.57em; letter-spacing:0.08em; color:var(--color-primary);}
.philosophy-card h4 {margin:0; font-size:24px; font-weight:600; line-height:1.33em; color:var(--color-text-title);}
.philosophy-card-copy > p {margin:0; line-height:1.63em; color:var(--color-text-body);}

/* 조직도 */
.org-diagram {width:100%;}
.org-diagram__head {display:flex; flex-direction:column; align-items:center;}
.org-diagram__logo {display:flex; align-items:center; justify-content:center; width:210px; height:210px; box-sizing:border-box; border:6px solid transparent; border-radius:50%; background:linear-gradient(var(--color-white), var(--color-white)) padding-box, var(--gradient-brand) border-box;}
.org-diagram__logo-mark {width:150px; height:42px;}
.org-diagram__logo-mark img {display:block; width:150px; height:42px; object-fit:contain;}
.org-diagram__stem {width:1px; height:80px; background:var(--color-border);}
.org-diagram__ceo {display:flex; align-items:center; justify-content:center; width:380px; max-width:100%; height:88px; padding:20px 40px; box-sizing:border-box; border-radius:16px; background:var(--color-primary);}
.org-diagram__ceo-label {margin:0; font-size:24px; font-weight:600; line-height:1.33em; color:var(--color-white); text-align:center;}
.org-diagram__branch {width:1172px; max-width:calc(100% - 268px); height:140px; margin:0 auto; line-height:0;}
.org-diagram__branch img {display:block; width:100%; height:140px; object-fit:fill;}
.org-diagram__teams {display:flex; gap:24px; width:100%; margin:0; padding:0; list-style:none;}
.org-diagram__team {display:flex; flex:1 1 0; align-items:center; justify-content:center; min-width:0; height:88px; padding:20px 40px; box-sizing:border-box; border-radius:16px; background:rgba(0, 43, 108, 0.08); font-size:22px; font-weight:500; line-height:1.45em; color:var(--color-primary); text-align:center; white-space:nowrap;}

/* 인증서 */
.cert-list {display:grid; grid-template-columns:repeat(4, 1fr); column-gap:30px; row-gap:60px; width:100%;}
.cert-item {display:flex; flex-direction:column; align-items:center; gap:24px; margin:0; min-width:0;}
.cert-item__thumb {position:relative; width:100%; aspect-ratio:210 / 297; background:#eeeeee; border:1px solid var(--color-border); box-sizing:border-box; overflow:hidden;}
.cert-item__thumb:has(img) {background:var(--color-white);}
.cert-item__thumb img {display:block; width:100%; height:100%; object-fit:cover;}
.cert-item__name {margin:0; width:100%; text-align:center; font-weight:500; line-height:1.5em; color:var(--color-text-body);}

/* 찾아오시는 길 */
.location-panel {display:flex; flex-direction:column; gap:48px; width:100%;}
.location-map {width:100%; height:500px; border:1px solid var(--color-border); border-radius:24px; overflow:hidden; background:var(--color-surface);}
.location-map__frame {display:block; width:100%; height:100%; border:0;}
.location-cards {display:flex; gap:24px; width:100%; align-items:stretch;}
.location-card {box-sizing:border-box; flex:1 1 0; min-width:0; min-height:238px; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; gap:24px; padding:32px; background:var(--color-white); border:1px solid var(--color-border); border-radius:24px; transition:border-color 0.2s ease, box-shadow 0.2s ease;}
.location-card:hover {border-color:var(--color-primary); box-shadow:0 4px 16px rgba(0, 43, 108, 0.1);}
.location-card__body {display:flex; flex-direction:column; gap:16px; align-items:flex-start; width:100%;}
.location-card__label {margin:0; font-weight:600; line-height:1.63em; color:var(--color-primary);}
.location-card__value {margin:0; font-size:20px; font-weight:600; line-height:1.5em; color:var(--color-text-title); word-break:keep-all;}
.location-card__value a {color:inherit;}
.location-card__value a:hover {color:var(--color-primary);}
.location-card__icon {display:flex; align-items:center; justify-content:center; width:80px; height:80px; border-radius:50%; flex-shrink:0; background:rgba(0, 43, 108, 0.06); transition:background-color 0.2s ease;}
.location-card:hover .location-card__icon {background:var(--color-primary);}
.location-card__icon img {display:block; width:32px; height:32px; object-fit:contain; transition:filter 0.2s ease;}
.location-card:hover .location-card__icon img {filter:brightness(0) invert(1);}

/* 생산 설비 · 연구개발 */
.fac-block + .fac-block,
.rnd-block + .rnd-block {margin-top:100px;}
.rnd-block--surface {padding:100px 0; background:rgba(0, 43, 108, 0.04);}
.fac-sec-head,
.rnd-sec-head {display:flex; flex-direction:column; gap:16px; margin-bottom:56px;}
.fac-sec-head__title,
.rnd-sec-head__title {margin:0; display:flex; align-items:center; gap:8px; font-size:24px; font-weight:700; line-height:1.33em; color:var(--color-text-title);}
.fac-sec-head__title::before,
.rnd-sec-head__title::before {content:""; flex-shrink:0; width:3px; height:22px; background:var(--color-primary);}
.fac-sec-head__desc,
.rnd-sec-head__desc {margin:0; padding-left:11px; line-height:1.75em; color:var(--color-text-body);}
.fac-list {display:flex; flex-direction:column; gap:24px;}
.fac-zone {display:flex; gap:40px; padding:40px 40px 36px; border-radius:24px; border:1px solid transparent; background:linear-gradient(135deg, rgba(0, 43, 108, 0.05) 0%, rgba(0, 55, 130, 0.035) 55%, rgba(0, 43, 108, 0.025) 100%); transition:border-color 0.25s ease, box-shadow 0.2s ease;}
.fac-zone:hover {border-color:var(--color-primary); box-shadow:0 4px 16px rgba(0, 43, 108, 0.1);}
.fac-zone--secondary {background:linear-gradient(315deg, rgba(77, 169, 255, 0.06) 0%, rgba(130, 200, 255, 0.04) 50%, rgba(77, 169, 255, 0.03) 100%);}
.fac-zone--secondary:hover {border-color:var(--color-secondary); box-shadow:0 4px 16px rgba(77, 169, 255, 0.12);}
.fac-zone--secondary .fac-line__num {color:var(--color-secondary);}
.fac-zone--secondary .fac-line__desc li::before {background:var(--color-secondary);}
.fac-zone__label {flex:0 0 260px;}
.fac-zone__name {margin:0; font-size:32px; font-weight:700; line-height:1.25em; color:var(--color-text-title);}
.fac-zone__code {margin:8px 0 0; font-weight:500; line-height:1.63em; color:#808080;}
.fac-zone__lines {flex:1; min-width:0; list-style:none; margin:0; padding:0;}
.fac-line {position:relative; display:flex; gap:32px; padding:24px 0; list-style:none;}
.fac-line:first-child {padding-top:0;}
.fac-line:last-child {padding-bottom:0;}
.fac-line + .fac-line::before {content:""; position:absolute; top:0; left:0; right:0; height:1px; background:repeating-linear-gradient(to right, #dddddd 0, #dddddd 4px, transparent 4px, transparent 8px);}
.fac-line__num {flex:0 0 56px; padding-top:2px; font-size:20px; font-weight:700; line-height:1.4em; color:var(--color-primary);}
.fac-line__title {flex:0 0 280px; margin:0; font-size:20px; font-weight:600; line-height:1.4em; color:var(--color-text-title);}
.fac-line__desc {flex:1; min-width:0; margin:0; padding:0; list-style:none;}
.fac-line__desc li {position:relative; padding-left:14px; line-height:1.75em; color:var(--color-text-body);}
.fac-line__desc li + li {margin-top:2px;}
.fac-line__desc li::before {content:""; position:absolute; left:0; top:12px; width:4px; height:4px; border-radius:50%; background:var(--color-primary);}
.fac-line__desc strong {font-weight:600; color:var(--color-text-title);}
.fac-proc {display:flex; flex-direction:column;}
.fac-proc__row {display:flex; align-items:flex-start;}
.fac-proc__row--reverse {flex-direction:row-reverse;}
.fac-proc__bridge {display:flex; justify-content:flex-end; height:48px; margin:20px 0 24px;}
.fac-proc__bridge .fac-proc__arrow {flex:1 1 0; max-width:calc((100% - 160px) / 5); height:48px;}
.fac-proc__step {flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center;}
.fac-proc__icon {width:112px; height:112px; border-radius:50%; background:var(--color-white); border:3px solid var(--color-border); display:flex; align-items:center; justify-content:center; transition:border-color 0.4s ease;}
.fac-proc__step:hover .fac-proc__icon {border-color:var(--color-primary);}
.fac-proc__step:hover .fac-proc__num {color:var(--color-primary);}
.fac-proc__icon svg {width:40px; height:40px; stroke:var(--color-primary); fill:rgba(0, 43, 108, 0.1); stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round;}
.fac-proc__icon svg .fac-proc-icon__no-fill {fill:none;}
.fac-proc__icon svg .fac-proc-icon__milk-body {fill:var(--color-white);}
.fac-proc__icon svg .fac-proc-icon__milk-liquid {fill:rgba(0, 43, 108, 0.1); stroke:none;}
.fac-proc__icon svg .fac-proc-icon__milk-cap {fill:none; stroke:var(--color-primary); stroke-width:1.2; stroke-linecap:round;}
.fac-proc__num {margin-top:20px; font-weight:600; line-height:1.5em; color:#bebebe; transition:color 0.4s ease;}
.fac-proc__name {margin-top:4px; font-size:20px; font-weight:600; line-height:1.4em; color:var(--color-text-title);}
.fac-proc__arrow {flex:0 0 40px; height:112px; display:flex; align-items:center; justify-content:center; position:relative;}
.fac-proc__arrow-img {display:block; width:40px; height:40px; transition:opacity 0.4s ease;}
.fac-proc__arrow-img--primary {position:absolute; opacity:0;}
.fac-proc__step:hover + .fac-proc__arrow .fac-proc__arrow-img--default {opacity:0;}
.fac-proc__step:hover + .fac-proc__arrow .fac-proc__arrow-img--primary {opacity:1;}
.fac-proc__arrow--right .fac-proc__arrow-img {transform:rotate(90deg);}
.fac-proc__arrow--left .fac-proc__arrow-img {transform:rotate(-90deg);}
.fac-proc__arrow--down .fac-proc__arrow-img {transform:rotate(180deg);}
.rnd-overview {display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;}
.rnd-overview__lead {margin:0; font-size:28px; font-weight:600; line-height:1.14em; color:var(--color-text-title);}
.rnd-overview__lead strong {font-weight:600; background:var(--gradient-brand); -webkit-background-clip:text; background-clip:text; color:transparent;}
.rnd-overview__text {margin-top:16px;}
.rnd-overview__text p {margin:0; line-height:1.75em; color:var(--color-text-body);}
.rnd-overview__points {margin:40px 0 0; padding:0; list-style:none; border-top:1px solid var(--color-border);}
.rnd-overview__points li {display:flex; gap:20px; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--color-border);}
.rnd-overview__key {flex-shrink:0; min-width:32px; font-weight:600; line-height:1.5em; color:var(--color-primary);}
.rnd-overview__val {font-size:18px; font-weight:500; line-height:1.78em; color:var(--color-text-title);}
.rnd-overview__media {aspect-ratio:1024 / 539; border-radius:24px; overflow:hidden;}
.rnd-overview__media img {display:block; width:100%; height:100%; object-fit:cover;}
.rnd-test-grid {display:grid; grid-template-columns:1fr 1fr; gap:40px;}
.rnd-test-card {display:flex; flex-direction:column; background:var(--color-white); border-radius:28px; overflow:hidden;}
.rnd-test-card__thumb {display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover;}
.rnd-test-card__body {padding:40px; flex:1; border:1px solid var(--color-border); border-top:0; border-radius:0 0 28px 28px;}
.rnd-test-card__eyebrow {margin:0; font-size:12px; font-weight:600; line-height:1.67em;}
.rnd-test-card:first-child .rnd-test-card__eyebrow {color:var(--color-secondary);}
.rnd-test-card:last-child .rnd-test-card__eyebrow {color:var(--color-primary);}
.rnd-test-card__title {margin:10px 0 0; font-size:24px; font-weight:700; line-height:1.33em; color:var(--color-text-title);}
.rnd-test-card__desc {margin:16px 0 0; line-height:1.75em; color:var(--color-text-body);}
.rnd-test-card__tags {display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 0; padding:0; list-style:none;}
.rnd-test-card__tags li {padding:6px 14px; border-radius:9999px; font-size:14px; font-weight:500; line-height:1.86em;}
.rnd-test-card:first-child .rnd-test-card__tags li {background:rgba(77, 169, 255, 0.07); color:var(--color-secondary);}
.rnd-test-card:last-child .rnd-test-card__tags li {background:rgba(0, 43, 108, 0.07); color:var(--color-primary);}
.rnd-dev {display:grid; grid-template-columns:repeat(5, 1fr); gap:20px;}
.rnd-dev__step {padding:40px 32px; border:1px solid var(--color-border); border-radius:16px; background:var(--color-white); transition:border-color 0.4s ease;}
.rnd-dev__step:hover {border-color:var(--color-primary);}
.rnd-dev__num {margin:0; font-size:32px; font-weight:700; line-height:1.25em; color:#bebebe; transition:color 0.4s ease;}
.rnd-dev__step:hover .rnd-dev__num {color:var(--color-primary);}
.rnd-dev__title {margin:16px 0 0; font-size:20px; font-weight:600; line-height:1.4em; color:var(--color-text-title);}
.rnd-dev__desc {margin:12px 0 0; line-height:1.75em; color:var(--color-text-body);}
