/*
Theme Name: EC Precision Shine
Theme URI: https://ecprecisionshine.com
Author: Walter Carlson
Author URI: https://wallyhojo.github.io/react-website-portfolio/
Description: A modern, performance-optimized WordPress theme designed for automotive detailing businesses. Features Elementor integration, smooth page transitions, animated loading screens, AOS scroll animations, responsive navigation, and comprehensive Contact Form 7 styling. Built with accessibility in mind and optimized for mobile devices.
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ec-precision-shine
Tags: automotive, business, custom-logo, custom-menu, elementor, featured-images, flexible-header, full-width-template, one-column, responsive-layout, accessibility-ready, mobile-first, smooth-scroll, animation, contact-form-7
*/
html {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    background: var(--e-global-color-secondary);
    color: var(--e-global-color-text);
    font-family: var(--e-global-typography-primary-font-family);
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
    padding: 0;
}
* {
    box-sizing: border-box;
}
/* ================================
   Links
   ================================ */
a {
    text-decoration: none;
    color: var(--e-global-color-1461d5e);
    font-family: var(--e-global-typography-accent-font-family), Sans-serif;
    /*font-size: var(--e-global-typography-accent-font-size);*/
    font-weight: var(--e-global-typography-accent-font-weight);
    line-height: var(--e-global-typography-accent-line-height);
    transition: background-color 0.3s ease-out, color 0.3s ease-in-out;
}
a:is(:hover,:focus,:visited) {
    color: var(--e-global-color-e2427a4);
}
/* ================================
   Buttons
   ================================ */
/* Accent Text / Buttons */
.btn {
    padding: 10px 20px;
    font-family: var(--e-global-typography-accent-font-family);
    font-weight: var(--e-global-typography-accent-font-weight);
    font-size: 1rem;
    line-height: 1.3;
    /*letter-spacing: 0.08em;*/
    text-transform: uppercase;
    color: var(--e-global-color-text) !important;
    border-radius: 30px;
    transition: background-color 0.3s ease-out, color 0.3s ease;
}
.btn-primary {
    background-color: var(--e-global-color-1461d5e);
    border: solid 1px var(--e-global-color-e2427a4);
}
.btn-primary:hover {
    background-color: var(--e-global-color-e2427a4);
    color: var(--e-global-color-text);
}
/* ================================
   Headings
   ================================ */
h1, h2, h3, h4, .gradient-text, .gradient-text p {
    background: linear-gradient(180deg,
            #f5f5f5 0%,
            #e2e2e2 12%,
            #ffffff 25%,
            #c9c9c9 40%,
            #b5b5b5 55%,
            #dcdcdc 70%,
            #ffffff 85%,
            #e8e8e8 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
/* ================================
   Visibility
   ================================ */
.center-block {
    display: block;
}
.no-scroll {
    overflow: hidden;
}
.hidden {
    display: none !important;
}
.visible {
    display: block !important;
}
/* Media Queries */
@media (max-width: 575.98px) {
    .hidden-xs {
        display: none !important;
    }
    .visible-xs {
        display: block !important;
    }
}
@media (min-width: 576px) and (max-width: 767.98px) {
    .hidden-sm {
        display: none !important;
    }
    .visible-sm {
        display: block !important;
    }
}
@media (min-width: 768px) and (max-width: 991.98px) {
    .hidden-md {
        display: none !important;
    }
    .visible-md {
        display: block !important;
    }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
    .hidden-lg {
        display: none !important;
    }
    .visible-lg {
        display: block !important;
    }
}
@media (min-width: 1200px) {
    .hidden-xl {
        display: none !important;
    }
    .visible-xl {
        display: block !important;
    }
}
/* ================================
   Flex Utilities
   ================================ */
.flex-all {
    display: flex;
}
.direction-column {
    flex-direction: column;
}
.justify-between {
    justify-content: space-between;
}
.align-center {
    align-items: center;
}
/* ================================
   Grid Utilities
   ================================ */
.grid-all {
    display: grid;
}
/* ================================
   Lists
   ================================ */
.list-none {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
/* ================================
   Containers
   ================================ */
.container, .container-fluid {
    margin: 0 auto;
    padding: 0 20px;
}
/* Media Queries */
@media (min-width: 576px) {
    .container {
        max-width: 540px;
    }
}
@media (min-width: 768px) {
    .container {
        max-width: 720px;
    }
}
@media (min-width: 992px) {
    .container {
        max-width: 960px;
    }
}
@media (min-width: 1200px) {
    .container {
        max-width: 1140px;
    }
}
@media (min-width: 1440px) {
    .container {
        max-width: 1410px;
    }
}
@media (min-width: 1600px) {
    .container {
        max-width: 1540px;
    }
}
/* ================================
   Misc
   ================================ */
.divider::before, .divider::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
}
.divider.--dark::before {
    background: linear-gradient(to right, rgba(0, 1, 17, 0) 0%, rgba(0, 1, 9, 1) 25%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 100%);
    top: 0;
}
.divider.--dark::after {
    background: linear-gradient(to right, rgba(14, 14, 14, 0) 0%, rgb(14, 14, 14) 25%, rgba(14, 14, 14, 1) 50%, rgba(14, 14, 14, 1) 75%, rgba(14, 14, 14, 0) 100%);
    top: 1px;
}