* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'ShinhanLight', 'Noto Sans KR', sans-serif;
  letter-spacing: -0.2px;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

ul,
li,
il {
  list-style: none;
}

img {
  vertical-align: top;
}

html,
body,
.wrap {
  width: 100%;
  height: 100%;
  color: #333;
}

table {
  border-spacing: 0px;
  border-collapse: collapse;
}

button,
select,
input {
  border: none;
  outline: none;
}

button[disabled],
html input[disabled] {
  cursor: default;
}

button {
  padding: 0;
  background: inherit;
}

button > span {
  position: relative;
  width: auto;
}

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  -o-appearance: none;
  appearance: none;
  cursor: pointer;
  padding-right: 1.5rem;
  padding-left: 0.625rem;
}

select:focus::-ms-value {
  background-color: transparent;
  color: #222;
}

select::-ms-expand {
  display: none;
}

input::-ms-clear,
input::-ms-reveal {
  display: none;
  width: 0;
  height: 0;
}

input::-webkit-search-decoration,
input::-webkit-search-cancel-button,
input::-webkit-search-results-button,
input::-webkit-search-results-decoration {
  display: none;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.clear::after {
  clear: both;
  content: "";
  display: block;
}

/*---------------------------------textarea-----------------------------------*/
textarea {
  width: 100%;
  height: 4.25rem;
  resize: none;
  border: 1px solid #abc0cf;
  outline: none;
  border-radius: 2px;
  padding: 0.25rem 0.5rem;
  vertical-align: middle;
  margin: 0.25rem 0;
}

textarea::placeholder {
  font-size: 0.75rem;
}

.overflow_h {
  overflow: hidden !important;
}
.overflow_xh {
  overflow-x: hidden !important;
}
.overflow_yh {
  overflow-y: hidden !important;
}
.overflow_x {
  overflow-x: auto !important;
}
.overflow_y {
  overflow-y: auto !important;
}

/*--------------------input----------------------*/
input[type="text"],
input[type="password"],
input[type="number"] {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  position: relative;
  cursor: pointer;
}

input[type="text"]::placeholder,
input[type="password"]::placeholder,
input[type="number"]::placeholder {
  color: #d9d9d9;
}

input[type="radio"],
input[type="checkbox"] {
  cursor: pointer;
}

label input[type="radio"],
label input[type="checkbox"] {
  cursor: pointer;
  margin-right: 0.375rem;
}

/*---------------------------------flex-----------------------------------*/
.flex {
  display: flex;
}
.inline_flex {
  display: inline-flex;
}

.flex.align {
  align-items: center;
}
.flex.column {
  flex-direction: column;
}
.flex.center {
  justify-content: center;
}
.flex.end {
  justify-content: flex-end;
}
.flex.between {
  justify-content: space-between;
}

.gap2 { gap: 0.2rem; }
.gap4 { gap: 0.4rem; }
.gap6 { gap: 0.6rem; }
.gap8 { gap: 0.8rem; }
.gap10 { gap: 1rem; }
.gap12 { gap: 1.2rem; }
.gap14 { gap: 1.4rem; }
.gap16 { gap: 1.6rem; }
.gap20 { gap: 2rem; }
.gap24 { gap: 2.4rem; }
.gap30 { gap: 3rem; }
.gap40 { gap: 4rem; }

/* border */
.border_none { border: none !important; }
.border_none_rt { border-right: none !important; }
.border_none_lf { border-left: none !important; }
.border_none_tp { border-top: none !important; }
.border_none_bt { border-bottom: none !important; }

/*--------------------------------display--------------------------------*/
.display_block { display: block !important; }
.display_inline { display: inline-block !important; }
.display_none { display: none !important; }

/*------------------------------vertical-align-------------------------------*/
.vertical_t { vertical-align: top !important; }
.vertical_m { vertical-align: middle !important; }
.vertical_b { vertical-align: bottom !important; }

/*---------------------------------font----------------------------------*/
.word_bk { word-break: keep-all !important; }
.word_break { word-break: break-all !important; }
.white_space { white-space: nowrap !important; }
.white_space_normal { white-space: normal !important; }
.ellipsis {
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis;
}

/* font-size (구 네이밍 — 16px 기반 rem) */
.fs_0 { font-size: 0 !important; }
.fs_11 { font-size: 0.6875rem !important; }
.fs_12 { font-size: 0.75rem !important; }
.fs_14 { font-size: 0.875rem !important; }
.fs_16 { font-size: 1rem !important; }
.fs_18 { font-size: 1.125rem !important; }
.fs_20 { font-size: 1.25rem !important; }
.fs_24 { font-size: 1.5rem !important; }
.fs_26 { font-size: 1.625rem !important; }
.fs_28 { font-size: 1.75rem !important; }
.fs_40 { font-size: 2.5rem !important; }

/* font-weight (구 네이밍) */
.fw_thin { font-weight: 100 !important; }
.fw_light { font-weight: 300 !important; }
.fw_regular { font-weight: 400 !important; }
.fw_medium { font-family: 'ShinhanMedium' !important; }
.fw_bold { font-family: 'ShinhanBold' !important; }
.fw_black { font-family: 'ShinhanBold' !important; }

/* font-weight (신 네이밍) */
.fw_100 { font-weight: 100 !important; }
.fw_300 { font-weight: 300 !important; }
.fw_400 { font-weight: 400 !important; }
.fw_500 { font-weight: 500 !important; }
.fw_600 { font-weight: 600 !important; }
.fw_700 { font-weight: 700 !important; }

/*------------------------------text_align--------------------------------*/
.text_center { text-align: center !important; }
.text_left { text-align: left !important; }
.text_right { text-align: right !important; }

/*------------------------------line-height (구 네이밍)-------------------------------*/
.line_hei_12 { line-height: 0.75rem !important; }
.line_hei_14 { line-height: 0.875rem !important; }
.line_hei_16 { line-height: 1rem !important; }
.line_hei_18 { line-height: 1.125rem !important; }
.line_hei_20 { line-height: 1.25rem !important; }
.line_hei_24 { line-height: 1.5rem !important; }
.line_hei_26 { line-height: 1.625rem !important; }
.line_hei_28 { line-height: 1.75rem !important; }

/*---------------------------------width----------------------------------*/
.width_auto { width: auto !important; }
.width_fit { width: fit-content !important; }
.width_1 { width: 1% !important; }
.width_1_td { width: 1% !important; min-width: 4rem; max-width: 4rem; }
.width_10 { width: 10% !important; }
.width_15 { width: 15% !important; }
.width_20 { width: 20% !important; }
.width_25 { width: 25% !important; }
.width_30 { width: 30% !important; }
.width_35 { width: 35% !important; }
.width_40 { width: 40% !important; }
.width_45 { width: 45% !important; }
.width_half { width: 50% !important; }
.width_50 { width: 50% !important; }
.width_60 { width: 60% !important; }
.width_65 { width: 65% !important; }
.width_70 { width: 70% !important; }
.width_75 { width: 75% !important; }
.width_80 { width: 80% !important; }
.width_85 { width: 85% !important; }
.width_90 { width: 90% !important; }
.width_100 { width: 100% !important; }

/*---------------------------------margin (구 네이밍)---------------------------------*/
.margin_right_0 { margin-right: 0 !important; }
.margin_right_2 { margin-right: 0.125rem !important; }
.margin_right_6 { margin-right: 0.375rem !important; }
.margin_right_8 { margin-right: 0.5rem !important; }
.margin_right_10 { margin-right: 0.625rem !important; }
.margin_right_12 { margin-right: 0.75rem !important; }
.margin_right_14 { margin-right: 0.875rem !important; }
.margin_right_16 { margin-right: 1rem !important; }
.margin_right_18 { margin-right: 1.125rem !important; }
.margin_right_20 { margin-right: 1.25rem !important; }
.margin_right_24 { margin-right: 1.5rem !important; }
.margin_right_26 { margin-right: 1.625rem !important; }
.margin_right_28 { margin-right: 1.75rem !important; }

.margin_left_0 { margin-left: 0 !important; }
.margin_left_2 { margin-left: 0.125rem !important; }
.margin_left_6 { margin-left: 0.375rem !important; }
.margin_left_8 { margin-left: 0.5rem !important; }
.margin_left_10 { margin-left: 0.625rem !important; }
.margin_left_12 { margin-left: 0.75rem !important; }
.margin_left_14 { margin-left: 0.875rem !important; }
.margin_left_16 { margin-left: 1rem !important; }
.margin_left_18 { margin-left: 1.125rem !important; }
.margin_left_20 { margin-left: 1.25rem !important; }
.margin_left_24 { margin-left: 1.5rem !important; }
.margin_left_26 { margin-left: 1.625rem !important; }
.margin_left_28 { margin-left: 1.75rem !important; }

.margin_bt_0 { margin-bottom: 0 !important; }
.margin_bt_2 { margin-bottom: 0.125rem !important; }
.margin_bt_6 { margin-bottom: 0.375rem !important; }
.margin_bt_8 { margin-bottom: 0.5rem !important; }
.margin_bt_10 { margin-bottom: 0.625rem !important; }
.margin_bt_12 { margin-bottom: 0.75rem !important; }
.margin_bt_14 { margin-bottom: 0.875rem !important; }
.margin_bt_16 { margin-bottom: 1rem !important; }
.margin_bt_18 { margin-bottom: 1.125rem !important; }
.margin_bt_20 { margin-bottom: 1.25rem !important; }
.margin_bt_24 { margin-bottom: 1.5rem !important; }
.margin_bt_26 { margin-bottom: 1.625rem !important; }
.margin_bt_28 { margin-bottom: 1.75rem !important; }

.margin_top_0 { margin-top: 0 !important; }
.margin_top_2 { margin-top: 0.125rem !important; }
.margin_top_6 { margin-top: 0.375rem !important; }
.margin_top_8 { margin-top: 0.5rem !important; }
.margin_top_10 { margin-top: 0.625rem !important; }
.margin_top_12 { margin-top: 0.75rem !important; }
.margin_top_14 { margin-top: 0.875rem !important; }
.margin_top_16 { margin-top: 1rem !important; }
.margin_top_18 { margin-top: 1.125rem !important; }
.margin_top_20 { margin-top: 1.25rem !important; }
.margin_top_24 { margin-top: 1.5rem !important; }
.margin_top_26 { margin-top: 1.625rem !important; }
.margin_top_28 { margin-top: 1.75rem !important; }

/*---------------------------------padding (구 네이밍)---------------------------------*/
.padding_right_0 { padding-right: 0 !important; }
.padding_right_2 { padding-right: 0.125rem !important; }
.padding_right_6 { padding-right: 0.375rem !important; }
.padding_right_8 { padding-right: 0.5rem !important; }
.padding_right_10 { padding-right: 0.625rem !important; }
.padding_right_12 { padding-right: 0.75rem !important; }
.padding_right_14 { padding-right: 0.875rem !important; }
.padding_right_16 { padding-right: 1rem !important; }
.padding_right_18 { padding-right: 1.125rem !important; }
.padding_right_20 { padding-right: 1.25rem !important; }
.padding_right_24 { padding-right: 1.5rem !important; }
.padding_right_26 { padding-right: 1.625rem !important; }
.padding_right_28 { padding-right: 1.75rem !important; }

.padding_left_0 { padding-left: 0 !important; }
.padding_left_2 { padding-left: 0.125rem !important; }
.padding_left_6 { padding-left: 0.375rem !important; }
.padding_left_8 { padding-left: 0.5rem !important; }
.padding_left_10 { padding-left: 0.625rem !important; }
.padding_left_12 { padding-left: 0.75rem !important; }
.padding_left_14 { padding-left: 0.875rem !important; }
.padding_left_16 { padding-left: 1rem !important; }
.padding_left_18 { padding-left: 1.125rem !important; }
.padding_left_20 { padding-left: 1.25rem !important; }
.padding_left_24 { padding-left: 1.5rem !important; }
.padding_left_26 { padding-left: 1.625rem !important; }
.padding_left_28 { padding-left: 1.75rem !important; }

.padding_bt_0 { padding-bottom: 0 !important; }
.padding_bt_2 { padding-bottom: 0.125rem !important; }
.padding_bt_6 { padding-bottom: 0.375rem !important; }
.padding_bt_8 { padding-bottom: 0.5rem !important; }
.padding_bt_10 { padding-bottom: 0.625rem !important; }
.padding_bt_12 { padding-bottom: 0.75rem !important; }
.padding_bt_14 { padding-bottom: 0.875rem !important; }
.padding_bt_16 { padding-bottom: 1rem !important; }
.padding_bt_18 { padding-bottom: 1.125rem !important; }
.padding_bt_20 { padding-bottom: 1.25rem !important; }
.padding_bt_24 { padding-bottom: 1.5rem !important; }
.padding_bt_26 { padding-bottom: 1.625rem !important; }
.padding_bt_28 { padding-bottom: 1.75rem !important; }

.padding_top_0 { padding-top: 0 !important; }
.padding_top_2 { padding-top: 0.125rem !important; }
.padding_top_6 { padding-top: 0.375rem !important; }
.padding_top_8 { padding-top: 0.5rem !important; }
.padding_top_10 { padding-top: 0.625rem !important; }
.padding_top_12 { padding-top: 0.75rem !important; }
.padding_top_14 { padding-top: 0.875rem !important; }
.padding_top_16 { padding-top: 1rem !important; }
.padding_top_18 { padding-top: 1.125rem !important; }
.padding_top_20 { padding-top: 1.25rem !important; }
.padding_top_24 { padding-top: 1.5rem !important; }
.padding_top_26 { padding-top: 1.625rem !important; }
.padding_top_28 { padding-top: 1.75rem !important; }

/*------------------position---------------------*/
.ps_relative { position: relative; }

.right { position: absolute; right: 0; }
.left { position: absolute; left: 0; }

.ps_right { position: absolute; right: 0; }
.ps_right10 { position: absolute; right: 1rem; }
.ps_right20 { position: absolute; right: 2rem; }

.ps_left { position: absolute; left: 0; }
.ps_left10 { position: absolute; left: 1rem; }
.ps_left20 { position: absolute; left: 2rem; }

.ps_top { position: absolute; top: 0; }
.ps_bottom { position: absolute; bottom: 0; }

.ps_t_center { top: 50%; transform: translateY(-50%); }
.ps_l_center { left: 50%; transform: translateX(-50%); }

.f_right { float: right; }
.f_left { float: left; }

/*------------------------------min/max-width-----------------------------------*/
.min_auto { min-width: auto !important; }
.max_auto { max-width: none !important; }
.min_1 { min-width: 1rem !important; }
.min_2 { min-width: 2rem !important; }
.min_3 { min-width: 3rem !important; }
.min_4 { min-width: 4rem !important; }
.min_5 { min-width: 5rem !important; }
.min_6 { min-width: 6rem !important; }
.min_7 { min-width: 7rem !important; }
.min_8 { min-width: 8rem !important; }
.min_9 { min-width: 9rem !important; }
.min_10 { min-width: 10rem !important; }
.min_11 { min-width: 11rem !important; }
.min_12 { min-width: 12rem !important; }
.min_13 { min-width: 13rem !important; }
.min_14 { min-width: 14rem !important; }
.min_15 { min-width: 15rem !important; }
.min_16 { min-width: 16rem !important; }
.min_18 { min-width: 18rem !important; }
.min_20 { min-width: 20rem !important; }
.min_22 { min-width: 22rem !important; }
.min_24 { min-width: 24rem !important; }
.min_25 { min-width: 25rem !important; }
.min_26 { min-width: 26rem !important; }
.min_28 { min-width: 28rem !important; }
.min_30 { min-width: 30rem !important; }
