/* =========================
   COMMON CSS FOR MORTGAGE SITE
   ========================= */

/* =========================
   ROOT COLORS
   ========================= */
:root {
    --black-color: #000;
    --rich-black-color: #000009;
    --white-color: #fff;
    --anti-flash-white-color: #f2f2f2;
    --gainsboro-color: #ddd;
    --granite-gray-color: #666;
    --dark-charcoal-color: #333;
    --sonic-silver-color: #777;
    --blue-color: #0000ff;
    --vista-blue-color: #9090ee;
    --lime-green-color: #32CD32;
    --light-green-color: #90EE90;
    --green-success-color: #04F404;
    --inchworm-color: #C3F550;
    --lust-color: #e9301d;
    --middle-yellow-color: #FFEB00;
    --warning-yellow-color: #E9D502;
    --red-orange-color: #FF3F00;
    --forest-green-color: #218838;
}

/* =========================
   BASE STYLES
   ========================= */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Roboto', sans-serif;
}

body {
    background-color: var(--anti-flash-white-color);
    color: var(--dark-charcoal-color);
    line-height: 24px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--rich-black-color);
    margin-bottom: 8px;
}

p {
    margin-bottom: 16px;
}

a {
    text-decoration: none;
    transition: color 0.3s ease;
}

/* =========================
   BUTTON STYLES
   ========================= */
button,
.btn {
    padding: 8px 16px;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-block;
    text-align: center;
}

/* Primary */
.btn-primary {
    background-color: var(--lime-green-color);
    color: var(--white-color);
}

.btn-primary:hover {
    background-color: var(--light-green-color);
}

/* Secondary */
.btn-secondary {
    background-color: var(--sonic-silver-color);
    color: var(--white-color);
}

.btn-secondary:hover {
    background-color: var(--granite-gray-color);
}

/* Success */
.btn-success {
    background-color: var(--green-success-color);
    color: var(--white-color);
}

.btn-success:hover {
    background-color: var(--forest-green-color);
}

/* Warning */
.btn-warning {
    background-color: var(--warning-yellow-color);
    color: var(--dark-charcoal-color);
}

.btn-warning:hover {
    background-color: var(--middle-yellow-color);
}

/* Danger / Error */
.btn-danger {
    background-color: var(--lust-color);
    color: var(--white-color);
}

.btn-danger:hover {
    background-color: var(--red-orange-color);
}

/* =========================
   ALERT STYLES (Custom)
   ========================= */
.custom-alert {
    padding: 15px;
    margin: 20px 0;
    border-radius: 5px;
    position: fixed;
    right: 5px;
    top: 120px;
    font-size: 16px;
    max-width: 480px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0px 4px 8px #0000001a;
    color: var(--white-color);
    gap: 10px;
    overflow: hidden;
    z-index: 99999;
}

/* Title inside alert */
.custom-alert strong {
    margin-right: 10px;
}

/* Success, Error, Warning, Info */
.custom-alert-success {
    background-color: var(--green-success-color);
}

.custom-alert-error {
    background-color: var(--lust-color);
}

.custom-alert-warning {
    background-color: var(--warning-yellow-color);
    color: var(--dark-charcoal-color);
}

.custom-alert-info {
    background-color: var(--vista-blue-color);
}

/* Close button */
.custom-close-btn {
    color: var(--white-color);
    cursor: pointer;
    font-size: 20px;
    line-height: 15px;
    padding: 5px;
    font-weight: bold;
    margin-left: 15px;
    transition: color 0.3s ease;
}

.custom-close-btn:hover {
    color: #ffffffb3;
}

/* Progress bar */
.custom-alert .progress-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 4px;
    background: rgba(255, 255, 255, 0.7);
    width: 100%;
    transform: scaleX(1);
    transform-origin: left;
    transition: transform linear;
}

/* Mobile responsive */
@media screen and (max-width: 480px) {
    .custom-alert {
        max-width: 100%;
        right: 1px;
    }
}

/* =========================
   TEXT UTILITIES
   ========================= */
.text-primary {
    color: var(--blue-color) !important;
}

.text-secondary {
    color: var(--sonic-silver-color) !important;
}

.text-success {
    color: var(--green-success-color) !important;
}

.text-warning {
    color: var(--warning-yellow-color) !important;
}

.text-danger {
    color: var(--lust-color) !important;
}

.text-center {
    text-align: center !important;
}

.text-right {
    text-align: right !important;
}

.text-left {
    text-align: left !important;
}

/* =========================
   BACKGROUND UTILITIES
   ========================= */
.bg-primary {
    background-color: var(--blue-color) !important;
    color: var(--white-color);
}

.bg-secondary {
    background-color: var(--sonic-silver-color) !important;
    color: var(--white-color);
}

.bg-success {
    background-color: var(--green-success-color) !important;
    color: var(--white-color);
}

.bg-warning {
    background-color: var(--warning-yellow-color) !important;
    color: var(--dark-charcoal-color);
}

.bg-danger {
    background-color: var(--lust-color) !important;
    color: var(--white-color);
}

.bg-light {
    background-color: var(--anti-flash-white-color) !important;
}

/* =========================
   SPACING UTILITIES
   ========================= */
.m-0 {
    margin: 0 !important;
}

.mt-0 {
    margin-top: 0 !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.ml-0 {
    margin-left: 0 !important;
}

.mr-0 {
    margin-right: 0 !important;
}

.p-0 {
    padding: 0 !important;
}

.pt-0 {
    padding-top: 0 !important;
}

.pb-0 {
    padding-bottom: 0 !important;
}

.pl-0 {
    padding-left: 0 !important;
}

.pr-0 {
    padding-right: 0 !important;
}

.m-1 {
    margin: 4px !important;
}

.m-2 {
    margin: 8px !important;
}

.m-3 {
    margin: 16px !important;
}

.m-4 {
    margin: 24px !important;
}

.p-1 {
    padding: 4px !important;
}

.p-2 {
    padding: 8px !important;
}

.p-3 {
    padding: 16px !important;
}

.p-4 {
    padding: 24px !important;
}
