@import url('../fonts/custom-icons.css');

:root {
	--primary: #E984C2;
    --primary-300: #FEE5F3;
	--primary-light: #FDE0F2;
    --primary-light-bg: #FDF6FA;
	--secondary: #40CEB8;
    --secondary-light: #F6FDFB;
	--success: #6FD3F3;
    --success-light: #C6ECF8;
    --success-light-bg : #EAF9FD;
    --danger : #FF383C;
	--warning: #FDCF64;
    --BI: #E80600;
	--navy: #272F50;
	--dark: #212226;
	--gray-700: #4D5458;
	--gray-500: #7A838A;
	--gray-300: #B3BBC0;
	--gray-light: #D0D6DA;
	--light: #F0F3F4;
	--box-shadow: 0 4px 10px rgba(43, 47, 50, 0.15);
    --gap-10: 10px;
	--gap-20: 20px;
  	--gap-30: 30px;
    --gap-50: 50px;
	--text-sm: 1.4rem;
    --bg-gr-primary: rgba(253,224,242,1) 0%, rgba(253,224,242,0) 100%;
}

* {
    word-break: keep-all;
    overflow-wrap: break-word;
}

/* pc mobile show hide */
.pc-only,
.pc-only.active {
    display: block;
}

.mb-only,
.mb-only.active {
    display: none;
}

/* input reset & theme */
input, select, textarea {
	border: 1px solid var(--gray-light);
	padding: 12px 16px;
	border-radius: 6px;
}

input:focus,
select:focus,
textarea:focus {
	outline: 2px solid var(--primary);
}

.inputGroup {
	display: flex;
	gap: 8px;
	width: 100%;
}

.inputGroup.inputGroupRow {
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;

}

.inputGroup.inputGroupCol {
	flex-direction: column;
	align-items: flex-start;
}

.inputGroup label {
	font-size: 14px;
	font-weight: 600;
}

.inputGroup input,
.inputGroup select,
.inputGroup textarea {
	width: 100%;
	font-size: 16px;
}

.customSelect {
	position: relative;
	width: 100%;
	border: 1px solid var(--gray-light);
	border-radius: 6px;
}

.customSelect select {
	width: 100%;
	padding-right: 40px;
}

.customSelect i {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: var(--gray-light);
}

.customCheckbox {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    gap: 8px;
    font-size: 14px;
}

.customCheckbox input {
    display: none;
}

.customCheckbox .checkmark {
    width: 18px;
    height: 18px;
    border: 1px solid var(--gray-light);
    border-radius: 4px;
    position: relative;
    transition: all 0.2s ease;
}

/* check */
.customCheckbox .checkmark::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 0;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    opacity: 0;
}

/* checked */
.customCheckbox input:checked + .checkmark {
    background-color: var(--secondary);
    background-color: var(--secondary);
}

.customCheckbox input:checked + .checkmark::after {
    opacity: 1;
}

/* overflow */
.overflow-hidden {
    overflow: hidden !important;
}

/* btn theme */
.btn {
    display: inline-block;
    align-items: center;
    width: fit-content;
    border-radius: 8px;
    transition: all 0.3s;
}

[class^="btn-"],
[class~="btn"] {
	display: inline-block;
    text-align: center;
    line-height: normal;
	transition: all 0.3s;
}

[class^="btn-sm-"],
[class~="btn-sm"] {
	padding: 8px 22px;
	font-size: 14px;
}

[class^="btn-md-"],
[class~="btn-md"] {
	padding: 8px 22px;
	font-size: 16px;
}

[class^="btn-lg-"],
[class~="btn-lg"] {
	padding: 10px 28px;
	font-size: 1.8rem;
}

[class^="btn-xl-"],
[class~="btn-xl"] {
	padding: 8px 28px;
	font-size: 2.0rem;
}

.btn-primary {
	background-color: var(--primary);
	color: #fff;
}

.btn-primary:hover {
	background: #fff;
	color: var(--primary);
    box-shadow: inset 0 0 0 1px var(--primary);
}

.btn-secondary {
	background-color: var(--secondary);
	color: #fff;
}

.btn-secondary:hover {
	background: #fff;
	color: var(--secondary);
    box-shadow: inset 0 0 0 1px var(--secondary);
}

.btn-success {
	background-color: var(--success);
	color: #fff;
}

.btn-success:hover {
	background: #fff;
	color: var(--success);
    box-shadow: inset 0 0 0 1px var(--success);
}

.btn-danger {
    background: var(--danger);
    color: #fff;
}

.btn-danger:hover {
    background: #fff;
    color: var(--danger);
    box-shadow: inset 0 0 0 1px var(--danger);
}

.btn-dark {
	background-color: var(--dark);
	color: #fff;
}

.btn-dark:hover {
	background: #fff;
	color: var(--dark);
    box-shadow: inset 0 0 0 1px var(--dark);
}

.btn-gray-500 {
	background-color: var(--gray-500);
	color: #fff;
}

