@charset "UTF-8";
/* 버튼 - content.css, layout.css */
.contents {
  min-height: 300px;
}

/* input */
input[type=text] {
  border-radius: 8px;
}

input[type=file]::file-selector-button {
  padding-left: 12px;
  padding-right: 26px;
  width: 100px;
  height: 30px;
  background: #FFF9E8 url("../images/sub/ico_upload.png") no-repeat center right 12px;
  border: 1px solid #FFA038;
  border-radius: 22px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

input.disabled:-moz-read-only {
  background-color: #D8D8D8;
  border: 1px solid #C6C6C6;
}

input.disabled:read-only {
  background-color: #D8D8D8;
  border: 1px solid #C6C6C6;
}

select.input--disabled:-moz-read-only {
  background-color: #D8D8D8;
  border: 1px solid #C6C6C6;
}

select.input--disabled:read-only {
  background-color: #D8D8D8;
  border: 1px solid #C6C6C6;
}

.checkbox__wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0 80px;
}

.radio__wrap--vert .input--rdo {
  position: relative;
  font-size: 0;
}
.radio__wrap--vert .input--rdo input[type=radio] {
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.radio__wrap--vert .input--rdo input[type=radio]:focus-visible {
  outline: 2px dashed #2e56d8;
  outline-offset: 11px;
}
.radio__wrap--vert .input--rdo input[type=radio].blind {
  position: absolute;
  display: block;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: unset;
}
.radio__wrap--vert .input--rdo input[type=radio]:checked + label .rdo__checkbox {
  border-color: #FFA038;
}
.radio__wrap--vert .input--rdo input[type=radio]:checked + label .rdo__checkbox::before {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background-color: #FFA038;
  border-radius: 50%;
  transition: 0.15s ease-in;
  content: "";
}
.radio__wrap--vert .input--rdo .rdo__checkbox {
  position: relative;
  display: inline-block;
  margin-right: 8px;
  width: 24px;
  height: 24px;
  background-color: #fff;
  border: 1px solid #717171;
  border-radius: 50%;
  vertical-align: middle;
  transition: 0.1s ease-in;
}
.radio__wrap--vert .input--rdo label {
  font-size: 17px;
  vertical-align: middle;
  cursor: pointer;
}
.radio__wrap--vert .input--rdo + .input--rdo {
  margin-top: 16px;
}

.radio__wrap--horiz {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0;
}
.radio__wrap--horiz .input--rdo {
  position: relative;
  flex-grow: 1;
  width: 100%;
}
.radio__wrap--horiz .input--rdo input {
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
}
.radio__wrap--horiz .input--rdo input:focus-visible + label {
  outline: 2px dashed #2e56d8;
}
.radio__wrap--horiz .input--rdo label {
  display: inline-block;
  padding: 18px;
  width: 100%;
  background-color: #fff;
  border: 1px solid #C6C6C6;
  border-radius: 8px;
  font-size: 17px;
  text-align: center;
  cursor: pointer;
  transition: 0.1s ease-in;
}
.radio__wrap--horiz .input--rdo input:checked + label {
  background-color: #FFF9E8;
  border-color: #ffa038;
}
.radio__wrap--horiz.check label::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background: url("../images/sub/ico_check.png") no-repeat center;
  vertical-align: middle;
  margin-top: -3px;
  margin-right: 4px;
  opacity: 0;
  margin-left: -20px;
}
.radio__wrap--horiz.check input:checked + label::before {
  opacity: 1;
}
.radio__wrap--horiz.dashed input:checked + label {
  border-style: dashed;
}
.radio__wrap--horiz .input--rdo input:disabled + label,
.radio__wrap--horiz .input--rdo input:checked:disabled + label {
  border-color: #C6C6C6;
  background-color: #D8D8D8;
  color: #717171;
}
.radio__wrap--horiz .input--rdo input:checked:disabled + label::before {
  opacity: 0.5;
}

/* text */
p.basic {
  margin-top: 20px;
  line-height: 145%;
}

