:root {

    /* ==========================
       BRAND
    ========================== */

    --color-primary: #0A4FA3;
    --color-primary-dark: #072E63;
    --color-primary-darker: #021938;
    --color-primary-light: #0156a4;
    --color-primary-lighter: #2F6FA8;

    --color-accent: #F28C28;
    --color-accent-dark: #D97212;
    --color-accent-light: #fdf5ed;

    /* ==========================
       NEUTRAL
    ========================== */

    --color-white: #FFFFFF;
    --color-background: #F8FAFC;
    --color-surface: #FFFFFF;

    --color-text: #1E293B;
    --color-text-light: #64748B;

    --color-border: #E2E8F0;

    /* ==========================
       STATUS
    ========================== */

    --color-success: #16A34A;
    --color-warning: #F59E0B;
    --color-danger: #DC2626;

    /* ==========================
       TYPOGRAPHY
    ========================== */

    --font-title: "Poppins", sans-serif;
    --font-body: "Inter", sans-serif;

    --fs-xs: .875rem;
    --fs-sm: 1rem;
    --fs-md: 1.125rem;
    --fs-lg: 1.5rem;
    --fs-lg-mb: 1.7rem;
    --fs-xl: 2.25rem;
    --fs-xxl: 3.5rem;

    --fw-regular: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;

    /* ==========================
       SPACING
    ========================== */

    --space-xs: .5rem;
    --space-sm: 1rem;
    --space-md: 2rem;
    --space-lg: 4rem;
    --space-xl: 6rem;
    --space-xxl: 8rem;

    /* ==========================
       BORDER
    ========================== */

    --radius-sm: 8px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-full: 999px;

    /* ==========================
       SHADOWS
    ========================== */

    --shadow-sm: 0 4px 12px rgba(10,79,163,.08);
    --shadow-md: 0 10px 30px rgba(10,79,163,.12);
    --shadow-lg: 0 20px 50px rgba(10,79,163,.18);

    /* ==========================
       LAYOUT
    ========================== */

    --container: 1200px;
    --header-height: 90px;

    /* ==========================
       EFFECTS
    ========================== */

    --transition: .3s ease;
}

html{
    scroll-behavior: smooth;
}

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: var(--font-body);
}
a{
    text-decoration: none;
    color: inherit;
}
header{
    background-color: var(--color-white);
    color: var(--color-primary-dark);
    display: flex;
    justify-content:space-around;
    align-items: center;
    padding: var(--space-sm);
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
}

header .logo{
    height: 65px;
    flex-shrink: 0;
}

header .menu-toggle{
    display: none;
    border: none;
    background: none;
    cursor: pointer;
}

header .header-links{
    display: flex;
    gap: var(--space-md);
    align-items: center;
}

header .header-links .menu-link{
    position: relative;
    font-family: var(--font-title);
    white-space: nowrap;
}

header .header-links .menu-link::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    transform: translateX(-50%);
    width: 0;
    height: 3px;
    background: var(--color-accent-dark);
    border-radius: 999px;
    transition: width .3s ease;
}

header .header-links .menu-link:hover::after,
header .header-links .menu-link.active::after{
    width: 50%;
}

header .menu-link{
    font-family: var(--font-title);
}

.hero{
    background-image: url('../images/hero-image.webp');
    background-size: 100% 100%;
    height: 90vh;
    color: var(--color-white);
    text-align: center;
    padding: var(--space-lg) var(--space-xl);
    margin-top: calc(var(--header-height));
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: var(--space-md);
}

.hero .hero-title{
    gap: var(--space-sm);
    font-family: var(--font-title);
    font-size: var(--fs-xxl);
    max-width: 585px;
    font-weight: var(--fw-semibold);
}

.hero .hero-title span{
    color: var(--color-accent);
}

.hero .title-themes{
    display: flex;
    align-items: center;
    font-size: var(--fs-lg);
    font-weight: var(--fw-medium);
}

