/* RNSh4 palette sync · 2026-10-01 */
:root{--rnsh4-ink:#152033;--rnsh4-muted:#6b7788;--rnsh4-brand:#416a87;--rnsh4-brand-dark:#163f68;--rnsh4-mint:#25c9ba;--rnsh4-mint-deep:#0da99e;--rnsh4-blue:#258cf0;--rnsh4-line:#e7edf2;--rnsh4-soft:#f7fafb;}
/*
 * 회사소개 > 연혁 · 2026-09-14
 * PC: 왼쪽 큰 연도 고정 / 오른쪽 월별 연혁 스크롤
 * Mobile: 기존 사이트 헤더 아래에 현재 연도 고정
 * 적용 범위는 .page-103의 연혁 섹션으로 한정합니다.
 */
.page-103 .rns-history {
    --history-navy: #152033;
    --history-blue: #416a87;
    --history-text: #5f6f7f;
    --history-muted: #6b7788;
    --history-line: #e7edf2;
    --history-header-bottom: 72px;
    --history-stick-top: max(calc(var(--history-header-bottom) + 64px), 28vh);
    padding: 82px 0 104px;
    background: #ffffff;
    /* 공통 section 등장 효과가 긴 연혁 전체를 숨기거나 sticky에 영향을 주지 않도록 합니다. */
    opacity: 1;
    transform: none;
    will-change: auto;
}

.page-103 .rns-history__head { margin: 0 auto 86px; text-align: center; }
.page-103 .rns-history__eyebrow {
    margin: 0 0 13px;
    color: var(--history-blue);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .16em;
}
.page-103 .rns-history__head h2 {
    margin: 0;
    color: var(--history-navy);
    font-size: clamp(34px, 3.1vw, 48px);
    font-weight: 760;
    line-height: 1.2;
    letter-spacing: -.045em;
    word-break: keep-all;
}
.page-103 .rns-history__desc {
    margin: 18px 0 0;
    color: var(--history-muted);
    font-size: 14px;
    line-height: 1.75;
    word-break: keep-all;
}
.page-103 .rns-history__timeline { position: relative; width: 100%; }
.page-103 .rns-history--enhanced .rns-history__timeline {
    display: grid;
    grid-template-columns: minmax(0, 38fr) minmax(0, 62fr);
    align-items: start;
}
.page-103 .rns-history__sticky {
    position: sticky;
    top: var(--history-stick-top);
    align-self: start;
    min-width: 0;
    padding: 0 34px 24px 0;
}
.page-103 .rns-history__sticky[hidden] { display: none; }
.page-103 .rns-history__current-year {
    display: block;
    color: var(--history-navy);
    font-size: clamp(80px, 11.5vw, 180px);
    font-weight: 800;
    line-height: .98;
    letter-spacing: -.065em;
    font-variant-numeric: tabular-nums;
}
.page-103 .rns-history__nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.page-103 .rns-history__nav-button {
    appearance: none;
    min-height: 44px;
    margin: 0;
    padding: 10px 14px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--history-muted);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    cursor: pointer;
    transition: color .18s ease, background .18s ease;
}
.page-103 .rns-history__nav-button:hover { background: #eefcf9; color: var(--history-navy); }
.page-103 .rns-history__nav-button[aria-pressed="true"] { background: #edf6ff; color: var(--history-navy); font-weight: 800; }
.page-103 .rns-history__nav-button:focus-visible { outline: 2px solid var(--history-blue); outline-offset: 4px; }
.page-103 .rns-history__list { min-width: 0; }
.page-103 .rns-history__row {
    position: relative;
    min-height: 360px;
    padding: 62px 0 76px;
    border-bottom: 1px solid var(--history-line);
    scroll-margin-top: calc(var(--history-header-bottom) + 170px);
}
.page-103 .rns-history__row:first-child { padding-top: 8px; }
.page-103 .rns-history--enhanced .rns-history__row:last-child {
    min-height: max(400px, calc(100vh - var(--history-stick-top)));
}
.page-103 .rns-history__row:focus { outline: none; }
.page-103 .rns-history__row:focus-visible { outline: 2px solid var(--history-blue); outline-offset: 10px; }
.page-103 .rns-history__year-title {
    margin: 0 0 28px;
    color: var(--history-navy);
    font-size: 44px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.045em;
}
/* 서버에서 출력한 연도별 제목은 보조기기와 스크립트 미실행 환경에 남겨둡니다. */
.page-103 .rns-history--enhanced .rns-history__year-title {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
.page-103 .rns-history__items { display: grid; gap: 9px; min-width: 0; margin: 0; padding: 0; list-style: none; }
.page-103 .rns-history__entry { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: start; gap: 20px; min-width: 0; }
.page-103 .rns-history__entry--month:not(:first-child) { margin-top: 27px; }
.page-103 .rns-history__month {
    color: var(--history-blue);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.8;
    font-variant-numeric: tabular-nums;
}
.page-103 .rns-history__entry p {
    margin: 0;
    color: var(--history-text);
    font-size: clamp(16px, 1.3vw, 19px);
    font-weight: 450;
    line-height: 1.8;
    letter-spacing: -.025em;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
    .page-103 .rns-history { padding: 72px 0 92px; }
    .page-103 .rns-history__head { margin-bottom: 64px; }
    .page-103 .rns-history__sticky { padding-right: 24px; }
    .page-103 .rns-history__entry { gap: 14px; }
}

@media (max-width: 760px) {
    .page-103 .rns-history { --history-stick-top: var(--history-header-bottom); padding: 58px 0 72px; }
    .page-103 .rns-history__head { margin-bottom: 34px; text-align: left; }
    .page-103 .rns-history__eyebrow { font-size: 10px; }
    .page-103 .rns-history__head h2 { font-size: 31px; }
    .page-103 .rns-history__desc { margin-top: 14px; font-size: 13px; }
    .page-103 .rns-history--enhanced .rns-history__timeline { display: block; }
    .page-103 .rns-history__sticky {
        z-index: 20;
        padding: 18px 0 12px;
        border-bottom: 1px solid var(--history-line);
        background: #f7fafb;
    }
    .page-103 .rns-history__current-year { font-size: 68px; letter-spacing: -.06em; }
    .page-103 .rns-history__nav { flex-wrap: nowrap; gap: 6px; margin-top: 10px; overflow-x: auto; }
    .page-103 .rns-history__nav-button { flex: 0 0 auto; padding: 10px 13px; font-size: 12px; }
    .page-103 .rns-history__row, .page-103 .rns-history__row:first-child { min-height: 290px; padding: 36px 0 48px; }
    .page-103 .rns-history--enhanced .rns-history__row:last-child { min-height: max(340px, calc(100svh - var(--history-header-bottom) - 175px)); }
    .page-103 .rns-history__items { gap: 9px; }
    .page-103 .rns-history__entry { grid-template-columns: 26px minmax(0, 1fr); gap: 12px; }
    .page-103 .rns-history__entry--month:not(:first-child) { margin-top: 21px; }
    .page-103 .rns-history__month { font-size: 15px; }
    .page-103 .rns-history__entry p { font-size: 15px; line-height: 1.8; }
}

@media (prefers-reduced-motion: reduce) {
    .page-103 .rns-history__nav-button { transition: none; }
}

@media print {
    .page-103 .rns-history__sticky { display: none; }
    .page-103 .rns-history--enhanced .rns-history__timeline { display: block; }
    .page-103 .rns-history .rns-history__row { min-height: 0; padding: 24px 0; break-inside: avoid; }
    .page-103 .rns-history--enhanced .rns-history__year-title {
        position: static;
        width: auto;
        height: auto;
        margin: 0 0 20px;
        overflow: visible;
        clip-path: none;
        white-space: normal;
        font-size: 32px;
    }
}


/* =========================================================
   V22 — HISTORY COLOR SYNC
   메인/101/102와 동일한 웜 크림·로즈 계열로 색상을 통일한다.
   연혁 데이터와 sticky/scroll 구조는 변경하지 않는다.
   ========================================================= */
.page-103 .rns-history{
  background:linear-gradient(180deg,#ffffff 0%,#f7fafb 100%);
}
.page-103 .rns-history__eyebrow{color:#163f68}
.page-103 .rns-history__head h2{color:#152033}
.page-103 .rns-history__desc{color:#416a87}
.page-103 .rns-history__current-year{color:#163f68}
.page-103 .rns-history__nav-button{color:#6b7788;border-radius:999px}
.page-103 .rns-history__nav-button:hover{background:#eefcf9;color:#0da99e}
.page-103 .rns-history__nav-button[aria-pressed="true"]{background:#edf6ff;color:#0da99e}
.page-103 .rns-history__nav-button:focus-visible{outline-color:#416a87}
.page-103 .rns-history__row:focus-visible{outline-color:#416a87}
.page-103 .rns-history__year-title{color:#152033}
.page-103 .rns-history__month{color:#416a87}
.page-103 .rns-history__entry p{color:#5f6f7f}

/* 103 sub hero / local nav */
.page-103 .sub-hero{
  background:linear-gradient(120deg,#f7fafb 0%,#eefcf9 58%,#f6f7f3 100%);
  border-bottom:1px solid #e7edf2;
}
.page-103 .sub-breadcrumb{color:#6b7788}
.page-103 .sub-breadcrumb a:hover{color:#416a87}
.page-103 .sub-breadcrumb i{color:#b9cddd}
.page-103 .sub-breadcrumb strong{color:#416a87}
.page-103 .sub-hero__category{color:#163f68}
.page-103 .sub-hero h1{color:#152033}
.page-103 .sub-hero__desc{color:#6b7788}
.page-103 .local-nav{background:#f7fafb;border-bottom:1px solid #e7edf2}
.page-103 .local-nav a{color:#416a87;border-bottom-width:3px}
.page-103 .local-nav a:hover{color:#163f68}
.page-103 .local-nav a.is-active{color:#416a87;border-bottom-color:#416a87;font-weight:750}

/* Bottom consulting CTA / TOP */
.page-103 .footer-cta{
  position:relative;
  overflow:hidden;
  padding:76px 0;
  background:linear-gradient(118deg,#fff8f5 0%,#f7fafb 55%,#f6f4ef 100%);
  border-top:1px solid #edf6ff;
}
.page-103 .footer-cta .container{position:relative;z-index:1}
.page-103 .footer-cta p{color:#163f68;font-weight:800;letter-spacing:.13em}
.page-103 .footer-cta h2{color:#152033;font-weight:780;letter-spacing:-.05em}
.page-103 .footer-cta__actions a{
  min-height:58px;
  padding:0 30px;
  border-radius:12px;
  background:#416a87;
  color:#fff;
  border:1px solid #416a87;
  box-shadow:0 12px 28px rgba(142,70,91,.14);
  font-size:14px;
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.page-103 .footer-cta__actions a:hover,
.page-103 .footer-cta__actions a:focus-visible{
  background:#0da99e;
  border-color:#0da99e;
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(142,70,91,.2);
}
.page-103 .top-button{
  background:#5f6f7f;
  border-color:rgba(255,255,255,.62);
  color:#fff;
  box-shadow:0 10px 28px rgba(72,48,59,.18);
}
.page-103 .top-button:hover,
.page-103 .top-button:focus-visible{background:#416a87;border-color:#416a87}

@media(max-width:760px){
  .page-103 .rns-history__sticky{background:#f7fafb}
  .page-103 .footer-cta{padding:58px 0}
  .page-103 .footer-cta h2{font-size:clamp(28px,8vw,38px);line-height:1.35}
  .page-103 .footer-cta__actions a{width:100%;max-width:320px;justify-content:center;min-height:54px}
}