p.wrn-txt {
  position: relative;
  display: inline-block;
  padding-left: 12px;
  margin-top: 20px;
  padding-left: 12px;
  font-size: 14px;
  color: #d71921;
  font-weight: 500;
}
p.wrn-txt::before {
  display: inline-block;
  margin-right: 3px;
  font-size: 14px;
  vertical-align: top;
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
}
p.wrn-txt a {
  text-decoration: underline;
  color: inherit;
}

p.wrn-txt.gray {
  font-size: 12px;
  color: #666;
  font-weight: 400;
}

p.wrn-txt.black {
  font-size: 16px;
  color: #333;
  font-weight: 500;
}

p.wrn-txt.big::before {
  font-size: 16px;
}

.small-txt {
  font-size: 0.85em;
  margin-top: 8px;
}

.point {
  color: #d71921;
}

/* line */
.line-dot {
  display: block;
  width: 100%;
  height: 1px;
  border-top: 1px dashed #8A949E;
  margin-top: 12px;
}

/* icon */
.ico-mail {
  display: inline-block;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  background: url("../images/sub/ico_mail.svg") no-repeat center;
}

/* list */
ul.basic {
  margin-top: 16px;
}
ul.basic > li {
  word-break: keep-all;
  line-height: 150%;
  margin-left: 0;
  margin-top: 12px;
  position: relative;
  padding-left: 14px;
  color: #666;
  font-size: 17px;
}
ul.basic > li::before {
  content: "";
  width: 6px;
  height: 6px;
  background-color: #464C53;
  display: inline-block;
  position: absolute;
  left: 0;
  border-radius: 100px;
  top: 13px;
  transform: translateY(-50%);
}
ul.basic.type2 > li {
  padding-left: 10px;
}
ul.basic.type2 > li::before {
  width: 5px;
  height: 1px;
  background-color: #444;
  display: inline-block;
  position: absolute;
  left: 0;
  top: 11px;
  transform: translateX(-50%);
  border-radius: 3px;
  content: "";
}
ul.basic.type3 > li {
  padding-left: 10px;
}
ul.basic.type3 > li::before {
  width: 4px;
  height: 4px;
  box-sizing: border-box;
  border: 1px solid #58616A;
  display: inline-block;
  position: absolute;
  left: 0;
  top: 11px;
  transform: translateX(-50%);
  border-radius: 100px;
  content: "";
  background-color: transparent;
}
ul.basic > li:first-child {
  margin-top: 0;
}

ol.basic {
  margin-top: 16px;
}
ol.basic > li {
  word-break: keep-all;
  line-height: 150%;
  list-style: decimal;
  margin-left: 15px;
  margin-top: 12px;
}
ol.basic.type2 > li {
  list-style-type: lower-alpha;
}

.basic > li > ul,
.basic > li > ol {
  margin-top: 8px;
}

.basic > li > ul > li {
  padding-left: 10px;
}
.basic > li > ul > li::before {
  width: 5px;
  height: 1px;
  background-color: #444;
  display: inline-block;
  position: absolute;
  left: 0;
  top: 11px;
  transform: translateX(-50%);
  border-radius: 3px;
  content: "";
}

.basic > li > ul > li > ul > li {
  padding-left: 10px;
}
.basic > li > ul > li > ul > li::before {
  width: 4px;
  height: 4px;
  border: 1px solid #58616A;
  display: inline-block;
  position: absolute;
  left: 0;
  top: 11px;
  transform: translateX(-50%);
  border-radius: 100px;
  content: "";
  background-color: transparent;
}

/* box */
.c-box {
  background-color: #EEF2F7;
  padding: 24px;
  border-radius: 12px;
  margin-top: 24px;
}
.c-box .tit {
  font-size: 19px;
  font-weight: 700;
  color: #131416;
}
.c-box .txt {
  margin-top: 8px;
}
.c-box.type2 {
  background: none;
  border: 1px solid #B1B8BE;
}
.c-box .basic:first-child {
  margin-top: 0;
}