.btn-gray-500:hover {
	background: #fff;
	color: var(--gray-500);
    box-shadow: inset 0 0 0 1px var(--gray-500);
}

.btn-gray-300 {
	background-color: var(--gray-300);
	color: #fff;
}

.btn-gray-300:hover {
	background: #fff;
	color: var(--gray-300);
    box-shadow: inset 0 0 0 1px var(--gray-300);
}

.btn-gray-light {
	background-color: var(--gray-light);
	color: #fff;
}

.btn-gray-light:hover {
	background: #fff;
	color: var(--gray-light);
    box-shadow: inset 0 0 0 1px var(--gray-light);
}

.btn-white {
	background-color: #fff;
	color: var(--dark);
}

.btn-white:hover {
	background: var(--dark);
	color: #fff;
}

.btn-outline-primary {
	color: var(--primary);
	box-shadow: inset 0 0 0 1px var(--primary);
    font-weight: 600;
}

.btn-outline-primary.active,
.btn-outline-primary:hover {
	background: var(--primary);
    color: #fff;
}

.btn-outline-secondary {
	color: var(--secondary);
	box-shadow: inset 0 0 0 1px var(--secondary);
    font-weight: 600;
}

.btn-outline-secondary.active,
.btn-outline-secondary:hover {
	background: var(--secondary);
    color: #fff;
}

.btn-outline-gray-500 {
	color: var(--gray-500);
	box-shadow: inset 0 0 0 1px var(--gray-500);
    font-weight: 600;
}

.btn-outline-gray-500.active,
.btn-outline-gray-500:hover {
	background-color: var(--gray-500);
	color: #fff;
}

.btn-outline-gray-300 {
	color: var(--gray-300);
	box-shadow: inset 0 0 0 1px var(--gray-300);
    font-weight: 600;
}

.btn-outline-gray-300.active,
.btn-outline-gray-300:hover {
	background-color: var(--gray-300);
	color: #fff;
}

.btn-outline-gray-light {
	color: var(--gray-light);
	box-shadow: inset 0 0 0 1px var(--gray-light);
    font-weight: 600;
}

.btn-outline-gray-light.active,
.btn-outline-gray-light:hover {
	background-color: var(--gray-light);
	color: #fff;
}

.btn-pill {
	border-radius: 40px;
}

.btn-arrow {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
	border-radius: 40px;
}

.btn-sm.btn-arrow .icon-arrow {
	font-size: 2.0rem;
}

.btn-md.btn-arrow .icon-arrow {
	font-size: 3.0rem;
}

.btn-rounded-arrow {
	display: inline-flex;
	justify-content: flex-end;
	align-items: center;
	gap: 18px;
	padding: 6px 6px 6px 22px !important;
	border-radius: 40px;
}

.btn-rounded-arrow .icon-rounded-arrow {
	font-size: 2.4rem;
}

/* bg theme */
.bg-navy {
	background-color: var(--navy) !important;
	color: #fff !important;
}

.bg-dark {
	background-color: var(--dark) !important;
	color: #fff !important;
}

.bg-gray-700 {
	background-color: var(--gray-700) !important;
	color: #fff !important;
}

.bg-light {
	background-color: var(--light) !important;
}

.bg-white {
	background: #fff !important;
}

.bg-primary {
    background-color: var(--primary) !important;
}

.bg-primary-300 {
    background-color: var(--primary-300) !important;
}

.bg-primaryLight {
    background-color: var(--primary-light-bg) !important;
}

.bg-grPrimary {
    background-color: var(--bg-gr-primary) !important;
}

.bg-secondary {
    background-color: var(--secondary) !important;
}

.bg-secondaryLight {
    background-color: var(--secondary-light) !important;
}

.bg-success {
    background-color: var(--success) !important;
}

.bg-successLight {
    background-color: var(--success-light-bg) !important;
}

/* border theme */
hr {
    border: 0;
    height: 1px;
    background: var(--gray-light);
    opacity: 1;
}

.border {
    border: 1px solid var(--light);
}

.border-bottom {
    border-bottom: 1px solid var(--light);
}

.border-primary {
    border-color: var(--primary-light);
}

.border-gray-500 {
    border-color: var(--gray-500);
}

.border-gray-300 {
    border-color: var(--gray-300);
}

/* box style */
.rounded {
    border-radius: 8px;
    overflow: hidden;
}

.box-shadow {
    box-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}


/* text theme */
.text-primary {
    color: var(--primary) !important;
}

.text-primaryLight {
    color: var(--primary-light) !important;
}

.text-primaryxLight {
    color: var(--primary-light-bg) !important;
}

.text-secondary {
	color: var(--secondary) !important;
}

.text-secondaryLight {
	color: var(--secondary-light) !important;
}

.text-success {
	color: var(--success) !important;
}

.text-danger {
    color: var(--danger) !important;
}

.text-warning {
	color: var(--warning) !important;
}

.text-red {
    color: var(--BI) !important;
}

