:root {
    --font: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --ink: #172635;
    --navy: #102D45;
    --brand: #456D8C;
    --brand-strong: #315B7B;
    --brand-deep: #173B59;
    --brand-80: #7897AE;
    --brand-60: #AEC4D3;
    --brand-40: #D6E1EA;
    --brand-20: #EEF2F6;
    --muted: #566878;
    --line: #DDE6ED;
    --line-strong: #C5D3DE;
    --soft: #F7F9FB;
    --white: #fff;
    --accent: #456D8C;
    --accent-deep: #315B7B;
    --accent-cyan: #AEC4D3;
    --dark: #102D45;
    --ease: cubic-bezier(.22,1,.36,1);
    --container: min(1380px, calc(100vw - 80px));
    --container-normal: min(1200px, calc(100vw - 48px));
    --header-h: 72px;
}
* { box-sizing: border-box; }
html { scroll-behavior: auto; overscroll-behavior-y:none; }
body { margin:0; color:var(--ink); background:#fff; font-family:var(--font); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button, input, select, textarea { font:inherit; }
button { color:inherit; }
.container-wide { width:var(--container); margin-inline:auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; left:16px; top:-60px; z-index:9999; background:#fff; color:#000; padding:10px 16px; border:1px solid #ccc; }
.skip-link:focus { top:16px; }
.section-eyebrow { margin:0 0 16px; font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.section-head { display:flex; justify-content:space-between; gap:48px; align-items:flex-end; margin-bottom:64px; }
.section-head h2 { margin:0; font-size:clamp(38px,3.1vw,60px); line-height:1.1; letter-spacing:-.042em; font-weight:700; }
.section-head__desc { max-width:470px; margin:0 0 6px; color:var(--muted); font-size:14px; }
.section-space { padding:150px 0; }
.text-link { display:inline-flex; gap:16px; align-items:center; font-size:12px; font-weight:800; letter-spacing:.08em; white-space:nowrap; }
.text-link span { transition:transform .3s var(--ease), color .3s var(--ease); }
.text-link:hover span { transform:translate(4px,-4px); color:var(--accent); }
.reveal { opacity:0; transform:translateY(28px); transition:opacity 1.05s var(--ease), transform 1.05s var(--ease); }
.reveal.reveal-left { transform:translateX(-34px); }
.reveal.reveal-right { transform:translateX(34px); }
.reveal.is-visible { opacity:1; transform:translate(0,0); }
.reveal-group .reveal:nth-child(2) { transition-delay:.08s; }
.reveal-group .reveal:nth-child(3) { transition-delay:.16s; }
.reveal-group .reveal:nth-child(4) { transition-delay:.24s; }
@media (max-width:1440px) { .section-space{padding:120px 0;} .section-head{margin-bottom:56px;} }
@media (max-width:1200px) { :root { --container:min(100% - 48px, 1180px); } .section-space{padding:108px 0;} }
@media (max-width:760px) { :root { --container:calc(100% - 32px); } body{font-size:14px;} .section-space{padding:80px 0;} .section-head{display:block;margin-bottom:34px;} .section-head__desc{margin-top:18px;font-size:13px;line-height:1.7;} .section-head h2{font-size:clamp(28px,8.5vw,36px);line-height:1.13;letter-spacing:-.038em;} .section-eyebrow{margin-bottom:12px;font-size:10px;} } 
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
    .reveal { opacity:1 !important; transform:none !important; }
}

/* Smooth-scroll compatibility layer */
html.lenis, html.lenis body { height:auto; }
html.lenis.lenis-smooth, html.has-inertia-scroll, html.has-force-smooth { scroll-behavior:auto !important; }
html.lenis.lenis-stopped { overflow:clip; }
html.lenis.lenis-smooth iframe { pointer-events:none; }

.container { width:var(--container-normal); margin-inline:auto; }
body { letter-spacing:-.02em; }
body.subpage-body { background:#fff; }
.brand-kicker { color:var(--brand); font-weight:800; letter-spacing:.12em; font-size:11px; }
.btn-rns { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:0 24px; border-radius:7px; border:1px solid var(--brand); background:var(--brand); color:#fff; font-weight:700; transition:.28s var(--ease); cursor:pointer; }
.btn-rns:hover { background:var(--brand-strong); border-color:var(--brand-strong); transform:translateY(-2px); }
.btn-rns--outline { background:#fff; color:var(--brand-deep); border-color:var(--line-strong); }
.btn-rns--outline:hover { background:var(--brand-20); color:var(--brand-deep); border-color:var(--brand); }
.form-control { width:100%; min-height:52px; border:1px solid var(--line); border-radius:7px; background:#fff; padding:12px 14px; color:var(--text); outline:none; }
.form-control:focus { border-color:var(--brand); box-shadow:0 0 0 4px rgba(69,109,140,.10); }
textarea.form-control { min-height:150px; resize:vertical; }
.form-label { display:block; margin-bottom:8px; color:var(--navy); font-weight:700; font-size:14px; }
.form-help { margin-top:7px; color:var(--text-light,#788897); font-size:12px; }


/* =========================================================
   RNS SUBPAGE UX/UI V1 · 2026-09-09
   Global Color & Motion Specification
   ========================================================= */
:root{
    /* Existing RNS brand spectrum */
    --brand-deep:#173B59;
    --brand-strong:#284F70;
    --brand-100:#456D8C;
    --brand-80:#7897AE;
    --brand-60:#AEC4D3;
    --brand-40:#D6E1EA;
    --brand-20:#EEF2F6;
    --brand-soft:#EAF2F8;
    --brand-pale:#F5F9FC;
    --white:#FFFFFF;

    /* UX/UI V1 complementary point colors — limited use */
    --accent-orange:#FFBC60;
    --accent-sand:#FFE6BD;
}

/* Requested short, responsive scroll reveal */
.scroll-fade-in{
    opacity:0;
    transform:translateY(15px);
    transition:
        transform .35s cubic-bezier(.16,1,.3,1),
        opacity .35s cubic-bezier(.16,1,.3,1);
    will-change:opacity,transform;
}
.scroll-fade-in.is-visible{
    opacity:1;
    transform:translateY(0);
}

/* Existing reveal components on subpages follow the same curve */
.subpage-body .reveal{
    transform:translateY(15px);
    transition:
        transform .35s cubic-bezier(.16,1,.3,1),
        opacity .35s cubic-bezier(.16,1,.3,1);
}
.subpage-body .reveal.reveal-left{transform:translateX(-15px)}
.subpage-body .reveal.reveal-right{transform:translateX(15px)}
.subpage-body .reveal.is-visible{transform:translate(0,0)}

/* Form focus system */
.subpage-body .form-control:focus,
.subpage-body input:focus,
.subpage-body select:focus,
.subpage-body textarea:focus{
    border-color:var(--brand-100);
    box-shadow:0 0 0 3px rgba(69,109,140,.15);
    outline:none;
}

/* Accent utility classes for page-specific markup */
.sand-bg{
    display:inline;
    padding:2px 4px;
    border-radius:3px;
    color:inherit;
    background:linear-gradient(transparent 12%,var(--accent-sand) 12%,var(--accent-sand) 88%,transparent 88%);
    box-decoration-break:clone;
    -webkit-box-decoration-break:clone;
}
.ux-keyword{
    color:var(--brand-deep);
    font-weight:800;
    border-bottom:3px solid var(--accent-orange);
}
.ux-status-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:4px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
    line-height:1;
}
.ux-status-badge.is-open{
    color:var(--brand-deep);
    background:var(--accent-sand);
}
.ux-status-badge.is-closed{
    color:var(--brand-80);
    background:var(--brand-20);
}

/* Job pages: requested primary action emphasis */
.page-301 .btn-rns,
.page-302 .btn-rns,
.page-303 .btn-rns,
.page-304 .btn-rns,
.page-305 .btn-rns{
    border-color:var(--accent-orange);
    background:var(--accent-orange);
    color:var(--brand-deep);
    font-weight:700;
}
.page-301 .btn-rns:hover,
.page-302 .btn-rns:hover,
.page-303 .btn-rns:hover,
.page-304 .btn-rns:hover,
.page-305 .btn-rns:hover{
    border-color:#FFAA33;
    background:#FFAA33;
}

@media(prefers-reduced-motion:reduce){
    .scroll-fade-in{
        opacity:1!important;
        transform:none!important;
        transition:none!important;
    }
}


/* =========================================================
   Mobile Scroll Reveal OFF
   760px 이하에서는 스크롤 등장 애니메이션을 사용하지 않음
   ========================================================= */
@media (max-width: 760px) {
    .scroll-fade-in,
    .scroll-fade-in.is-visible,
    .subpage-body .reveal,
    .subpage-body .reveal.reveal-left,
    .subpage-body .reveal.reveal-right,
    .subpage-body .reveal.is-visible {
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
        will-change: auto !important;
    }
}

/* =========================================================
   RNS SUBPAGE PC CONTENT WIDTH 1360
   메인(index.php)과 동일하게 공개 서브페이지의 기준 콘텐츠 폭을
   PC(1081px 이상)에서 1360px로 통일합니다.
   태블릿/모바일은 기존 반응형 폭을 그대로 유지합니다.
   ========================================================= */
@media (min-width:1081px){
    :root{
        --container-normal:min(1360px, calc(100vw - 64px));
    }
}