.tip-box {
  padding: 16px 16px 16px 44px;
  min-height: auto;
  background-color: #F4F5F6;
  border: 1px solid #CDD1D5;
  border-radius: 12px;
  position: relative;
  margin-top: 24px;
  color: #131416;
  font-size: 15px;
}
.tip-box .tit {
  font-size: 17px;
  font-weight: 700;
}
.tip-box .tit::before {
  position: absolute;
  left: 16px;
  top: 16px;
  width: 22px;
  height: 20px;
  background: url("../images/sub/ico_tip.svg") no-repeat center;
  content: "";
}
.tip-box .txt {
  margin-top: 12px;
  font-size: 15px;
}
.tip-box .sub-tit {
  font-weight: 700;
  color: #464C53;
  margin-top: 12px;
  font-size: 15px;
}
.tip-box .basic {
  margin-top: 12px;
  color: #464C53;
}
.tip-box .basic > li {
  font-size: 15px;
  margin-top: 5px;
  line-height: 125%;
}
.tip-box .basic > li::before {
  width: 3px;
  height: 3px;
  font-size: 15px;
  top: 9px;
}

/* 절차 */
.vertical-step-list {
  position: relative;
}
.vertical-step-list > li {
  position: relative;
  padding-left: 64px;
  padding-bottom: 32px;
}
.vertical-step-list > li::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 100%;
  position: absolute;
  left: 19px;
  top: 0;
  background-color: #D6E0EB;
  z-index: -1;
}
.vertical-step-list .num {
  position: absolute;
  left: 8px;
  top: 0;
  width: 24px;
  height: 24px;
  border-radius: 4px;
  background-color: #063A74;
  color: #fff;
  text-align: center;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  line-height: 160%;
}
.vertical-step-list > li:first-child {
  padding-top: 0;
}
.vertical-step-list > li:first-child .num {
  top: 0;
}
.vertical-step-list > li:last-child {
  padding-bottom: 0;
}
.vertical-step-list > li:last-child::before {
  display: none;
}
.vertical-step-list .tit-box .tit {
  font-weight: 700;
  color: #052B57;
  margin-right: 7px;
}
.vertical-step-list .tit-box .sub-tit {
  padding-left: 8px;
  position: relative;
}
.vertical-step-list .tit-box .sub-tit::before {
  content: "";
  background-color: #CDD1D5;
  position: absolute;
  width: 1px;
  height: 15px;
  left: 0;
  top: 3px;
}
.vertical-step-list .txt-box {
  margin-top: 4px;
}
.vertical-step-list .txt-box .txt {
  line-height: 150%;
}

/* table */
.table-list {
  margin-top: 12px;
  width: 100%;
}
.table-list th, .table-list .th {
  vertical-align: middle;
  padding: 15px 10px;
  background-color: #EEF2F7;
  border-bottom: 1px solid #D6E0EB;
  font-size: 15px;
  color: #131416;
  font-weight: 700;
  height: 39px;
  vertical-align: middle;
  border-right: 1px solid #fff;
}
.table-list td {
  padding: 12px 16px;
  vertical-align: middle;
  border-bottom: 1px solid #CDD1D5;
  line-height: 150%;
  font-size: 15px;
  text-align: center;
}
.table-list tfoot {
  border-bottom: 1px solid #063A74;
}
.table-list tfoot tr:last-child td {
  border-bottom: 0;
}
.table-list tfoot td {
  color: #131416;
  font-weight: 700;
  background-color: #F4F5F6;
}
.table-list .gray {
  background-color: #EEE;
}
.table-list .yellow {
  background-color: #FFF3DB;
}
.table-list.type2 {
  border-top: 1px solid #CDD1D5;
}
.table-list.type2 th, .table-list.type2 .th {
  background-color: #F4F5F6;
  border-bottom-color: #CDD1D5;
}
.table-list.type2 thead th,
.table-list.type2 tbody th {
  border-bottom: 1px solid #D6E0EB;
  background-color: #EEF2F7;
}
.table-list.type2 thead tr:first-child th {
  background-color: #F4F5F6;
  border-bottom-color: #CDD1D5;
}
.table-list.type3 th, .table-list.type3 .th {
  vertical-align: middle;
  padding: 4px 10px;
}
.table-list.type3 td, .table-list.type3 .td {
  vertical-align: middle;
  padding: 4px 10px;
}
.table-list.type3 tbody th, .table-list.type3 tbody .th {
  height: 30px;
}
.table-list .border-right {
  border-right: 1px solid #DB3155;
}

.sticky-left {
  position: sticky;
  left: 0;
}

