Files
egbim_homepage/egbim/skin/sales/assets/css/common.css
T
2026-07-23 16:15:57 +09:00

716 lines
12 KiB
CSS

@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap");
/**
* 반응형 폰트 크기 (responsive font)
* @param {number} $min-px - 최소 폰트 크기 (px)
* @param {number} $max-px - 최대 폰트 크기 (px)
* @param {number} $min-vw - 최소 뷰포트 너비 (기본값: 375px)
* @param {number} $max-vw - 최대 뷰포트 너비 (기본값: 1920px)
*/
/**
* 박스 그림자 (box-shadow)
* @param {number} $x - X 오프셋 (기본값: 0px)
* @param {number} $y - Y 오프셋 (기본값: 3px)
* @param {number} $blur - 블러 반경 (기본값: 6px)
* @param {number} $spread - 확산 반경 (기본값: 0px)
* @param {color} $color - 색상 (기본값: rgba(0, 0, 0, 0.25))
* @param {boolean} $important - !important 사용 여부 (기본값: false)
*/
/**
* 텍스트 그림자(text-shadow)
* @param {number} $x - X 오프셋 (기본값: 0px)
* @param {number} $y - Y 오프셋 (기본값: 1px)
* @param {number} $blur - 블러 반경 (기본값: 0px)
* @param {color} $color - 색상 (기본값: rgba(0, 0, 0, 0.25))
* @param {boolean} $important - !important 사용 여부 (기본값: false)
*/
/**
* 미디어 쿼리 mixin
* @param {string|number} $width - 브레이크포인트 이름 또는 픽셀 값
* @param {string} $type - 'min' 또는 'max'
* @example
* @include mq('desktop') { ... }
* @include mq(1920px) { ... }
* @include mq('tablet', 'max') { ... }
*/
html {
font-size: 10px;
}
html[lang=ko-KR], html[lang=ko] {
font-family: "Noto Sans KR", sans-serif;
}
html[lang=en],
html *[lang=en] {
font-family: "Noto Sans KR", Arial, sans-serif, serif;
}
html[lang=en] body,
html *[lang=en] body {
font-size: 18px;
font-weight: 400;
}
html body {
font-size: 16px;
font-weight: 400;
line-height: 1.4;
color: #000;
letter-spacing: -0.04em;
}
/* ====================================================================== */
/* [Web Font]
/* ====================================================================== */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html {
-webkit-text-size-adjust: 100%;
}
main {
display: block;
}
pre {
font-family: monospace, monospace;
font-size: 1em;
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
}
b,
strong {
font-weight: bolder;
}
code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
img {
border-style: none;
}
button,
input,
optgroup,
select,
textarea {
font-family: inherit;
font-size: 100%;
line-height: 1.15;
margin: 0;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
[type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
border-style: none;
padding: 0;
}
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
outline: 1px dotted ButtonText;
}
fieldset {
padding: 0.35em 0.75em 0.625em;
}
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}
progress {
vertical-align: baseline;
}
textarea {
overflow: auto;
}
[type=checkbox],
[type=radio] {
box-sizing: border-box;
padding: 0;
}
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
height: auto;
-webkit-appearance: none;
appearance: none;
margin: 0;
}
[type=search] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
[type=search]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
details {
display: block;
}
summary {
display: list-item;
}
template {
display: none;
}
[hidden] {
display: none;
}
/* reset */
html * {
box-sizing: border-box;
word-wrap: break-word;
}
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
figure,
legend,
input,
textarea,
button,
p,
blockquote,
th,
td,
form,
fieldset,
blockquote,
iframe {
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
-moz-text-size-adjust: 100%;
text-size-adjust: 100%;
}
article,
aside,
canvas,
details,
embed,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary {
display: block;
}
command,
datalist,
keygen,
mark,
meter,
progress,
rp,
rt,
ruby,
time,
wbr {
display: inline;
}
img {
display: inline-block;
vertical-align: top;
max-width: 100%;
border: 0;
image-rendering: -moz-crisp-edges; /* firefox */
image-rendering: -o-crisp-edges; /* opera */
image-rendering: -webkit-optimize-contrast; /* chrome(비표준) */
image-rendering: crisp-edges;
transform: translateZ(0);
}
fieldset {
border: 0;
}
ul,
ol,
li {
list-style: none;
}
pre {
white-space: pre-wrap;
}
legend,
caption {
position: relative;
clip: rect(0 0 0 0);
clip-path: inset(50%);
width: 1px;
height: 1px;
margin: -1px;
overflow: hidden;
border: 0;
padding: 0;
white-space: nowrap;
clear: both;
}
a {
color: inherit;
cursor: pointer;
background-color: transparent;
}
a:link {
text-decoration: none;
}
a:hover, a:focus, a:active, a:visited {
text-decoration: none;
}
em,
i,
address,
cite {
font-style: normal;
font-weight: normal;
}
input,
textarea,
select,
button,
table {
font-size: inherit;
font-family: inherit;
border: 0;
background-color: transparent;
}
button,
select {
cursor: pointer;
}
textarea,
input,
select {
border-radius: 0;
border: 0;
outline-color: -moz-use-text-color;
outline-width: medium;
}
textarea {
resize: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
label {
cursor: pointer;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
table {
table-layout: fixed;
border-collapse: collapse;
border-spacing: 0;
}
th,
td {
border-collapse: collapse;
}
select::-ms-expand {
display: none;
}
/* 스크롤바 스타일 */
::-webkit-scrollbar {
height: 10px;
width: 10px;
}
::-webkit-scrollbar-thumb {
background-color: #aaa;
border-radius: 8px;
background-clip: padding-box;
border: 2px solid transparent;
}
::-webkit-scrollbar-track {
background-color: transparent;
}
::before,
::after {
box-sizing: border-box;
}
/* clearfix */
.clearfix {
/* IE 지원 방식 : *zoom: 1;*/
}
.clearfix:before, .clearfix:after {
content: "";
display: block;
}
.clearfix:after {
clear: both;
}
/* hidden */
.blind {
position: absolute;
clip: rect(0 0 0 0);
clip-path: inset(50%);
width: 1px;
height: 1px;
margin: -1px;
overflow: hidden;
border: 0;
padding: 0;
white-space: nowrap;
}
.d-none {
display: none !important;
}
[class*=gra] {
position: relative;
}
[class*=gra]::before, [class*=gra]::after {
content: "";
position: absolute;
border-radius: inherit;
pointer-events: none;
}
[class*=gra]::after {
inset: 0;
padding: 1px;
-webkit-mask: var(--mask-contents);
mask: var(--mask-contents);
-webkit-mask-composite: xor;
mask-composite: exclude;
}
.flex {
display: flex;
align-items: center;
justify-content: center;
}
/* toggle btn*/
.toggle-area {
position: relative;
display: flex;
padding: 6px;
width: 172px;
height: 48px;
background: #e5dfd3;
border: 1px solid #fff;
border-radius: 50px;
box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.2) inset;
}
.toggle-area input[type=radio] {
display: none;
}
.toggle-area input[type=radio]:checked + label {
color: white;
filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.5));
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.5), 1px -1px 0 rgba(0, 0, 0, 0.5), -1px 1px 0 rgba(0, 0, 0, 0.5), 1px 1px 0 rgba(0, 0, 0, 0.5);
}
.toggle-area input[type=radio]:checked:nth-of-type(2) ~ .toggle-slider {
transform: translateX(100%);
}
.toggle-area label {
flex: 1;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
z-index: 2;
font-weight: 700;
font-size: 16px;
color: rgba(16, 16, 16, 0.8);
display: flex;
align-items: center;
justify-content: center;
}
.toggle-slider {
position: absolute;
top: 4px;
left: 4px;
width: calc(50% - 4px);
height: calc(100% - 8px);
background: linear-gradient(179deg, #ff5c00 47.43%, #943600 99.56%);
border-radius: 50px;
transition: transform 0.3s ease;
z-index: 1;
box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, 0.2), 0 1px 2px 0 rgba(0, 0, 0, 0.2);
}
.toggle-slider::after {
content: " ";
display: block;
width: 100%;
height: 100%;
background: linear-gradient(180deg, #ffb68e 0%, #cd6f3b 24%, #ffdbc8 50%, #682500 83%, #a04411 100%);
inset: 0;
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
pointer-events: none;
border-radius: inherit;
padding: 1px;
}
/* Modal */
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
z-index: 1000;
align-items: center;
justify-content: center;
padding: 20px;
}
.modal.active {
display: flex;
}
.modal-content {
background: white;
border-radius: 12px;
width: 100%;
max-width: 700px;
max-height: 90vh;
overflow-y: auto;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.modal-header {
position: sticky;
top: 0;
padding: 0 24px;
display: flex;
justify-content: space-between;
align-items: center;
z-index: 10;
}
.modal-header h2 {
font-size: 24px;
color: #1f2937;
}
.modal-close {
background: none;
border: none;
font-size: 32px;
color: #000;
cursor: pointer;
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
transition: all 0.2s;
}
.modal-close:hover {
background: #f3f4f6;
color: #4b5563;
}
.modal-loading {
display: flex;
justify-content: center;
align-items: center;
padding: 60px;
}
.modal .spinner {
border: 3px solid #e5e7eb;
border-top: 3px solid #2563eb;
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/* media query */
/*
@media all and (min-width: 3841px) {
html {
//font-size: 14px;
}
}
// 3200px 초과 ~ 3840px: 4K 디스플레이
@media all and (min-width: 3201px) and (max-width: 3840px) {
html {
//font-size: 13px;
}
}
// 2560px 초과 ~ 3200px: 매우 큰 데스크톱
@media all and (min-width: 2561px) and (max-width: 3200px) {
html {
//font-size: 12px;
}
}
// 1920px 초과 ~ 2560px: 큰 데스크톱
@media all and (min-width: 1921px) and (max-width: 2560px) {
html {
//font-size: 11px;
font-size: 10px;
}
}
*/
@media all and (min-width: 1024px) {
html {
font-size: 9px;
}
}
@media all and (min-width: 1024px) and (max-width: 1920px) {
html {
font-size: 9px;
}
}
/*
// 1023px 이하: 태블릿
@media all and (max-width: 1023px) {
html {
font-size: 14px;
}
}
// 767px 이하
@media all and (max-width: 767px) {
html {
font-size: 13px;
}
}
// 639px 이하
@media all and (max-width: 639px) {
html {
font-size: 12px;
}
}
// 479px 이하
@media all and (max-width: 479px) {
html {
font-size: 10px;
}
}
// 359px 이하
@media all and (max-width: 359px) {
html {
font-size: 9px;
}
}
// 319px 이하
@media all and (max-width: 319px) {
html {
font-size: 8px;
}
}
*/