:root {
  --black: #000;
  --white: #fff;

  --blue: #0951BD;
  --red: #DF2821;
  --gray_5: #F3F4F6;
  --gray_10: #EBEEF2;
  --gray_20: #E1E4E9;
  --gray_25: #CCD1D8;
  --gray_30: #B4BAC2;
  --gray_40: #959EA9;
  --gray_45: #808A97;
  --gray_50: #606977;
  --gray_60: #434953;
  --gray_70: #323841;
  --gray_80: #1A1D24;
  --gray_90: #080B12;

}


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%;
  font: inherit;
  vertical-align: baseline;
}

*,
*::before,
*::after {
  box-sizing: border-box !important;
}

* {
  scrollbar-width: thin;
  /* Firefox: 스크롤 색상 및 배경 */

}

html:not(_) {
  scrollbar-width: thin;
}

body {
  display: flex;
  position: relative;
  min-height: 100vh;
  flex-direction: column;
  justify-content: space-between;
  font-size: 16px;
  font-family: 'LINE Seed Sans KR';
  font-weight: 400;
  line-height: 28px;
  scroll-behavior: smooth;
  color: var(--gray_90);
  word-break: keep-all;
  overflow-y: overlay;
  /* 반드시 overlay 처리 */
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ol,
ul,
dl,
dd,
label {
  padding: 0;
  margin: 0;
  list-style: none;
}

b {
  font-weight: 700;
}

main {
  flex: 1;
}


h1,
.h1 {
  /* 62px */
  font-size: 3.875rem;
  line-height: 100%;
  font-weight: 700;
}

/* h1.page_title {
  font-size: 2.5rem;
  line-height: 2.5rem;
  font-weight: 700;
  letter-spacing: -0.2px;
  margin-bottom: 30px;
} */

h2,
.h2 {
  /* 52px  */
  font-size: 3.25rem;
  /* 74px */
  line-height: 4.625rem;
  font-weight: 700;
}

h3,
.h3 {
  /* 40px */
  font-size: 2.5rem;
  /* 28px */
  line-height: 3.875rem;
  font-weight: 700;
}

h4,
.h4 {
  /* 24px */
  font-size: 1.5rem;
  /* 36px */
  line-height: 2.25rem;
  font-weight: 700;
}

h5,
.h5 {
  /* 20px */
  font-size: 1.25rem;
  /* 32px */
  line-height: 1.6rem;
  font-weight: 700;
}

h6,
.h6 {
  /* 16px */
  font-size: 1rem;
  /* 28px */
  line-height: 1.75rem;
  font-weight: 400;
}

p,
.p {
  /* 14px */
  font-size: 0.875rem;
  /* 24px */
  line-height: 1.5rem;
}

.small {
  /* 12px */
  font-size: 0.75rem !important;
  /* 16px */
  line-height: 1rem;
  /* -0.12px */
  letter-spacing: -0.008rem;
}

.desc {
  /* 11px */
  font-size: 0.6875rem;
  /* 16px */
  line-height: 1rem;
  /* -0.11px */
  letter-spacing: 0.00687rem;
}

a {
  text-decoration: none;
  color: inherit;
  background: none;
  border: none;
}

button {
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: center;
  background: transparent;
  border: none;
  border-radius: 10px;
  padding: 0;
  text-align: center;
  font: inherit;
  font-size: 0.875rem;
  line-height: 1.5rem;
  cursor: pointer;
  white-space: nowrap;
}

table {
  display: inline-table;
  border-collapse: collapse;
  border-spacing: 0;
  border-style: hidden;
}

/* CONTAINER */
.container {
  position: relative;
  margin: 0 auto;
  width: 100%;
  max-width: 1110px;
  padding-right: 15px;
  padding-left: 15px;
}

.container.xl {
  max-width: 1470px;
}

.container.lg {
  max-width: 1100px;
}

.container.md {
  max-width: 890px;
}

.container.sm {
  max-width: 550px;
}

.row {
  display: flex;
}

button.primary, 
a.primary {
  padding: 12px 20px;
  background-color: #0951BD;
  border: 1px solid #0951BD;
  color: var(--white);
}

button.secondary, 
a.secondary {
  padding: 12px 20px;
  background-color: var(--gray_90);
  color: var(--white);
}

button.back, 
a.back {
  padding: 12px 0;
  background-color: var(--gray_50);
  color: var(--white);
}

button.gray_40, 
a.gray_40 {
  padding: 12px 0;
  background-color: var(--gray_40);
  color: var(--white);
}

button.blue, 
a.blue {
  padding: 12px 20px;
  border: 1px solid var(--blue);
  color: var(--blue);
}

button.sm, 
a.sm {
  padding: 4px 12px;
  border-radius: 6px;
  font-size: 0.875rem;
  line-height: 1.5rem;
}

.color_blue {
  color: var(--blue);
}
.color_red {
  color: var(--red);
}

.badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 50px;
  line-height: 1;
  font-weight: 700;
}

