/* 1. Global Reset & Box Sizing */
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;
    box-sizing: border-box;
    font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, 
                 system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", 
                 "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", 
                 "Segoe UI Symbol", sans-serif;
}

/* 2. HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}

/* 3. HTML & Body Basic */
html {
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

body {
    line-height: 1;
}

/* 4. List & Quote Style */
ol, ul, li {
    list-style: none;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

/* 5. Table Reset */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* 6. Interaction & Links */
:focus {
    outline: 0;
}

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

a:focus {
    outline: thin dotted;
}

a:active, a:hover {
    outline: 0;
}

/* 7. Media elements */
img {
    max-width: 100%; /* 유동형 레이아웃 대응을 위해 추가 권장 */
    border: 0;
    -ms-interpolation-mode: bicubic;
}

/* 8. Form Elements Common */
button, input, select, textarea {
    font-family: "Pretendard Variable", sans-serif;
    font-size: 100%;
    font-weight: 400;
    margin: 0;
    vertical-align: baseline;
}

button, input {
    line-height: normal;
}

button, select {
    text-transform: none;
}

button {
    border: 0;
    background: none;
    cursor: pointer;
    letter-spacing: -0.25px;
}

/* 9. Input & Select Specifics */
select {
    background-color: #fff;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

select::-ms-expand {
    display: none; /* IE10, 11 */
}

select::-ms-value {
    background: none;
    color: #555;
}

input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box;
    padding: 0;
}

input[type="search"] {
    -webkit-appearance: textfield;
    box-sizing: content-box;
}

/* 10. Textarea Style */
textarea {
    overflow: auto;
    vertical-align: top;
    resize: vertical;
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 5px;
    min-height: 20px;
}

textarea:focus {
    border: 1px solid #0388d2;
}

/* 11. Disabled State */
button[disabled], 
html input[disabled] {
    cursor: default;
    background-color: #f5f7fa;
    color: #aaa;
    text-align: center;
}

/* 12. Misc */
[hidden] {
    display: none;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
    border: 0;
    padding: 0;
}