@charset "utf-8";

/* ============================================================
   폰트
   ============================================================ */
@font-face {
  font-family: "Pretendard";
  src: url("assets/fonts/PretendardVariable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond";
  src: url("assets/fonts/CormorantGaramond-latin-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
   기본
   ============================================================ */
:root {
  --navy: #091932;
  --navy-mid: #123467;
  --blue: #4070e8;
  --link: #00288c;
  --gray: #757575;
  --gray-light: #959595;
  --bg-gray: #f7f7f7;
  --contact-bg: #e5eaed;
  --contact-layer: #ccd7dd;
  --header-h: 57px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  padding-top: var(--header-h);
  font-family: "Pretendard", -apple-system, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: var(--navy);
  background: #fff;
  overflow-x: hidden;
}

h1, h2, h3, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
img { max-width: 100%; display: block; }
input, select, textarea { font: inherit; }

.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;
}

.container {
  width: 100%;
  margin: 0 auto;
  padding: 0 30px;
}

.wordmark {
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: .1em;
  line-height: 1;
  color: #fff;
  border-bottom: 1px solid currentColor;
  padding-bottom: 5px;
  display: inline-block;
}

/* 공통 + 아이콘 */
.plus {
  position: relative;
  display: inline-block;
  width: 18px; height: 18px;
  margin-left: 12px;
  vertical-align: middle;
  flex: none;
}
.plus::before, .plus::after {
  content: ""; position: absolute; background: currentColor;
}
.plus::before { left: 0; top: 50%; width: 100%; height: 1px; margin-top: -.5px; }
.plus::after { top: 0; left: 50%; height: 100%; width: 1px; margin-left: -.5px; }

/* 섹션 제목 */
.section-title { padding: 0 0 40px; }
.section-title h2 {
  font-size: 26px;
  font-weight: 700;
  line-height: 31.2px;
  text-align: center;
}
.section-title--light h2 { color: #fff; }

/* ============================================================
   헤더
   ============================================================ */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 60;
  background: var(--navy);
}
.nav {
  display: flex;
  align-items: center;
  height: var(--header-h);
  padding: 0 30px;
}
.nav__brand { flex: none; }
.nav__brand .wordmark { font-size: 25px; padding-bottom: 4px; }

.nav__menus { display: none; }

.nav__burger {
  margin-left: auto;
  width: 20px; height: var(--header-h);
  display: flex; flex-direction: column; justify-content: center; gap: 5px;
}
.nav__burger span {
  display: block; width: 20px; height: 2px; background: #fff;
  transition: transform .25s, opacity .2s;
}
.nav__burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__burger.is-open span:nth-child(2) { opacity: 0; }
.nav__burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================================
   모바일 메뉴
   ============================================================ */
.mobile-menu {
  position: fixed;
  inset: var(--header-h) 0 0;
  z-index: 55;
  background: #fbfbfb;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.mobile-menu[hidden] { display: none; }
.mobile-menu__list { border-top: 1px solid #e4e4e4; }
.mobile-menu__item { border-bottom: 1px solid #e4e4e4; }
.mobile-menu__row {
  position: relative;
  display: block;
  width: 100%;
  padding: 16px 45px;
  text-align: center;
  font-size: 17px;
  font-weight: 600;
  color: var(--navy);
}
.mobile-menu__row .plus {
  position: absolute; right: 30px; top: 50%; margin: -9px 0 0 0;
  transition: transform .25s;
}
.mobile-menu__row[aria-expanded="true"] .plus { transform: rotate(45deg); }
.mobile-menu__sub { display: none; padding: 4px 0 14px; background: #f2f4f6; }
.mobile-menu__item.is-open .mobile-menu__sub { display: block; }
.mobile-menu__sub a {
  display: block; padding: 9px 45px; text-align: center;
  font-size: 15px; color: var(--gray);
}
.mobile-menu__chips {
  margin-top: auto;
  padding: 24px 0;
  display: flex; justify-content: center; gap: 12px;
}
.mobile-menu__chips a {
  min-width: 62px; padding: 9px 14px;
  border: 1px solid var(--navy);
  font-size: 13px; font-weight: 500; text-align: center;
}
.mobile-menu__lang {
  background: var(--navy);
  color: #fff;
  padding: 14px 0;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
}
.mobile-menu__lang span { margin: 0 10px; color: rgba(255, 255, 255, .35); }
.mobile-menu__lang a { color: rgba(255, 255, 255, .45); }
.mobile-menu__lang a.is-on { color: #fff; }

body.is-menu-open { overflow: hidden; }

/* ============================================================
   팝업
   ============================================================ */
.popup-wrap {
  position: fixed;
  top: calc(var(--header-h) + 20px);
  left: 0; right: 0;
  z-index: 70;
  display: flex;
  justify-content: center;
  padding: 0 15px;
}
.popup-wrap[hidden] { display: none; }
.popup {
  width: 100%;
  max-width: 700px;
  background: var(--navy);
  padding: 8px 8px 0;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .25);
}
.popup__body {
  background: #fff;
  padding: 20px 22px 24px;
  text-align: center;
  font-size: 12px;
  line-height: 1.75;
  color: #222;
}
.popup__brand { font-size: 15px; font-weight: 700; }
.popup__title {
  font-size: 21px; font-weight: 700;
  padding-bottom: 10px;
  border-bottom: 1px solid #333;
  margin-bottom: 12px;
}
.popup__title em { font-style: normal; color: #e0453c; }
.popup__lead { margin-bottom: 10px; }
.popup__cases {
  background: #fbf6ba;
  padding: 8px 10px;
  margin-bottom: 12px;
  text-align: left;
  font-weight: 700;
}
.popup__cases li { position: relative; padding-left: 20px; }
.popup__cases li::before { content: "✓"; position: absolute; left: 4px; }
.popup__body p + p { margin-top: 10px; }
.popup__footer {
  display: flex;
  background: var(--navy-mid);
  margin: 8px -8px 0;
}
.popup__btn {
  flex: 1;
  padding: 9px 0;
  font-size: 12px;
  font-weight: 700;
  color: var(--contact-bg);
}
.popup__btn:hover { text-decoration: underline; }

/* ============================================================
   퀵 내비 / 상담 플로팅
   ============================================================ */
.quick-nav { display: none; }

.float-box {
  position: fixed;
  right: 10px; bottom: 14px;
  z-index: 50;
  width: 74px; height: 55px;
  border-radius: 34px;
  background: var(--blue);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 18px rgba(9, 25, 50, .25);
}
.float-box__icon svg {
  width: 26px; height: 23px;
  fill: none; stroke: #fff; stroke-width: 1.6;
  stroke-linecap: round; stroke-linejoin: round;
}
.float-box__text { display: none; }

/* ============================================================
   히어로
   ============================================================ */
.sec-1 {
  position: relative;
  height: calc(100vh - var(--header-h));
  overflow: hidden;
  background: #cfe2f2;
}
.sec-1__sky, .sec-1__building {
  position: absolute; inset: 0;
}
.sec-1__sky {
  background-image: url("assets/hero-sky.jpg");
  background-repeat: repeat-x;
  background-size: auto 100%;
  background-position: 0 0;
  animation: sky-pan 90s linear infinite alternate;
}
@keyframes sky-pan {
  from { background-position-x: 0%; }
  to { background-position-x: 100%; }
}
.sec-1__building {
  background-image: url("assets/hero-building.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 100%;
}
.sec-1 .container { position: relative; z-index: 2; }
.sec-1__content { padding-top: 135px; }
.sec-1__title {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.01em;
}
.sec-1__desc {
  margin-top: 24px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.48;
}
.sec-1__search {
  position: relative;
  margin-top: 46px;
  max-width: 500px;
  height: 58px;
  background: #fff;
  display: flex;
  align-items: center;
}
.sec-1__search input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  padding: 0 0 0 20px;
  font-size: 16px;
  font-weight: 300;
  color: var(--navy);
  background: none;
}
.sec-1__search input::placeholder { color: #8d8d8d; }
.sec-1__search input:focus { outline: 2px solid var(--blue); outline-offset: -2px; }
.sec-1__search button {
  width: 44px; height: 44px; margin-right: 7px;
  display: flex; align-items: center; justify-content: center;
}
.sec-1__search svg {
  width: 22px; height: 22px;
  fill: none; stroke: var(--navy); stroke-width: 1.7; stroke-linecap: round;
}
.sec-1__arrow {
  position: absolute;
  left: 50%; bottom: 40px;
  width: 34px; height: 60px;
  margin-left: -17px;
  z-index: 2;
  animation: arrow-bounce 1s .5s infinite;
}
.sec-1__arrow svg {
  width: 100%; height: 100%;
  fill: none; stroke: #fff; stroke-width: 2;
}
@keyframes arrow-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(9px); }
}

/* ============================================================
   수상
   ============================================================ */
.sec-2 {
  background: var(--bg-gray);
  padding: 25px 0 41px;
}
.awards { overflow: hidden; }
.awards__track {
  display: flex;
  align-items: flex-start;
  column-gap: 28px;
  transition: transform .6s ease;
}
.awards__slide { flex: none; width: 185px; }
.awards__slide svg { width: 100%; height: auto; display: block; }

/* ============================================================
   업무 분야
   ============================================================ */
.sec-3 {
  position: relative;
  overflow: hidden;
  background: #101a22 url("assets/expertise-bg.jpg") center / cover no-repeat;
  padding: 31px 0 45px;
}
.sec-3::before {
  content: ""; position: absolute; inset: 0;
  background: rgba(10, 20, 32, .55);
}
.sec-3 .container { position: relative; z-index: 2; }
.expertise {
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255, 255, 255, .45);
}
.expertise > li { padding: 15px 19px; }
.expertise > li + li { border-top: 1px solid rgba(255, 255, 255, .45); }
.expertise__box {
  display: flex;
  flex-direction: column;
  width: 100%;
  color: #fff;
}
.expertise__title {
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
}
.expertise__desc {
  display: block;
  padding-top: 19px;
  font-size: 14px;
  font-weight: 500;
  line-height: 23.8px;
}
.expertise__desc span { display: block; }
.expertise__desc span + span { margin-top: 24px; }
.expertise__more {
  margin-top: 3px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-size: 12px;
  line-height: 18px;
  font-weight: 600;
}
.expertise__more .plus { width: 11px; height: 11px; margin-left: 9px; }
.expertise__box:hover .expertise__more { text-decoration: underline; }

/* ============================================================
   법인 소식
   ============================================================ */
.sec-4 {
  overflow: hidden;
  background: var(--bg-gray);
  padding: 56px 0 103px;
}
.news { position: relative; }
.news__viewport { overflow: hidden; }
.news__track {
  display: flex;
  align-items: flex-end;
  column-gap: 20px;
  transition: transform .5s ease;
}
.news__slide { flex: none; width: calc(100vw - 40px); }
.news__card {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  background-color: #dfe3e7;
  background-size: cover;
  background-position: center;
  transition: transform .5s ease;
}
.news__content {
  height: 505px;
  margin: 30px 0 0 30px;
  background: #fff;
  padding: 15px;
  display: flex;
  flex-direction: column;
}
.news__title {
  font-size: 16px;
  font-weight: 700;
  line-height: 25px;
  color: var(--navy);
}
.news__summary {
  margin-top: 10px;
  font-size: 13px;
  line-height: 25px;
  color: var(--gray);
  overflow: hidden;
}
.news__summary p + p { margin-top: 12px; }
.news__more {
  margin-top: auto;
  padding-top: 16px;
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 600;
  color: var(--link);
}
.news__more .plus { width: 13px; height: 13px; margin-left: 10px; }
/* 원본 소식 카드는 제목·본문이 링크 밑줄과 함께 표시된다 */
.news__link-area { text-decoration: underline; text-underline-offset: 3px; }
.news__arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 34px; height: 46px;
  margin-top: -23px;
  display: flex; align-items: center; justify-content: center;
}
.news__arrow svg {
  width: 18px; height: 30px;
  fill: none; stroke: var(--navy); stroke-width: 4;
  stroke-linecap: round; stroke-linejoin: round;
}
.news__arrow--prev { left: 4px; }
.news__arrow--next { right: 4px; }

/* ============================================================
   자료실
   ============================================================ */
.sec-5 {
  position: relative;
  overflow: hidden;
  background: #18202a url("assets/insight-bg.jpg") center / cover no-repeat;
  padding: 31px 0 113px;
}
.sec-5::before {
  content: ""; position: absolute; inset: 0;
  background: rgba(0, 0, 0, .4);
}
.sec-5 .container, .sec-5 .resource { position: relative; z-index: 2; }
.resource { position: relative; }
.resource__viewport { overflow: hidden; }
.resource__track {
  display: flex;
  column-gap: 30px;
  transition: transform .5s ease;
}
.resource__slide { flex: none; width: calc(100vw - 60px); height: 321px; }
.resource__card {
  background: #fff;
  padding: 24px 58px 27px 20px;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.resource__meta {
  font-size: 13px;
  color: var(--gray);
}
.resource__title {
  display: block;
  margin-top: 6px;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  color: var(--navy);
}
.resource__title:hover { text-decoration: underline; }
.resource__foot {
  margin-top: auto;
  padding-top: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  font-weight: 600;
}
.resource__more { display: flex; align-items: center; }
.resource__more .plus { width: 11px; height: 11px; margin-left: 8px; }
.resource__pdf { display: flex; align-items: center; gap: 6px; }
.resource__pdf svg {
  width: 12px; height: 12px;
  fill: none; stroke: currentColor; stroke-width: 1.4;
  stroke-linecap: round; stroke-linejoin: round;
}
.resource__arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 33px; height: 33px;
  margin-top: -16.5px;
  border-radius: 50%;
  background: var(--navy-mid);
  display: flex; align-items: center; justify-content: center;
}
.resource__arrow svg {
  width: 9px; height: 15px;
  fill: none; stroke: #fff; stroke-width: 5;
  stroke-linecap: round; stroke-linejoin: round;
}
.resource__arrow--prev { left: 16px; }
.resource__arrow--next { right: 16px; }

/* ============================================================
   상담 신청
   ============================================================ */
.sec-6 {
  position: relative;
  background: var(--contact-bg);
  padding: 31px 0 103px;
}
.sec-6__layer {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 282px;
  background: var(--contact-layer);
}
.sec-6 .container { position: relative; z-index: 2; }

.contact {
  background: #fff;
  padding: 25px;
}
.form-row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.form-col { width: 100%; padding: 0 15px 25px; }
.field { margin-bottom: 25px; }
.form-col .field { margin-bottom: 0; }
.field__label {
  display: block;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
}
.field__input {
  display: block;
  width: 100%;
  height: 52px;
  padding: 0 12px;
  border: 1px solid #d6d6d6;
  border-radius: 0;
  background: #fff;
  font-size: 16px;
  color: #495057;
  margin-top: 5px;
}
.field__input:focus { outline: 2px solid var(--blue); outline-offset: -2px; }
.field__input--select {
  color: var(--gray-light);
  font-size: 15px;
  font-weight: 500;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--gray-light) 50%), linear-gradient(135deg, var(--gray-light) 50%, transparent 50%);
  background-position: calc(100% - 20px) 24px, calc(100% - 13px) 24px;
  background-size: 7px 7px, 7px 7px;
  background-repeat: no-repeat;
}
.field__input--area {
  height: 180px;
  padding: 14px 12px;
  resize: vertical;
  line-height: 1.5;
}
.field__input::placeholder, .field__input--area::placeholder { color: var(--gray-light); }

.filebox {
  position: relative;
  height: 52px;
  margin-top: 5px;
  border: 1px solid #d6d6d6;
  display: flex;
  align-items: center;
  padding: 0 12px;
}
.filebox__text { font-size: 15px; color: var(--gray); }
.filebox__icon {
  width: 20px; height: 10px; margin-left: auto;
  fill: none; stroke: var(--navy); stroke-width: 1.3; stroke-linecap: round;
}
.filebox__input {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  opacity: 0;
  cursor: pointer;
}
.filebox:focus-within { outline: 2px solid var(--blue); outline-offset: -2px; }

.form-row--policy { margin-top: 4px; }
.policy { border: 1px solid #d6d6d6; margin-bottom: 12px; }
.policy__head {
  display: flex;
  align-items: center;
  min-height: 50px;
  padding: 6px 0 6px 14px;
}
.policy__check { position: relative; display: flex; flex: none; }
.policy__check input {
  position: absolute; opacity: 0; width: 27px; height: 27px; margin: 0; cursor: pointer;
}
.policy__check .tick {
  width: 27px; height: 27px;
  border: 1px solid #cfcfcf;
  border-radius: 50%;
  position: relative;
}
.policy__check .tick::after {
  content: "";
  position: absolute;
  left: 8px; top: 7px;
  width: 9px; height: 5px;
  border-left: 1.5px solid #cfcfcf;
  border-bottom: 1.5px solid #cfcfcf;
  transform: rotate(-45deg);
}
.policy__check input:checked + .tick { border-color: var(--blue); background: var(--blue); }
.policy__check input:checked + .tick::after { border-color: #fff; }
.policy__check input:focus-visible + .tick { outline: 2px solid var(--blue); outline-offset: 2px; }
.policy__text {
  flex: 1;
  padding: 0 10px 0 15px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--gray-light);
}
.policy__toggle {
  flex: none;
  width: 45px; height: 50px;
  position: relative;
}
.policy__toggle::before {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  width: 9px; height: 9px;
  margin: -6px 0 0 -5px;
  border-right: 1.5px solid var(--navy);
  border-bottom: 1.5px solid var(--navy);
  transform: rotate(45deg);
  transition: transform .25s;
}
.policy__toggle[aria-expanded="true"]::before { transform: rotate(-135deg); margin-top: -2px; }
.policy__body {
  display: none;
  padding: 4px 17px 16px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--gray-light);
}
.policy.is-open .policy__body { display: block; }
.policy__body p + p { margin-top: 8px; }

.contact__send {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.captcha {
  width: 304px;
  max-width: 100%;
  height: 78px;
  border: 1px solid #d3d3d3;
  border-radius: 3px;
  background: #f9f9f9;
  display: flex;
  align-items: center;
  padding: 0 14px;
  gap: 12px;
}
.captcha__box {
  width: 28px; height: 28px;
  border: 2px solid #c1c1c1;
  background: #fff;
  border-radius: 2px;
  flex: none;
}
.captcha__label { font-size: 14px; color: #000; }
.captcha__brand { margin-left: auto; font-size: 8px; color: #9b9b9b; }
.btn-send {
  width: 103px; height: 43px;
  background: var(--link);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
}
.btn-send:hover { background: #001f6f; }

/* ============================================================
   푸터
   ============================================================ */
.site-footer {
  background: var(--navy);
  color: rgba(255, 255, 255, .72);
  padding: 40px 0;
  font-size: 13px;
  line-height: 1.62;
}
.site-footer .container { padding: 0 45px; }
.site-footer__selects {
  display: flex;
  gap: 20px;
  padding-bottom: 30px;
}
.site-footer__selects select {
  flex: 1;
  min-width: 0;
  height: 32px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .4);
  color: #fff;
  font-size: 13px;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%);
  background-position: calc(100% - 12px) 14px, calc(100% - 7px) 14px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.site-footer__selects option { color: #222; }
.site-footer__logo { padding: 0 0 30px; }
.site-footer__logo .wordmark { font-size: 26px; border-bottom-width: 1px; }
.wordmark__ko {
  display: block;
  margin-top: 7px;
  font-size: 10px;
  letter-spacing: .18em;
  color: rgba(255, 255, 255, .8);
}
.site-footer__name { color: #fff; margin-bottom: 8px; }
.site-footer__tel { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.site-footer__sns { margin-top: 20px; display: flex; align-items: center; gap: 18px; }
.site-footer__sns svg {
  width: 20px; height: 20px;
  fill: rgba(255, 255, 255, .8);
  stroke: none;
}
.site-footer__sns svg text { font-size: 7px; fill: var(--navy); font-weight: 700; }
.site-footer__sns a:nth-child(2) svg { fill: none; stroke: rgba(255, 255, 255, .8); stroke-width: 1.6; }
.site-footer__brochure {
  display: flex; align-items: center; gap: 8px;
  margin-left: 8px;
  font-size: 15px;
  color: #fff;
}
.site-footer__brochure svg {
  width: 14px; height: 14px;
  fill: none; stroke: #fff; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round;
}

/* ============================================================
   576px 이상
   ============================================================ */
@media (min-width: 576px) {
  .container { max-width: 540px; padding: 0 15px; }
  .site-footer .container { padding: 0 15px; }
  .section-title { padding: 27px 0; }
  .section-title h2 { font-size: 36px; line-height: 43.2px; }
  .sec-1__title { font-size: min(40px, 6.1vw); }

  .news__slide { width: 510px; }
  .resource__slide { width: 510px; }
}

/* ============================================================
   768px 이상
   ============================================================ */
@media (min-width: 768px) {
  .container { max-width: 720px; }

  .sec-1__content { padding-top: 170px; }
  .sec-1__title { font-size: 50px; line-height: 1.2; }
  .sec-1__desc { margin-top: 34px; font-size: 20px; line-height: 1.48; }
  .sec-1__search { margin-top: 60px; }

  .float-box {
    right: 20px; bottom: 20px;
    width: 98px; height: 74px;
    border-radius: 40px;
  }
  .float-box__icon svg { width: 34px; height: 30px; }

  .sec-2 { padding: 55px 0; }
  .awards__slide { width: 150px; }

  .sec-3 { padding-bottom: 60px; }
  .expertise { flex-direction: row; }
  .expertise > li {
    width: 33.3333%;
    display: flex;
  }
  .expertise > li + li {
    border-top: 0;
    border-left: 1px solid rgba(255, 255, 255, .45);
  }
  .expertise__box { padding: 40px 20px 26px; width: 100%; }
  .expertise__title { font-size: 22px; min-height: 66px; }
  .expertise__desc { margin-top: 20px; font-size: 15px; line-height: 1.7; }
  .expertise__more { margin-top: 26px; font-size: 16px; }

  .news__slide { width: 690px; }
  .news__content { margin: 48px 0 0 69px; padding: 30px 34px 26px; }
  .news__title { font-size: 20px; }
  .news__summary { margin-top: 18px; font-size: 14px; }
  .news__arrow { width: 44px; height: 60px; margin-top: -30px; }
  .news__arrow svg { width: 22px; height: 38px; }

  .resource__slide { width: 690px; height: 439px; }
  .resource__card { padding: 40px 40px 30px; }
  .resource__title { font-size: 21px; }
  .resource__arrow { width: 60px; height: 60px; margin-top: -30px; }

  .contact { padding: 25px 25px 42px; }
  .form-row { margin: 0 -29px; }
  .form-col { width: 33.3333%; padding: 0 29px; }
  .form-col--half { width: 50%; }
  .field, .form-col .field { margin-bottom: 33px; }
  .field__input--area { height: 251px; }
  .contact__send {
    flex-direction: row;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 44px;
  }

  .site-footer { padding: 40px 0 46px; }
  .site-footer__selects { justify-content: flex-end; padding-bottom: 30px; }
  .site-footer__selects select { flex: none; width: 161px; }
  .site-footer__main { display: flex; gap: 4px; }
  .site-footer__logo { flex: none; width: 118px; padding: 0; }
  .site-footer__info { flex: 1; }
}

/* ============================================================
   992px 이상
   ============================================================ */
@media (min-width: 992px) {
  .news__slide { width: 930px; }
  .news__track { column-gap: 60px; }
  .news__content { padding: 44px 60px 34px; }

  .resource__slide { width: 730px; }
  .resource__track { column-gap: 132px; }
  .resource__card { padding: 50px 53px 34px; }
}

/* ============================================================
   1140px 이상 — 데스크톱 내비게이션
   ============================================================ */
@media (min-width: 1140px) {
  :root { --header-h: 80px; }

  .container { max-width: 960px; }

  .nav { padding: 0 40px; }
  .nav__brand .wordmark { font-size: 27px; padding-bottom: 5px; }
  .nav__burger { display: none; }
  .mobile-menu { display: none !important; }

  .nav__menus {
    display: flex;
    align-items: stretch;
    margin-left: auto;
    height: 100%;
  }
  .nav__item { position: relative; display: flex; align-items: center; }
  .nav__link {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 28px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
  }
  .nav__link:hover { color: #b9c9e6; }
  .nav__sub {
    position: absolute;
    top: 100%; left: 50%;
    width: 205px;
    margin-left: -102px;
    padding: 18px 0 22px;
    background: var(--navy);
    display: none;
  }
  .nav__item:hover > .nav__sub, .nav__item:focus-within > .nav__sub { display: block; }
  .nav__sub a {
    display: block;
    padding: 11px 10px;
    text-align: center;
    font-size: 15px;
    font-weight: 500;
    color: #fff;
  }
  .nav__sub a:hover { color: var(--blue); }

  .nav__item--links { gap: 9px; padding: 0 28px 0 28px; }
  .nav__chip {
    display: flex; align-items: center; justify-content: center;
    width: 67px; height: 36px;
    border: 1px solid rgba(255, 255, 255, .6);
    font-size: 12px; font-weight: 500; color: #fff;
  }
  .nav__chip:hover { background: rgba(255, 255, 255, .12); }

  .nav__item--lang {
    background: var(--navy-mid);
    width: 140px;
    margin-right: -40px;
    justify-content: center;
  }
  .nav__lang {
    display: flex; align-items: center; gap: 8px;
    height: 100%;
    font-size: 16px; font-weight: 600; color: #fff;
  }
  .nav__lang .globe {
    width: 20px; height: 20px;
    fill: none; stroke: #fff; stroke-width: 1.3;
  }
  .nav__lang .caret {
    width: 0; height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #fff;
  }
  .nav__lang-list {
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--navy-mid);
    padding: 12px 0;
    display: none;
  }
  .nav__item--lang:hover .nav__lang-list,
  .nav__item--lang:focus-within .nav__lang-list { display: block; }
  .nav__lang-list a {
    display: block;
    padding: 8px 0;
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    color: rgba(255, 255, 255, .6);
  }
  .nav__lang-list a.is-on, .nav__lang-list a:hover { color: #fff; }

  .float-box {
    right: 60px; bottom: 60px;
    width: 195px; height: 74px;
    border-radius: 37px;
    gap: 16px;
  }
  .float-box__text { display: block; font-size: 17px; }

  .section-title { padding: 27px 0; }
  .section-title h2 {
    position: relative;
    display: inline-block;
    text-align: left;
    padding-right: 100px;
  }
  .section-title h2::after {
    content: "";
    position: absolute;
    right: 0; top: 50%;
    width: 76px; height: 1px;
    background: currentColor;
  }

  .sec-1__content { padding-top: 200px; }
  .sec-1__title { font-size: 50px; line-height: 60px; }
  .sec-1__desc { margin-top: 40px; font-size: 23px; line-height: 34px; }
  .sec-1__search { margin-top: 80px; width: 500px; }
  .sec-1__search input { font-size: 20px; padding-left: 24px; }
  .sec-1__arrow { width: 48px; height: 85px; margin-left: -24px; bottom: 56px; }

  .sec-2 { padding: 65px 0; height: 288px; }
  .awards__track { gap: 28px; }
  .awards__slide { width: 195px; }

  .sec-3 { padding: 0 0 177px; }
  .sec-3 .container { padding-top: 105px; }
  .expertise > li { padding: 100px 0 102px; }
  .expertise__box { padding: 0; width: 259px; margin: 0 auto; }
  .expertise__title { font-size: 30px; line-height: 45px; min-height: 100px; }
  .expertise__desc {
    margin-top: 0;
    height: 280px;
    padding-top: 40px;
    font-size: 18px;
    line-height: 30.6px;
  }
  .expertise__desc span + span { margin-top: 16px; }
  .expertise__more { margin-top: 0; height: 30px; font-size: 20px; line-height: 30px; }
  .expertise__more .plus { width: 18px; height: 18px; margin-left: 32px; }

  .sec-4 { padding: 0 0 177px; }
  .sec-4 .container { padding-top: 105px; }
  .news__viewport { padding-top: 72px; }
  .news__slide.is-active .news__card { transform: translateY(-72px); }
  .news__arrow--prev { left: 60px; }
  .news__arrow--next { right: 60px; }

  .sec-5 { padding: 0 0 177px; }
  .sec-5 .container { padding-top: 105px; }
  .resource { margin-top: 85px; }
  .resource__meta { font-size: 15px; }
  .resource__title { font-size: 23px; line-height: 34.5px; margin-top: 10px; }
  .resource__foot { padding-top: 40px; }
  .resource__arrow { width: 83px; height: 83px; margin-top: -41.5px; }
  .resource__arrow svg { width: 16px; height: 27px; }
  .resource__arrow--prev { left: calc(50% - 465px - 107px); }
  .resource__arrow--next { right: calc(50% - 465px - 107px); }

  .sec-6 { padding: 0 0 176px; }
  .sec-6 .container { padding-top: 105px; }
  .sec-6__layer { height: 336px; }
  .contact { padding: 25px 25px 42px; }
  .form-row--policy { margin-top: 14px; }
  .policy { margin-bottom: 0; }
  .contact__send { margin-top: 30px; min-height: 84px; }
  .field__label { font-size: 16px; }

  .site-footer { padding: 40px 0; }
  .site-footer__main { gap: 4px; }
  .site-footer__logo { width: 118px; padding-top: 12px; }
  .site-footer__info { padding: 12px 0 0; }
  .site-footer__info p { line-height: 20px; }
  .site-footer__name { margin-bottom: 10px; }
  .site-footer__tel { margin-top: 22px; }
  .site-footer__sns { margin-top: 22px; }
}

/* ============================================================
   1280px 이상 — 최대 컨테이너 + 퀵 내비
   ============================================================ */
@media (min-width: 1200px) {
  .news__slide { width: 1110px; }
  .news__track { column-gap: 80px; }
  .news__content { margin: 162px 0 0 184px; }
}

@media (min-width: 1280px) {
  .container { max-width: 1140px; }
  .news__content { margin-left: 230px; }

  .quick-nav {
    display: block;
    position: fixed;
    right: 0; top: 50%;
    transform: translateY(-50%);
    z-index: 40;
  }
  .quick-nav a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 147px;
    height: 45px;
    padding-right: 47px;
    font-size: 18px;
    font-weight: 700;
    color: #b5b5b5;
    transition: color .2s;
  }
  .quick-nav a::after {
    content: "";
    position: absolute;
    right: 0; top: 50%;
    width: 40px; height: 1px;
    background: currentColor;
  }
  .quick-nav a.is-on { color: var(--blue); }

  .resource__arrow--prev { left: calc(50% - 555px - 107px); }
  .resource__arrow--next { right: calc(50% - 555px - 107px); }
}

/* ============================================================
   모션 최소화
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .sec-1__sky { animation: none; }
  .sec-1__arrow { animation: none; }
  .awards__track, .news__track, .resource__track, .news__card { transition: none; }
}