.sticky-top {
  position: sticky;
  top: 0;
}

/* 모바일에서 block 형태 */
table.mobile-block .td-tit {
  display: none;
}
table.mobile-block .td-txt a {
  display: block;
  width: 100%;
}

.h-wrap {
  display: flex;
  justify-content: space-between;
  align-items: end;
  flex-wrap: wrap;
  gap: 10px 24px;
}
.h-wrap h3, .h-wrap h4 {
  display: inline-block;
}
.h-wrap .mg {
  display: inline-block;
  margin-left: auto;
}

/* button */
.btn {
  padding: 10px 20px;
  border-radius: 40px;
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  vertical-align: middle;
  transition: 0.2s ease;
  min-width: 120px;
  display: inline-block;
  text-align: center;
  border: 2px solid transparent;
}
.btn.line { /* 241218 (ej)*/
  background: #fff;
  border: 1px solid #ffa038;
}
.btn.line:hover { /* 241218 (ej)*/
  background: #FFF9E8;
}
.btn.solid { /* 241218 (ej)*/
  background-color: #FFA038;
  border: 1px solid #FFA038;
}
.btn.solid:hover { /* 241218 (ej)*/
  background: #FF8500;
}
.btn.solid2 {
  background-color: #FFC585;
  border: 1px solid #FFA038;
}
.btn.solid2:hover {
  background: #FF8500;
}
.btn.solid3 {
  background-color: #FFF9E8;
  border: 1px solid #FFA038;
}
.btn.solid3:hover {
  background: #fff3d2;
}
.btn.download {
  background-color: transparent;
}
.btn.download .icon {
  width: 24px;
  height: 24px;
  background: url("../images/sub/ico_download.png");
}
.btn.download span {
  font-size: 14px;
  font-weight: 500;
  color: #767676;
}
.btn.download2 .icon {
  background-image: url("../images/sub/ico_download02.png");
}
.btn.square {
  border-radius: 10px;
}
.btn.gray {
  background: #D8D8D8;
}
.btn.gray:hover {
  background: #c0c0c0;
}
.btn.gray2 {
  background: #aaa;
  border: 1px solid #aaa;
}
.btn.gray2:hover {
  background: #999;
  border-color: #888;
}
.btn.red {
  background: #fff;
  border: 1px solid #d71921;
  color: #d71921;
}
.btn.red:hover {
  background: #DDDDDD;
}
.btn.red2 {
  background: #DDDDDD;
  border: 1px solid #d71921;
  color: #d71921;
}
.btn.red2:hover {
  background: #CCCCCC;
}
.btn.submit {
  color: #fff;
  background: #F05F29;
  border: 3px solid #FFB599;
}
.btn.dashed {
  background-color: #FFF9E8;
  border: 2px dashed #FFA038;
}
.btn.dashed:hover {
  background-color: #fff3ce;
}
.btn.disabled {
  background-color: #959595;
  color: #fff;
}
.btn.black {
  background-color: #333333;
  color: #fff;
}
.btn.download {
  padding: 5px;
  min-width: auto;
}

button span {
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  vertical-align: middle;
}

button .icon {
  display: inline-block;
  margin-left: 4px;
  width: 24px;
  height: 24px;
  background-position: center;
  background-repeat: no-repeat;
  vertical-align: middle;
}

.btn span {
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  vertical-align: middle;
}

.btn .icon {
  display: inline-block;
  margin-left: 4px;
  width: 24px;
  height: 24px;
  background-position: center;
  background-repeat: no-repeat;
  vertical-align: middle;
}

img.pc {
  max-width: 100%;
}

img.mobile {
  display: none;
  max-width: 100%;
}

h3, .h3 {
  margin-top: 48px;
  font-size: 32px;
  font-weight: 700;
  color: #131416;
}
h3.type2, .h3.type2 {
  border-bottom: 1px solid #1E2124;
  padding-bottom: 12px;
}

.inline-block {
  display: inline-block;
}

h4, .h4 {
  margin-top: 24px;
  font-size: 24px;
  text-align: left;
  position: relative;
  font-weight: 700;
  color: #131416;
}