.text-dark {
    color: var(--dark) !important;
}

.text-gray-700 {
    color: var(--gray-700) !important;
}

.text-gray-500 {
    color: var(--gray-500) !important;
}

.text-gray-300 {
    color: var(--gray-300) !important;
}

.text-gray-light {
    color: var(--gray-light) !important;
}

.text-white {
    color: #fff !important;
}

.text-center {
  	text-align: center !important;
}

.text-right {
  	text-align: right !important;
}

.text-left {
  	text-align: left !important;
}

.text-xs {
    font-size: 12px !important;
}

.text-sm {
    font-size: 14px !important;
}

.text-normal {
    font-size: 1.6rem !important;
}

.text-md {
    font-size: 2.0rem !important;
}

.text-lg {
    font-size: 2.4rem !important;
}

.text-xl {
	font-size: 3.2rem !important;
}

.text-xxl {
	font-size: 5.2rem !important;
}

.text-16 {
    font-size: 16px !important;
}

.text-18 {
    font-size: 18px !important;
}

.text-20 {
    font-size: 20px !important;
}

.lineh-14 {
    line-height: 1.4 !important;
}

.text-regular {
    font-weight: 400 !important;
}

.text-medium {
    font-weight: 500 !important;
}

.text-semibold {
    font-weight: 600 !important;
}

.text-bold {
    font-weight: 700 !important;
}

.letter-spacing-30 {
    letter-spacing: 30% !important;
}

.text-subFont {
	font-family: "Ohsquare";
}


.text-subFont strong,
.text-subFont .text-bold {
	font-family: "Ohsquare-bold";
	font-weight: normal;
}

h1 {
    font-size: 5.2rem;
    line-height: 1.3;
}

h2 {
    font-size: 4.4rem;
}

h3 {
    font-size: 3.2rem;
}

h4 {
    font-size: 2.4rem;
}

li {
    line-height: 1.4;
}

.list-number > li {
  	list-style: decimal;
}

.list-disc > li {
  	list-style: disc;
}

.list-check,
.list-bang {
    list-style: none;
    padding-left: 0;
}

.list-check > li,
.list-bang > li {
	position: relative;
    padding-left: 25px;
}

.list-check > li::before,
.list-bang > li::before {
    position: absolute;
    left: 0;
    top: 2px;
    font-family: "Font Awesome 7 Free";
    padding: 0 12px 0 4px;
    font-weight: 900;
    font-size: 1.6rem;
}

.list-check > li.py-10::before,
.list-bang > li.py-10::before {
    top: 12px;
}

.list-check > li::before {
    content: "\f00c";
    color: var(--secondary);
}

.list-bang > li::before {
    content: "\21";
    color: var(--warning);
}

.list-check.list-primary > li::before,
.list-primary > li::marker {
  	color: var(--primary);
}

.list-secondary > li::marker {
  	color: var(--secondary);
}

.list-check.list-warning > li::before,
.list-warning > li::marker {
  	color: var(--warning);
}

/* cover img */
.coverImg {
    overflow: hidden;
}

.coverImg img {
    display: block;
    object-fit: cover;
    width: 100%;
    height: 100% !important;
}

/* modal */
.modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: none;
	z-index: 999999;
}

.modal.active {
	display: block;
}

.modalOverlay {
	position: absolute;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.5);
}

.modalContent {
	position: relative;
	display: flex;
	flex-direction: column;
	max-width: 400px;
	max-height: 100vh;
	margin: 0 auto;
	padding: 20px 20px;
}

.modal-sm .modalContent {
	max-width: 400px;
}

.modal-md .modalContent {
	max-width: 1024px;
}

.modal-lg .modalContent {
	max-width: 90%;
}

.modalBody {
	padding: 16px;
	overflow-y: auto;
	flex: 1;
	background-color: #fff;
}

.modalHeader,
.modalFooter {
	padding: 12px 16px;
	background-color: #fff;
}

.modalHeader {
	display: flex;
	justify-content: space-between;
	border-bottom: 1px solid var(--light);
	border-radius: 8px 8px 0 0;
}

.modalHeader button {
	background: transparent;
	font-size: 16px;
	color: var(--gray-500);
}

.modalFooter {
	border-top: 1px solid var(--light);
	border-radius: 0 0 8px 8px;
}

/* position */
.position-relative {
    position: relative !important;
}

.position-absolute {
    position: absolute !important;
}

@media (max-width: 950px) {
    :root {
        --gap-20: 10px;
        --gap-30: 20px;
    }

    [class^="btn-lg-"], [class~="btn-lg"] {
        padding: 10px 28px;
        font-size: 16px;
    }
}

@media (max-width: 768px) {
    :root {
        --text-sm: 12px;
    }

    /* pc mobile show hide */
    .pc-only,
    .pc-only.active {
        display: none;
    }
    .mb-only,
    .mb-only.active {
        display: block;
    }
}

@media (max-width: 520px) {
    .text-lg {
        font-size: 2.2rem;
    }
}
