﻿/*---------------------------------------
| WEBPRO_BASE.CSS
| Universal Reset + Typography + Layout Utilities
----------------------------------------*/

/* 1. RESET & BOX MODEL */
*, *::before, *::after {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    font-family: 'Arimo', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    scroll-behavior: smooth;
    color: #2c2c2c;
    background-color: #fff;
}

/* 2. TYPOGRAPHY */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', sans-serif;
    
    line-height: 1.2;
    margin-bottom: 1rem;
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-size: 2rem;
    font-weight: 700;
}

h3 {
    font-size: 1.75rem;
}

h4 {
    font-size: 1.5rem;
}

h5 {
    font-size: 1.25rem;
}

h6 {
    font-size: 2rem;
    font-weight: 200;
}

p {
    margin-bottom: 1.2rem;
}

a {
    color: #00a0dd;
    text-decoration: none;
    transition: color 0.3s ease;
}

    a:hover {
        color: #0077a8;
    }

/* 3. UTILITY CLASSES */
.mt-0 {
    margin-top: 0 !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.pt-0 {
    padding-top: 0 !important;
}

.pb-0 {
    padding-bottom: 0 !important;
}

.text-center {
    text-align: center !important;
}

.text-uppercase {
    text-transform: uppercase !important;
}

.fw-bold {
    font-weight: 700 !important;
}

.fw-semibold {
    font-weight: 600 !important;
}

.lead-blurb {
    margin:1rem 4rem;
    text-align:center;
}

/* 4. CONTAINER */
.container-wide {
    max-width: 1240px;
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.container-wide-no-center {
    max-width: 1240px;
    padding-left: 1rem;
    padding-right: 1rem;
}

.container-wide-l {
    max-width: 1440px;
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.container-wide-xl {
    max-width: 1600px;
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.container-super-wide {
    max-width: 1720px;
    margin-inline: auto;
    padding-inline: 1rem;
    margin-top:4rem;
    margin-bottom:3rem;
}

/* 5. DIVIDERS & VISIBILITY */
.divider {
    height: 1px;
    background-color: #ddd;
    margin: 2rem 0;
    width: 100%;
}

.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    /*clip: rect(0, 0, 0, 0);*/
    white-space: nowrap;
    border: 0;
}

/* 6. IMAGES */
/*img {
    max-width: 100%;
    height: auto;
    display: block;
    vertical-align: middle;
}*/

/*.hero-img {
    width: 100%;
    object-fit: cover;
}*/

/* 7. BASE BUTTON */
.btn {
    display: inline-block;
    padding: 0.6rem 1.2rem;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    border: none;
    border-radius: 0px;
    transition: all 0.3s ease;
    text-align: center;
    cursor: pointer;
}

.btn-primary {
    background-color: #07b3b9;
    color: #fff;
}

    .btn-primary:hover {
        background-color: #15d4db;
    }

.btn-outline {
    background-color: transparent;
    border: 2px solid #00a0dd;
    color: #00a0dd;
}

    .btn-outline:hover {
        background-color: #00a0dd;
        color: #fff;
    }

/* 8. MARGINS */
.section-m-y {
    margin-top: 3.0rem;
    margin-bottom: 3.5rem;
}

.section-m-y-xl {
    margin-top: 8.0rem;
    margin-bottom: 8.0rem;
}

.section-m-t {
    margin-top: 1.5rem;
}

.section-m-b {
    margin-bottom: 1.5;
}
.section-m-b-lg {
    margin-bottom: 4.5;
}

@keyframes wpixFadeBounceIn {
    0% {
        opacity: 0;
        transform: scale(0.85);
    }

    60% {
        opacity: 1;
        transform: scale(1.04);
    }

    85% {
        transform: scale(0.98);
    }

    100% {
        transform: scale(1);
    }
}



/* Dark Mode */

body.dark-mode {
    background-color: #121212;
    color: #f1f1f1;
}

    /* Generic Element Fixes */
    body.dark-mode a {
        color: #90cdf4;
    }

    body.dark-mode .webpro-header,
    body.dark-mode .navbar,
    body.dark-mode .top-bar {
        background-color: #1e1e1e;
    }

    body.dark-mode .nav-link,
    body.dark-mode .hdr-phone {
        color: #f1f1f1;
    }

        body.dark-mode .nav-link:hover,
        body.dark-mode .dropdown-item:hover {
            color: #90cdf4;
        }

    body.dark-mode .dropdown-menu {
        background-color: #2c2c2c;
        border-color: #444;
    }

    body.dark-mode .dropdown-item {
        color: #f1f1f1;
    }

    body.dark-mode  {
        background: #333;
        color: #fff;
        border: 1px solid #666;
    }


/* Clean Dark Mode Toggle Button */
.dark-mode-btn {
    background: none;
    border: none;
    outline: none;
    color: #fff;
    font-size: 0..875rem;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    transition: opacity 0.2s ease;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

    .dark-mode-btn:focus,
    .dark-mode-btn:active {
        outline: none;
        box-shadow: none;
    }

    .dark-mode-btn:hover {
        opacity: 0.7;
    }

    /* Replace emoji with white icon (optional idea, if using an icon font) */
    .dark-mode-btn i {
        color: #fff !important;
        font-size: .875rem;
        line-height: 1;
    }