h5 {
  margin-top: 30px;
  font-size: 17px;
  font-weight: 700;
  color: #333;
  position: relative;
}

.f_wrapper .touch {
  display: none;
}

.clear::after {
  content: "";
  display: block;
  clear: both;
}

/* ================ contents ================ */
.tbl-process-wrap {
  margin-top: 12px;
  display: flex;
}
.tbl-process-wrap .step {
  display: inline-flex;
  flex-direction: column;
  width: 100%;
  text-align: center;
  border-bottom: 1px solid #CDD1D5;
}
.tbl-process-wrap .arrow {
  display: inline-flex;
  width: 50%;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 0 70px;
  box-sizing: border-box;
  text-align: center;
}
.tbl-process-wrap .arrow::before,
.tbl-process-wrap .arrow::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background: url("../images/sub/ico_arrow_next.svg") no-repeat center;
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
}
.tbl-process-wrap .arrow::before {
  left: 30px;
}
.tbl-process-wrap .arrow::after {
  right: 30px;
}
.tbl-process-wrap .step-head {
  background-color: #EEF2F7;
  border-bottom: 1px solid #D6E0EB;
  color: #131416;
  font-weight: 700;
  min-height: 39px;
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
}
.tbl-process-wrap .step-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.tbl-process-wrap .step-td {
  display: inline-flex;
  border-bottom: 1px solid #CDD1D5;
  min-height: 76px;
  padding: 26px 16px;
  line-height: 150%;
  align-items: center;
  justify-content: center;
}
.tbl-process-wrap .step-td:last-child {
  border-bottom: 0;
}
.tbl-process-wrap .height100 {
  height: 100%;
}
.tbl-process-wrap.type2 .step {
  border-bottom: 0;
}
.tbl-process-wrap.type2 .step-head {
  padding: 10px;
  min-height: 62px;
}
.tbl-process-wrap.type2 .step-body {
  margin-top: 10px;
}
.tbl-process-wrap.type2 .step-td {
  border: 1px solid #CDD1D5;
  line-height: 120%;
  padding: 3px 16px;
  margin-bottom: 44px;
  position: relative;
}
.tbl-process-wrap.type2 .step-td:last-child {
  margin-bottom: 0;
}
.tbl-process-wrap.type2 .step-td::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background: url("../images/sub/ico_arrow_down.svg") no-repeat center;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -34px;
}
.tbl-process-wrap.type2 .step-td:last-child::before {
  display: none;
}
.tbl-process-wrap.type2 .arrow {
  position: relative;
  max-width: 140px;
  padding: 0;
}
.tbl-process-wrap.type2 .arrow::before, .tbl-process-wrap.type2 .arrow::after {
  display: none;
}
.tbl-process-wrap.type2 .arrow-box {
  position: absolute;
  width: calc(100% - 26px);
  height: calc(100% - 142px);
  margin: 106px 13px 0;
  top: 0;
}
.tbl-process-wrap.type2 .arrow-box::before {
  content: "";
  position: absolute;
  width: 50%;
  height: 100%;
  border: 1px dashed #666;
  border-left: 0;
  border-top: 0;
  left: 0;
}
.tbl-process-wrap.type2 .arrow-box::after {
  content: "";
  position: absolute;
  width: 50%;
  height: 20px;
  border-top: 1px dashed #666;
  right: 0;
}
.tbl-process-wrap.type2 .arrow-box > i {
  position: absolute;
  width: 5px;
  height: 8px;
  top: -3px;
  right: -1px;
  background: url("../images/sub/ico_arrow_small.png") no-repeat center;
}

.scroll-box {
  max-height: 140px;
  overflow-y: auto;
}

.card-txt-list {
  display: flex;
  gap: 24px;
  margin-top: 16px;
}
.card-txt-list li {
  border: 1px solid #B1B8BE;
  padding: 16px 10px;
  width: 100%;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 150%;
}
.card-txt-list .bottom-txt {
  border-top: 1px dashed #8A949E;
  padding-top: 6px;
  margin-top: 6px;
  display: block;
  width: 100%;
}