.dot{
    display: inline-block;
    width: 8px;
    height: 8px;
    background-color: var(--color-accent);
    border-radius: 50%;
    margin: 0 var(--space-xs);
}

.hero .hero-text{
    font-size: var(--fs-md);
    text-align: start;
    max-width: 500px;
}

.hero .hero-buttons {
    display: flex;
    gap: var(--space-md);
    margin-top: var(--space-xs);
}

.hero .hero-buttons .btn{
    display: inline-flex;
    align-items: center;
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    font-size: var(--fs-md);
    font-weight: var(--fw-medium);
    cursor: pointer;
    gap: var(--space-xs);
    border: 2px solid var(--color-accent);
}

.btn i{
    font-size: var(--fs-lg);
}

#btn-primary{
    background-color: var(--color-accent);
    color: var(--color-white);
}

.hero .hero-advantages{
    display: flex;
    gap: var(--space-sm);
    margin-top: var(--space-xs);
}

.hero .hero-advantages .advantage{
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 3px;
    color: var(--color-white);
    font-size: var(--fs-sm);
}

.advantage i{
    font-size: var(--fs-xxl);
    color: var(--color-accent);
}

.advantage .advantage-text{
    font-family: var(--font-title);
    font-weight: var(--fw-light);
    font-size: var(--fs-sm);
    max-width: 150px;
}

section .section-title{
    font-family: var(--font-title);
    font-weight: var(--fw-semibold);
    font-size: var(--fs-sm);
    color: var(--color-accent);
}

section .section-subtitle{
    font-family: var(--font-title);
    font-weight: var(--fw-bold);
    font-size: var(--fs-xl);
    color: var(--color-primary-darker);
}

.about-us{
    padding: var(--space-lg) var(--space-xl);
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: var(--space-xl);
}

.about-us .about-us-content{
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    max-width: 350px;
}

.about-us-content .section-subtitle{
    max-width: 500px;
}


.about-us .about-us-text{
    font-size: var(--fs-sm);
    color: var(--color-text);
    text-align: start;
    max-width: 550px;
    margin-bottom: var(--space-sm);
    text-align: justify;
}

.about-us .about-us-owner{
    display: flex;
    flex-direction: row;
    gap: var(--space-sm);
    align-items: center;
}

.about-us-owner .owner-image{
    width: 150px;
    height: 150px;
    object-fit: cover;
    /*border-radius: var(--radius-full);*/
}
.about-us-owner .owner-info{
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.owner-info .section-subtitle{
    font-size: var(--fs-lg);
}

.owner-info .about-us-text{
    max-width: 350px;
    text-align: justify;  
}

.owner-info img{
    filter: grayscale(100%);
    margin: auto;
}

.owner-info .owner-crea{
    color: var(--color-primary-darker);
    font-weight: var(--fw-bold);
    margin: auto;
}

.technology-images{
    width: 100%;
    background-image: url(../images/technology-banner.webp);
    height: 200px;
    background-size: cover;
    background-position: center;
}

.activity-area{
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-sm);
}

.activity-area .section-subtitle{
    position: relative;
}

.activity-area .section-subtitle::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    transform: translateX(-50%);
    width: 100px;
    height: 3px;
    background: var(--color-accent);
    border-radius: 999px;
    transition: width .3s ease;
}

.activity-area .activity-area-cards{
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: var(--space-md);
    margin-top: var(--space-lg);
}

.activity-area-cards .card{
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    padding: var(--space-xs);
    background-color: var(--color-white);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    transition: transform .3s ease, box-shadow .3s ease;
    max-width: 300px;
    margin-bottom: var(--space-md);
}

.activity-area-cards .card:hover{
    transform: translateY(-5px);
    box-shadow:var(--shadow-sm);
}

.card .card-image{
    display: flex;
    justify-content: center;
    align-items: flex-end;
    width: 100%;
    height: 200px;
    background-color: var(--color-primary-lighter);
    border-radius: var(--radius-sm);
}