.badge.blue {
  background: #D3E7FF;
  color: var(--blue);
}

.badge.orange {
  background: #FFE5D4;
  color: #F9530C;
}


input,
textarea {
  font-family: 'LINE Seed Sans KR';
  font-weight: 400;
}

input {
  padding: 12px 8px 12px 16px;
  box-shadow: 0 0 0 1px var(--gray_20);
  border: none;
  border-radius: 8px;
  outline: none;
  line-height: 1.5rem;
  font-size: 0.875rem;
}

input:focus {
  box-shadow: 0 0 0 2px var(--blue);
}

input.error {
  box-shadow: 0 0 0 2px var(--red);
}

input:read-only {
  background-color: var(--gray_5);
}

label {
  display: block;
  position: relative;
  text-align: left;
  cursor: pointer;
  user-select: none;
}

label.vertical {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

label.vertical p {
  color: var(--gray_60);
}



label.ipt_btn {
  position: relative;
}

label.ipt_btn input[type=text] {
  padding-right: 84px;
}

label.ipt_btn button {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
}

label.ipt_btn p+input+button {
  transform: translateY(-0%);
}

select {
  position: relative;
  padding: 12px 40px 12px 16px;
  outline: 0;
  border: 0;
  border-radius: 6px;
  background-color: #fff;
  background-image: url('/images/icon/arrow/down.svg');
  background-repeat: no-repeat;
  background-position: right 6px center;
  box-shadow: 0 0 0 1px var(--gray_20);
  color: var(--gray_90);

  font-family: 'LINE Seed Sans KR';
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5rem;
  letter-spacing: -0.009rem;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.lb_checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.lb_checkbox input[type=checkbox] {
  display: none;
}

.lb_checkbox input[type=checkbox]:checked+span {
  position: relative;
  background-color: #0951BD;
}

.lb_checkbox input[type=checkbox]:checked+span::before {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-image: url("/images/icon/common/check.svg");
  background-size: 12px;
  background-repeat: no-repeat;
  background-position: center;
}

.lb_checkbox span {
  display: inline-block;
  width: 20px;
  min-width: 20px;
  height: 20px;
  border: 1px solid var(--gray_25);
  border-radius: 4px;

}

.lb_checkbox p {
  color: var(--gray_50);
}

.lb_radio {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.lb_radio span {
  display: inline-block;
  width: 20px;
  min-width: 20px;
  height: 20px;
  border: 2px solid var(--gray_25);
  border-radius: 50%;
}

.lb_radio input[type=radio] {
  display: none;
}

.lb_radio input[type=radio]:checked+span {
  position: relative;
  border: 2px solid #0951BD;
}

.lb_radio input[type=radio]:checked+span::before {
  content: '';
  display: inline-block;
  width: 7px;
  height: 7px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background-color: #0951BD;

}

.lb_radio p {
  color: var(--gray_50);
}


.divider {
  display: inline-block;
  width: 1px;
  height: 12px;
  background-color: var(--gray_20);
}

.caution {
  color: #F63535 !important;
}

.page_header {
  margin-bottom: 60px;
  text-align: center;
}


.board_navigation li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 0;
  border-top: 1px solid var(--gray_20);
  border-bottom: 1px solid var(--gray_20);
  text-align: left;
  color: var(--gray_50);
}

.board_navigation li a.on span:last-child {
  color: var(--gray_90);
}

.board_navigation li:nth-child(2) a {
  border-top: none;
}

.page_step {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  font-size: 1rem;
  color: var(--gray_45);
  line-height: 1.75rem;
}

.page_step span.on {
  color: #0951BD;
  font-weight: 700;
}

.radio_box {
  display: flex;
  align-items: center;
  gap: 20px;
}

.pc_only {
  display: block;
}

.mo_only {
  display: none;
}