/* 범례 */
.legend-box {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: end;
  gap: 8px;
}
.legend-box .legend-wrap {
  display: flex;
  gap: 8px;
}
.legend-box .legend-name {
  font-size: 15px;
}
.legend-box .legend-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #CDD1D5;
  background-color: #F4F5F6;
  border-radius: 4px;
  height: 25px;
  padding: 4px;
  font-size: 15px;
}

/* bullet list */
.bullet-list {
  margin-top: 24px;
}
.bullet-list ul {
  display: block;
}
.bullet-list li {
  position: relative;
  padding: 3px 8px 3px 23px;
  margin-bottom: 15px;
}
.bullet-list li::before {
  content: "";
  display: inline-block;
  width: 3px;
  height: 3px;
  border-radius: 10px;
  background-color: #1E2124;
  position: absolute;
  left: 9px;
  top: 50%;
  transform: translateY(-50%);
}
.bullet-list li a {
  display: inline-block;
}
.bullet-list li a::before {
  content: "";
  background-color: transparent;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 6px;
  z-index: -1;
  transition: 0.3s ease;
}
.bullet-list li a:hover::before {
  background-color: #EEF2F7;
}
.bullet-list.column ul {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
}
.bullet-list.type2 {
  font-size: 19px;
}
.bullet-list .newin {
  position: initial;
}
.bullet-list .newin::after {
  right: 10px;
}

.bullet-list-wrap {
  display: flex;
  align-items: start;
  gap: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #CDD1D5;
}
.bullet-list-wrap .bullet-tit {
  font-size: 24px;
  color: #096AB3;
  font-weight: 700;
  margin-top: 21px;
  min-width: 83px;
}

.privacy-wrap {
  margin-top: 50px;
}