.card i{
    position: absolute;
    background-color: var(--color-primary);
    z-index: 1;
    font-size: var(--fs-xxl);
    border-radius: var(--radius-md);
    color: var(--color-white);
}

.card .card-right-content{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-sm);
    line-height: 1.7;
}

.card .card-title{
    font-family: var(--font-title);
    font-weight: var(--fw-bold);
    font-size: var(--fs-lg);
    color: var(--color-primary-darker);
}

.card .card-text p{
    font-size: var(--fs-xs);
    margin-top: var(--space-xs);
    text-align: justify;
}

.contact{
    background-color: var(--color-accent-light);
    padding: var(--space-lg) var(--space-xl);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
    width: 100%;
}

.contact-content{
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

.contact-content img{
    border-radius: var(--radius-md);
    width: 200px;
}

.contact-content .contact-info{
    display: flex;
    flex-direction: column;
    max-width: 400px;
    gap: var(--space-xs);
}

.contact-info .section-subtitle{
    font-size: var(--fs-xl);
}

.contact-info .contact-text{
    font-size: var(--fs-xs);
    color: var(--color-text);
    text-align: start;
    max-width: 350px;
}

.contact-content .contact-cards{
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.contact-content .contact-cards .contact-card{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    background-color: var(--color-white);
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.contact-card .i-contact{
    font-size: var(--fs-xxl);
}

.contact-card .card-content{
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-sm);
}

.card-content .card-text{
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.card-content .contact-card-title{
    font-family: var(--font-body);
    font-weight: var(--fw-regular);
    font-size: var(--fs-xs);
    color: var(--color-text-light);
}

.card-content .card-text .contact-card-text{
    color: var(--color-primary-darker);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
}

.contact-card .i-arrow{
    font-size: var(--fs-lg);;
}

#contact-whatsapp i{
    color: var(--color-accent);
}
#contact-email i{
    color: var(--color-primary);
}

footer{
    background-color: var(--color-white);
    color: var(--color-primary-dark);
}

footer .footer-content{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-lg);
    background-color: var(--color-white);
    color: var(--color-primary-dark);
}

.footer-content .eccos-footer{
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
     max-width: 300px;
    color: var(--color-primary-dark);
}

.footer-content .footer-categories{
    display: flex;
    justify-content: space-around;
    gap: var(--space-xl);
}

.footer-categories .footer-category{
    color: var(--color-primary-dark);
}

.footer-category .footer-category-title{
    margin-bottom: var(--space-sm);
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
}

