@charset "utf-8";

/* ==========================================================================
   Scrollbar Custom
   ========================================================================== */
::-webkit-scrollbar {width:6px; height:6px; display:block !important;}
::-webkit-scrollbar-track {background:var(--lbg) !important; margin:0 !important; padding:0 !important; border-radius:0 !important; border:none !important;}
::-webkit-scrollbar-thumb {background:var(--col02) !important; border-radius:0 !important; border:none !important;}
::-webkit-scrollbar-thumb:hover {filter:brightness(1.2) !important;}

/* ==========================================================================
   Universal Reset & Base Settings
   ========================================================================== */
* {
  margin:0; padding:0; 
  box-sizing:border-box; 
  text-size-adjust:none; 
  word-break:keep-all;
}

html {overflow-x:hidden; width:100%; height:100%;}
body {
  width:100%; height:100%; 
  font-family:'Pretendard', 'Noto Sans KR', sans-serif, '돋움'; 
  font-size:16px; font-weight:500; 
  line-height:1.45; letter-spacing:-0.05em; 
  color:#404040; 
  overscroll-behavior:none;
}

/* Common HTML Elements Reset */
div,span,object,h1,h2,h3,h4,h5,h6,p,a,abbr,address,cite,em,img,strong,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,section,summary,audio,video {
  vertical-align:baseline;
}

article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {display:block;}
audio[controls],canvas,video {display:inline-block;}
audio:not([controls]) {display:none; height:0;}

/* Typography & Links */
h1,h2,h3,h4,h5,h6 {font-weight:400; font-size:100%;}
strong, b {font-weight:700;}
i, address, caption, cite, code, dfn, em, var {font-style:normal; font-weight:normal;}
pre {font-family:inherit;}
a {color:inherit; text-decoration:none;}
a[href^="tel"] {color:inherit !important;}

/* Lists & Tables */
ol, ul, li {list-style:none;}
table {border-collapse:collapse; border-spacing:0; background:#fff; width:100%;}
img {max-width:100%; border:0; vertical-align:top;}

/* Accessibility & Hidden Elements */
hr {display:none; clear:both;}
legend, caption {display:none;}
.blind {position:absolute !important; left:-9999px; width:1px; height:1px; font-size:0; line-height:0; overflow:hidden;}

/* Text Selection */
::selection {background-color:var(--selection); color:#fff;}
::-moz-selection {background-color:var(--selection); color:#fff;}

/* ==========================================================================
   Form & Interactive Elements Reset
   ========================================================================== */
label {cursor:pointer;}

button, input, select, textarea {
  font-family:inherit; 
  font-size:100%; 
  vertical-align:middle; 
  outline:none;
}

button {background:none; border:0; padding:0; cursor:pointer;}
button[disabled], html input[disabled] {cursor:default;}

/* Shared Form Controls Layout */
a[class*='button'],
button,
button[type='reset'],
html input[type='button'],
input[type='reset'],
input[type='text'], input[type='password'], input[type='file'],
input[type='email'], input[type='number'], input[type='search'], input[type='tel'], input[type='url'],
input[type='radio'], input[type='checkbox'],
textarea, select {
  display:inline-block;
  box-sizing:border-box;
  max-width:100%;
  border-radius:0;
}

/* Buttons / Clickables Reset */
button,
html input[type='button'],
input[type='reset'],
input[type='submit'],
a[class*='button'] {
  appearance:none;
  cursor:pointer;
  padding:0 0.786em;
  font-size:0.9em;
  height:36px;
  line-height:34px; /* border(2px) 값을 제외한 실질적 중앙 정렬 */
  border:1px solid #bbb;
  color:#333;
  white-space:nowrap;
  background-color:#fff;
}

/* Inputs (Textual) */
input[type='text'], input[type='password'], input[type='file'],
input[type='email'], input[type='number'], input[type='search'], input[type='tel'], input[type='url'] {
  appearance:none;
  padding:0 0.786em;
  font-size:0.9em;
  height:36px;
  border:1px solid #e0e0e0;
  background-color:#fafafa;
}
input:focus {border-color:#666;}
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {appearance:none;}

/* File Control Styling */
input[type='file'] {
  height:auto; 
  padding-top:0.583em; padding-bottom:0.583em; 
  border-color:transparent; 
  font-size:0.857em;
}

/* Checkbox & Radio */
input[type='radio'], input[type='checkbox'] {
  width:1em; height:1em; 
  margin:0; 
  vertical-align:middle;
}
input[type='radio'] {border-radius:50%;}

/* Textarea */
textarea {
  width:100%; height:8em; 
  line-height:1.333; 
  padding:0.586em 0.786em;
  border:1px solid #e0e0e0;
  background-color:#fafafa;
  resize:none;
}
textarea[rows='1'] {height:1.444em;}
textarea[rows='2'] {height:2.888em;}
textarea[rows='5'] {height:7.222em;}

/* Select Control Styling */
select {
  appearance:none;
  min-width:60px;
  height:36px;
  padding:0 29px 0 0.786em;
  border:1px solid #e0e0e0;
  border-radius:0;
  color:#666;
  background:#fafafa url('../img/select_arr.svg') no-repeat 95% center / 1em;
}
select::-ms-expand {display:none;}
select[multiple] {height:auto; padding-right:0.786em; background:none;}

/* Exceptions / Utilities */
.wrap_map button {height:unset;}
.nowrap {white-space:nowrap !important;}

/* ==========================================================================
   Clear Fix
   ========================================================================== */
.clearfix::before,
.clearfix::after {content:''; display:table;}
.clearfix::after {clear:both;}