.ico-circle {
  width: 13px;
  height: 13px;
  vertical-align: middle;
  display: inline-block;
  border-radius: 100px;
  background-color: #ddd;
}
.ico-circle.type1 {
  background-color: #3DC9DB;
}
.ico-circle.type2 {
  background-color: #FF6C59;
}
.ico-circle.type3 {
  background-color: #CECC1D;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* 색상 정의 */
/* Middle and High School Students */
.color-a {
  background-color: #51c4bd;
}

/* College and Graduate Students  */
.color-b {
  background-color: #b9da41;
}

/* The employed */
.color-c {
  background-color: #7BA7D4;
}

/* The unemployed */
.color-d {
  background-color: #f78a55;
}

/* 차트 컨테이너 스타일 */
.chart-container {
  width: 100%;
  margin: 16px 0 0;
  border: 1px solid #ccc;
  padding: 10px;
  background-color: #fff;
  /* X축 (0% ~ 100%) 표시 */
  /* 차트 제목 (Screen Reader 전용) */
  /* 차트 그리드 */
  /* Y축 선 (왼쪽 세로선) */
  /* X축 선 (아래 가로선) */
  /* 각 연도별 행 */
  /* 연도 레이블 */
  /* 누적 막대 영역 */
  /* 개별 막대 세그먼트 */
  /* 1. College and Graduate Students (color-b): 대각선 패턴 (약하게) */
  /* 2. The employed (color-c): 수직 패턴 */
  /* 3. The unemployed (color-d): 가로줄무늬 패턴 (약하게) */
  /* --- 범례 스타일 --- */
  /* 범례에도 동일한 패턴 적용 */
  /* 1. color-b: 대각선 (약하게) */
  /* 2. color-c: 수직 */
  /* 3. color-d: 가로 (약하게) */
}
.chart-container .x-axis {
  display: flex;
  justify-content: space-between;
  padding-bottom: 5px;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 600;
  margin-left: 50px; /* 연도 영역만큼 간격 확보 */
}
.chart-container .chart-grid {
  margin-top: 10px;
  position: relative;
  padding: 5px 0 10px;
}
.chart-container .chart-grid::before {
  content: "";
  display: inline-block;
  position: absolute;
  left: 50px;
  top: 0;
  width: 1px;
  height: 100%;
  background-color: #bbb;
  z-index: 1;
}
.chart-container .chart-grid::after {
  content: "";
  display: inline-block;
  position: absolute;
  left: 50px;
  bottom: 0;
  width: calc(100% - 50px);
  height: 1px;
  background-color: #bbb;
  z-index: 1;
}
.chart-container .chart-row {
  display: flex;
  align-items: center;
  padding: 5px 0;
}
.chart-container .year-label {
  width: 50px;
  font-weight: bold;
  flex-shrink: 0;
  font-size: 14px;
  text-align: right;
  padding-right: 10px;
}
.chart-container .stacked-bar {
  flex-grow: 1;
  display: flex;
  height: 30px;
  line-height: 30px;
  position: relative;
}
.chart-container .bar-segment {
  color: #333;
  text-align: center;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  box-sizing: border-box;
  transition: opacity 0.2s;
  position: relative; /* 패턴을 위한 기준점 */
  text-shadow: 0px 0px 3px #ffffff;
}
.chart-container .bar-segment:focus {
  opacity: 0.8;
  outline: 2px solid #007bff;
  outline-offset: -2px;
}
.chart-container .bar-segment.color-b::after, .chart-container .bar-segment.color-c::after, .chart-container .bar-segment.color-d::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* 클릭 이벤트 방지 */
  z-index: 2; /* 배경색 위, 텍스트 아래 */
}
.chart-container .bar-segment.color-b::after {
  background-image: repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 2px, transparent 2px, transparent 4px);
  background-size: 7px 5px; /* 반복 크기 조정 */
}
.chart-container .bar-segment.color-c::after {
  background-image: repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 2px, transparent 2px, transparent 6px);
  background-size: 6px 100%; /* 수평 반복 크기 조정 */
}
.chart-container .bar-segment.color-d::after {
  background-image: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 1.5px, transparent 1.5px, transparent 3px);
  background-size: 100% 6px; /* 수직 반복 크기 조정 (밀도 낮춤) */
}
.chart-container .legend {
  margin-top: 0;
  display: flex;
  justify-content: end;
  gap: 5px 20px;
  flex-wrap: wrap;
  padding: 10px 0;
  font-size: 14px;
  font-weight: 500;
}
.chart-container .legend-item {
  display: flex;
  align-items: center;
}
.chart-container .legend-color {
  width: 15px;
  height: 15px;
  margin-right: 5px;
  border-radius: 3px;
  position: relative;
}
.chart-container .legend-color.color-b::after, .chart-container .legend-color.color-c::after, .chart-container .legend-color.color-d::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 3px;
}
.chart-container .legend-color.color-b::after {
  background-image: repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 2px, transparent 2px, transparent 4px);
  background-size: 7px 5px;
}
.chart-container .legend-color.color-c::after {
  background-image: repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 2px, transparent 2px, transparent 6px);
  background-size: 6px 100%;
}
.chart-container .legend-color.color-d::after {
  background-image: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 1.5px, transparent 1.5px, transparent 3px);
  background-size: 100% 6px;
}