.footer-category .footer-category-list{
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.footer-bottom{
    display: flex;
    justify-content: space-between;
    padding: 5px var(--space-sm); 
    color: var(--color-text-light);
    text-align: center;
    font-size: var(--fs-xs);
    border-top: 1px solid var(--color-text-light);
}





@media (min-width: 1440px){
    .technology-images{
        height: 250px;
    }

    .activity-area .activity-area-cards .card{
        max-width: 350px;
    }
}

@media (min-width:2000px){
    .technology-images{
        height: 400px;
    }
}

@media (max-width:768px){
    header{
        padding: var(--space-sm);
    }

    header .menu-toggle{
        display:flex;
        align-items:center;
        justify-content:center;
        font-size: var(--fs-lg-mb);
    }

    header .header-links{
        position:absolute;
        top:100%;
        left:0;
        width:100%;
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:var(--space-md);
        padding:var(--space-md);
        background:var(--color-white);
        box-shadow:var(--shadow-md);
        opacity:0;
        visibility:hidden;
        transform:translateY(-15px);
        transition:var(--transition);
    }

    header .header-links.active{
        opacity:1;
        visibility:visible;
        transform:translateY(0);
    }

    header .menu-link{
        padding:.5rem 0;
    }

    header .logo{
        height:55px;
    }

    .hero{
        background-image: url('../images/hero-image-mb.webp');
        align-items:center;
        text-align:center;
        padding: var(--space-md) var(--space-xs);
        background-position:center;
        height:auto;
        min-height:85vh;
    }

    .hero .hero-title{
        font-size:var(--fs-xl);
    }

    .hero .hero-text{
        max-width:100%;
        font-size: var(--fs-sm);
        text-align:center !important;
    }

    .hero .title-themes{
        flex-wrap:wrap;
        justify-content:center;
        gap:.5rem;
        font-size: var(--fs-xs);
    }

    .hero .hero-buttons{
        flex-direction:column;
        width:80%;
    }

    .hero .hero-buttons .btn{
        justify-content:center;
        width:100%;
        font-size: var(--fs-sm);
    }

    .hero .hero-advantages{
        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;
        width: 100%;
        padding: var(--space-sm);
    }

    .hero .hero-advantages .advantage i{
        font-size: var(--fs-xl);
    }

    .hero .hero-advantages .advantage .advantage-text{
        font-size: var(--fs-xs);
        max-width: 100px;
    }

    .about-us{
        flex-direction: column;
        padding: var(--space-sm) var(--space-md);
        gap: var(--space-sm);
        align-items: center;
    }

    .about-us .section-title{
        font-size: var(--fs-sm);
        text-align: center;
    }

    .about-us-content .section-subtitle{
        font-size: var(--fs-lg-mb);
        text-align: center;
    }

    .about-us .about-us-owner{
        flex-direction: column;
        align-items: center;
    }

    .about-us .about-us-owner .owner-info{
        align-items: center;
    }

    .about-us .about-us-owner .owner-info .about-us-text{
    max-width: 350px;
    }

    .technology-images{
        background-image: url(../images/technology-banner-mb.webp);
        height: 250px;
        background-size:contain;
    }

    .activity-area{
        padding: var(--space-sm);
    }

    .activity-area .section-title{
        font-size: var(--fs-sm);
    }

    .activity-area .section-subtitle{
        font-size: var(--fs-lg-mb);
        text-align: center;
    }

    .activity-area .activity-area-cards{
        flex-direction: column;
        margin-top: var(--space-sm);
    }

    .contact .contact-content{
        flex-direction: column;
    }

    .contact .contact-content .section-title{
        font-size: var(--fs-sm);
        text-align: center;
    }

    .contact .contact-content .section-subtitle{
        font-size: var(--fs-lg-mb);
        text-align: center;
    }

    .contact .contact-content .contact-cards .contact-card{
        gap: 2px;
        padding: var(--space-xs);
    }

    .contact .contact-content .contact-cards .contact-card .i-contact{
        font-size: var(--fs-lg-mb);
    }

    .contact .contact-content .contact-cards .contact-card .contact-card-text{
        font-size: var(--fs-xs);
    }

    footer .footer-content{
        flex-direction: column;
        align-items: flex-start;
        padding: var(--space-md);
        gap: var(--space-md);
    }

    .footer-content .eccos-footer{
        max-width: 100%;
        width: 100%;
        align-items: center;
        text-align: center;
        padding-bottom: var(--space-md);
        border-bottom: 1px solid var(--color-border);
    }

    .eccos-footer .logo-footer{
        max-width: 220px;
    }

    .footer-description{
        max-width: 350px;
    }

    .footer-content .footer-categories{
        width: 100%;
        flex-direction: column;
        gap: var(--space-md);
    }

    .footer-categories .footer-category{
        width: 100%;
    }

    .footer-category .footer-category-title{
        font-size: var(--fs-md);
        margin-bottom: var(--space-sm);
    }

    .footer-category .footer-category-list{
        gap: var(--space-xs);
    }

    .footer-category .footer-category-link{
        display: flex;
        align-items: center;
        gap: var(--space-xs);
    }

    .footer-bottom{
        flex-direction: column;
        align-items: center;
        gap: var(--space-xs);
        padding: var(--space-sm);
        text-align: center;
    }

    .footer-bottom #dev-credits{
        font-size: var(--fs-xs);
    }
}