/* ================ responsive 반응형 ================ */
@media screen and (max-width: 1000px) {
  .card-txt-list {
    flex-wrap: wrap;
  }
  .card-txt-list li {
    flex-grow: 1;
    width: calc(50% - 12px);
  }
}
@media screen and (max-width: 768px) {
  .page-title {
    font-size: 28px;
    margin-top: 32px;
  }
  h3, .h3 {
    font-size: 24px;
    margin-top: 32px;
  }
  ul.basic > li {
    font-size: 14px;
  }
  ul.basic > li::before {
    top: 11px;
  }
  .vertical-step-list > li {
    padding-left: 33px;
  }
  .vertical-step-list > li::before {
    left: 10px;
  }
  .vertical-step-list .num {
    left: 0;
  }
  .tbl-process-wrap .arrow {
    padding: 0;
    flex-direction: column;
  }
  .tbl-process-wrap .arrow::before,
  .tbl-process-wrap .arrow::after {
    position: relative;
    left: auto;
    right: 0;
    top: auto;
    transform: none;
  }
  .f_wrapper {
    display: block;
    position: relative;
    /* a태그용 touch */
    /*
    .touch{position: absolute; top: 0; left: 0; display: flex; justify-content: center; align-items: center; flex-direction: column; width: 100%; height: 100%; color: #fff; background: rgba(51, 51, 51, 0.6); font-size: 24px; font-weight: 800; box-sizing: border-box; transition: .3s ease-out; z-index: 1; padding: 10px;}
    .touch::before { content: ''; background: url($sub + "ico_flicking.png") no-repeat center; width: 77px; height: 86px; display: block; margin-bottom: 5px; background-size: contain;}
    */
  }
  .f_wrapper .touch {
    display: block;
    font-size: 14px;
    position: relative;
    margin: 20px 0 0;
    color: #333;
    padding: 4px 0 0 30px;
  }
  .f_wrapper .touch::before {
    content: "";
    background: url("../images/sub/ico_flicking.png") no-repeat center;
    width: 20px;
    height: 20px;
    display: inline-block;
    background-size: 15px;
    position: absolute;
    left: 0;
    top: 3px;
  }
  .f_wrapper table {
    min-width: 1200px;
    margin-top: 0;
  }
  .f_wrapper .f_scroller {
    margin-top: 10px;
    position: relative;
  }
  .f_wrapper.pc {
    margin-top: 25px;
  }
  .f_wrapper.pc .f_wrapper_inner {
    position: relative;
    padding-top: 20px;
  }
  .f_wrapper.pc .f_scroller {
    overflow-x: auto;
    width: 100%;
  }
  .f_wrapper.pc .touch {
    display: block;
  }
  .f_wrapper.pc table {
    width: 1500px;
    margin-top: 7px;
  }
  .f_wrapper.pc.type2 table {
    width: 2000px;
  }
  #container > .inner {
    margin-top: 0;
  }
  .breadcrumb-wrap {
    display: none;
  }
  h2 {
    font-size: 40px;
    margin-top: 40px;
  }
  table.mobile-block {
    display: block;
    min-width: auto;
  }
  table.mobile-block thead {
    display: none;
  }
  table.mobile-block tbody {
    display: block;
  }
  table.mobile-block tr {
    display: flex;
    flex-direction: column;
    margin-bottom: 15px;
    border: 1px solid #DDD;
    border-radius: 8px;
    padding: 10px;
  }
  table.mobile-block td {
    display: flex;
    padding: 8px 0;
    border-bottom: 1px solid #EEE;
    font-size: 14px;
  }
  table.mobile-block td:last-child {
    border-bottom: none;
  }
  table.mobile-block td::before {
    font-weight: 700;
    color: #333;
  }
  table.mobile-block .td-tit {
    display: inline-block;
    min-width: 80px;
    padding-right: 20px;
    text-align: left;
    font-weight: 700;
  }
  table.mobile-block .td-txt {
    width: 100%;
    text-align: left;
  }
  /* 조직 소개 */
  .org-table-wrap tr td:first-child {
    order: 1;
  }
  .org-table-wrap tr td:nth-child(2) {
    order: 0;
  }
  .org-table-wrap tr td:nth-child(3) {
    order: 1;
  }
  .org-table-wrap tr td:nth-child(4) {
    order: 1;
  }
  .org-table-wrap tr td:last-child {
    order: 1;
  }
  .org-table-wrap .td-txt .ico-mail {
    display: none;
  }
  .table-list th {
    font-size: 14px;
  }
  .table-list td {
    font-size: 14px;
  }
}
@media screen and (max-width: 450px) {
  h2 {
    font-size: 30px;
  }
}
@media screen and (max-width: 390px) {
  /* 조사설계 */
  .tbl-process-wrap.type2 {
    flex-wrap: wrap;
    gap: 20px;
  }
  .tbl-process-wrap.type2 .arrow {
    height: 0;
  }
  .tbl-process-wrap.type2 .arrow-box {
    margin: 0;
    height: 0;
  }
  .tbl-process-wrap.type2 .arrow-box::before {
    height: 191px;
    border-right: 0;
    left: -28px;
    width: 10px;
    top: -60px;
    border: 1px dashed #666;
    border-right: 0;
  }
  .tbl-process-wrap.type2 .arrow-box::after {
    display: none;
  }
  .tbl-process-wrap.type2 .arrow-box > i {
    left: -21px;
    right: auto;
    top: 128px;
  }
}
@media screen and (max-width: 350px) {
  .chart-container .legend {
    justify-content: start;
    font-size: 12px;
    flex-direction: column;
  }
}