
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',sans-serif;background:#f7f8fa;color:#111820;overflow-x:hidden}
a{text-decoration:none;color:inherit}
h1,h2,h3,h4,h5,.menu a,.btn{font-family:'Plus Jakarta Sans',sans-serif}
.container{width:min(1180px,calc(100% - 50px));margin:auto}
.topbar{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    --header-h:90px;
    --header-compact-scale:0.756;
    --header-wa-icon:26px;
    background:rgba(8,13,17,.58);
    backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(255,255,255,.06);
    z-index:999;
    transition:background .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.topbar.is-scrolled{
    --header-h:68px;
    --header-compact-scale:0.756;
    --header-wa-icon:17px;
    background:rgba(8,13,17,.82);
    box-shadow:0 10px 36px rgba(0,0,0,.28);
}
.nav{
    height:var(--header-h);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    transition:height .35s ease;
}
.nav-right{display:flex;align-items:center;gap:12px;flex-shrink:0}
.nav-actions{display:flex;align-items:center}
.mobile-menu-toggle{display:none;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.06);cursor:pointer;flex-shrink:0;transition:transform .35s ease}
.topbar.is-scrolled .mobile-menu-toggle{transform:scale(var(--header-compact-scale))}
.mobile-menu-toggle span{display:block;width:22px;height:2px;margin:0 auto;background:#fff;border-radius:2px;transition:transform .3s ease, opacity .3s ease}
.mobile-nav{position:fixed;top:0;right:0;width:min(320px,86vw);height:100vh;background:#0c1115;border-left:1px solid rgba(255,255,255,.08);padding:calc(var(--header-h) + 20px) 28px 40px;transform:translateX(100%);transition:transform .35s ease, padding-top .35s ease;z-index:1001;overflow-y:auto}
.mobile-nav-links{display:flex;flex-direction:column;gap:6px}
.mobile-nav-links a{display:block;padding:14px 0;color:#fff;font-size:16px;font-weight:600;letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.08)}
.mobile-nav-links a:hover{color:#4ca2ff}
.mobile-nav-backdrop{position:fixed;inset:0;background:rgba(8,13,17,.62);opacity:0;pointer-events:none;transition:opacity .35s ease;z-index:1000}
body.mobile-nav-open .mobile-nav{transform:translateX(0)}
body.mobile-nav-open .mobile-nav-backdrop{opacity:1;pointer-events:auto}
body.mobile-nav-open .mobile-menu-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
body.mobile-nav-open .mobile-menu-toggle span:nth-child(2){opacity:0}
body.mobile-nav-open .mobile-menu-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.logo{display:flex;align-items:center;gap:14px;color:white;transition:transform .35s ease, gap .35s ease}
.topbar.is-scrolled .logo{
    transform:scale(var(--header-compact-scale));
    transform-origin:left center;
}
.logo-image{display:flex;align-items:center}
.site-logo{
    display:block;
    width:auto;
    max-width:220px;
    object-fit:contain;
    transition:height .35s ease, max-width .35s ease;
}
.topbar.is-scrolled .site-logo{
    max-width:calc(220px * var(--header-compact-scale));
}
.site-logo-mobile{display:none}
.logo-image.has-mobile-logo .site-logo-desktop{display:block}
.logo-image.has-mobile-logo .site-logo-mobile{display:none}
@media(max-width:900px){
.logo-image.has-mobile-logo .site-logo-desktop{display:none}
.logo-image.has-mobile-logo .site-logo-mobile{display:block}
.site-logo{max-width:160px}
}
.logo-mark{font-size:34px;font-weight:800;letter-spacing:-4px;color:#115fac}
.logo-text strong{display:block;letter-spacing:.25em;font-size:18px}
.logo-text small{display:block;letter-spacing:.4em;color:#4ca2ff;font-size:11px;margin-top:5px}
.menu{display:flex;gap:30px}
.menu a{color:white;opacity:.92;transition:color .3s, font-size .35s ease;font-size:14px;font-weight:600}
.topbar.is-scrolled .menu a{font-size:13px}
.menu a:hover{color:#4ca2ff}
.btn{display:inline-block;padding:15px 28px;transition:.3s;font-size:14px;font-weight:700}
.btn:hover{transform:translateY(-3px)}
.btn-main{background:#115fac;color:white}
.btn-whatsapp-text{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:13px 22px;
    background:linear-gradient(135deg,#115fac 0%,#168a52 52%,#25D366 100%);
    color:#fff;
    font-size:11px;
    font-weight:700;
    letter-spacing:.16em;
    transition:background .35s ease, transform .35s ease, box-shadow .35s ease, padding .35s ease, gap .35s ease, font-size .35s ease;
}
.topbar.is-scrolled .btn-whatsapp-text{
    transform:none;
    padding:7px 14px;
    gap:6px;
    font-size:9px;
    letter-spacing:.12em;
}
.btn-whatsapp-text:hover{
    background:linear-gradient(135deg,#0e4f91 0%,#137a47 52%,#1fb855 100%);
    box-shadow:0 8px 24px rgba(37,211,102,.28);
}
.topbar.is-scrolled .btn-whatsapp-text:hover{
    transform:translateY(-2px);
}
.btn-whatsapp-text svg{
    width:var(--header-wa-icon);
    height:var(--header-wa-icon);
    flex-shrink:0;
    transition:width .35s ease, height .35s ease;
}
.btn-outline{border:1px solid rgba(255,255,255,.42);color:white}
.btn-dark-outline{border:1px solid rgba(17,95,172,.35);color:#115fac}
.hero{height:100vh;display:flex;align-items:center;background:linear-gradient(90deg,rgba(8,13,17,.66),rgba(8,13,17,.55)),url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2200&q=80');background-size:cover;background-position:center;color:white}
.hero-content{animation:fadeUp .9s ease}
.eyebrow{letter-spacing:.25em;color:#7db9ff;font-size:14px}
.hero h1{font-size:100px;font-weight:400;line-height:.95;margin:25px 0;letter-spacing:.06em}
.hero h1 span{display:block;color:#4ca2ff}
.line{width:70px;height:2px;background:#115fac;margin:25px 0}
.hero p{max-width:500px;line-height:1.8;margin-bottom:34px;color:rgba(255,255,255,.78);font-size:18px}
.hero-actions{display:flex;gap:18px;flex-wrap:wrap}
.section-title{margin-bottom:60px;max-width:760px}
.section-title small{color:#115fac;letter-spacing:.22em;font-weight:bold;font-size:13px}
.section-title h2{font-size:52px;font-weight:400;line-height:1.1;margin:18px 0}
.section-title p{color:#68737b;line-height:1.8;max-width:560px}
.dark-title h2,.dark-title p{color:white}
.dark-title p{opacity:.68}
.services{padding:120px 0;background:white}
.services.services-icon-section{
    padding:120px 0;
    background:#f7f8fa;
}
.services-home .services-icon-grid{
    margin-top:10px;
}
.projects{padding:120px 0;color:white}
.projects.projects-home{
    position:relative;
    background-color:#0c1115;
    background-image:
        linear-gradient(180deg, #fff 0%, rgba(12,17,21,0) 100%),
        linear-gradient(0deg, #f7f8fa 0%, rgba(12,17,21,0) 100%);
    background-size:100% 48px;
    background-position:top center, bottom center;
    background-repeat:no-repeat;
}
.projects.projects-home > .container{
    position:relative;
    z-index:1;
}
.projects-home .section-title small{color:#115fac}
.projects-home .section-title h2{color:#fff}
.projects-home .section-title p{color:rgba(255,255,255,.72);max-width:560px}
.projects-home .project-card-meta-item svg{color:#115fac}
.projects-home .project-card-action{background:#115fac;color:#fff}
.projects-home .project-card-action:hover{background:#0e4f91;color:#fff}
.projects-empty{color:rgba(255,255,255,.72);text-align:center;padding:20px 0}
.projects-home-cta{display:flex;justify-content:center;margin-top:48px}
.btn-projects-all{
    display:inline-flex;
    align-items:center;
    gap:12px;
    padding:16px 28px;
    background:#115fac;
    color:#fff;
    font-size:13px;
    font-weight:700;
    letter-spacing:.12em;
    transition:background .3s ease, transform .3s ease;
}
.btn-projects-all:hover{
    background:#0e4f91;
    transform:translateY(-2px);
}
.btn-projects-all svg{color:#fff}
.projects-catalog-grid--home{
    grid-template-columns:repeat(4,1fr);
}
@media(max-width:1100px){
    .projects-catalog-grid--home{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
    .projects-catalog-grid--home{grid-template-columns:1fr}
}
.section-link{margin-top:40px}
.section-link.light .text-link{color:#4ca2ff}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.card{background:white;box-shadow:0 20px 60px rgba(0,0,0,.08);overflow:hidden}
.image{height:320px;background-size:cover;background-position:center;transition:.5s}
.card:hover .image{transform:scale(1.08)}
.image1{background-image:url('https://images.unsplash.com/photo-1511818966892-d7d671e672a2?auto=format&fit=crop&w=1200&q=80')}
.image2{background-image:url('https://images.unsplash.com/photo-1494526585095-c41746248156?auto=format&fit=crop&w=1200&q=80')}
.image3{background-image:url('https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=1200&q=80')}
.card-content{padding:30px}
.card-content small{color:#115fac;font-weight:bold}
.card-content h3{font-size:28px;font-weight:400;margin-top:12px}
.p1{background-image:url('https://images.unsplash.com/photo-1518005020951-eccb494ad742?auto=format&fit=crop&w=1400&q=80')}
.p2{background-image:url('https://images.unsplash.com/photo-1488972685288-c3fd157d7c7a?auto=format&fit=crop&w=1400&q=80')}
.info{padding:30px}
.info small{color:#4ca2ff;letter-spacing:.18em}
.info h3{font-size:32px;font-weight:400;margin-top:12px}
.about{padding:120px 0;background:#f7f8fa}
.about-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.about-text small{color:#115fac;letter-spacing:.22em;font-weight:bold}
.about h2{font-size:72px;font-weight:400;line-height:1.05;margin:22px 0}
.about h2 span{color:#115fac}
.about p{color:#68737b;line-height:1.8;max-width:480px}
.text-link{display:inline-block;margin-top:25px;color:#115fac;font-weight:bold}
.about-image{height:520px;background:url('https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=1600&q=80');background-size:cover;background-position:center;position:relative}
.play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(8,13,17,.28);color:white;text-align:center}
.play span{width:92px;height:92px;border:2px solid #4ca2ff;border-radius:50%;display:grid;place-items:center;font-size:32px;margin:auto;color:#4ca2ff}
.references{background:white;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;padding:36px 0}
.reference-row{display:grid;grid-template-columns:repeat(6,1fr);gap:24px;text-align:center;color:#9aa3a9;font-size:20px;font-weight:bold}
.cta{padding:80px 0;background:#f7f8fa}
.cta-wrap{display:flex;align-items:center;justify-content:space-between;gap:40px}
.cta small{color:#115fac;letter-spacing:.22em;font-weight:bold}
.cta h2{font-size:42px;font-weight:400;max-width:650px;margin-top:14px}
.cta-buttons{display:flex;gap:16px}
.footer{background:#0c1115;color:white;padding:80px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:50px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:55px}
.footer-logo{margin-bottom:24px}
.footer p,.footer a{display:block;color:rgba(255,255,255,.64);line-height:1.8;font-size:14px;margin-bottom:10px}
.footer h4{font-size:14px;letter-spacing:.12em;margin-bottom:22px}
.copyright{display:flex;justify-content:space-between;gap:20px;padding-top:25px;font-size:12px;color:rgba(255,255,255,.38)}
.sub-hero,.page-hero{
    padding:170px 0 70px;
    background-color:#121212;
    background-image:
        linear-gradient(90deg,rgba(8,13,17,.82) 0%,rgba(8,13,17,.68) 100%),
        linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),
        url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2200&q=80');
    background-size:auto,28px 100%,cover;
    background-position:center,center,center;
    background-repeat:no-repeat,repeat,no-repeat;
    color:#fff;
    text-align:left;
    position:relative;
    overflow:hidden;
}
.sub-hero small,.page-hero small{display:block;color:#4ca2ff;letter-spacing:.28em;font-size:13px;font-weight:700;margin-bottom:18px}
.sub-hero h1,.page-hero h1{font-size:clamp(34px,5vw,52px);font-weight:500;line-height:1.15;margin:0}
.sub-hero p,.page-hero p{max-width:720px;margin:18px 0 0;color:rgba(255,255,255,.72);line-height:1.8;font-size:16px}
.page-body,.projects-page-body{padding:50px 0 100px}
.catalog-page{background:#f3f4f6}
.page-content{padding:90px 0;background:#fff}
.content-box{max-width:980px;line-height:1.9;color:#333;font-size:17px}
.content-box h1,.content-box h2,.content-box h3{margin:28px 0 14px;color:#111820}
.content-box p{margin-bottom:18px}
.content-box img{max-width:100%;height:auto;margin:24px 0}
.content-box table{width:100%;border-collapse:collapse;margin:24px 0}
.content-box table td,.content-box table th{border:1px solid #ddd;padding:12px}
@keyframes fadeUp{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.menu-desktop{display:none}.mobile-menu-toggle{display:flex}.btn-whatsapp-text .whatsapp-label{display:none}.btn-whatsapp-text{width:46px;height:46px;padding:0;justify-content:center;border-radius:50%;gap:0}.btn-whatsapp-text svg{width:24px;height:24px}.topbar.is-scrolled .btn-whatsapp-text{width:36px;height:36px;padding:0;transform:none}.topbar.is-scrolled .btn-whatsapp-text svg{width:16px;height:16px}.hero h1{font-size:58px}.grid,.project-grid,.about-wrap,.footer-grid{grid-template-columns:1fr}.reference-row{grid-template-columns:repeat(2,1fr)}.cta-wrap,.corporate-cta-wrap{flex-direction:column;align-items:flex-start}.section-title h2,.cta h2,.corporate-cta h2{font-size:38px}.about h2{font-size:52px}.about-image{height:380px}.copyright{flex-direction:column}.page-hero h1,.sub-hero h1{font-size:42px}}



/* =========================================
   SERVICES MODULE FIX
========================================= */

.services-section{
    padding:120px 0;
    background:#ffffff;
}

.services-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.service-card{
    display:block;
    background:#ffffff;
    box-shadow:0 20px 60px rgba(0,0,0,.08);
    overflow:hidden;
    transition:.35s ease;
}

.service-card:hover{
    transform:translateY(-6px);
}

.service-card img{
    width:100%;
    height:320px;
    object-fit:cover;
    display:block;
}

.service-content{
    padding:30px;
}

.service-content h3{
    font-size:28px;
    font-weight:400;
    margin-bottom:14px;
    color:#111820;
}

.service-content p{
    color:#68737b;
    line-height:1.8;
}

.page-content{
    padding:120px 0;
    background:#fff;
}

.content-box{
    max-width:980px;
    line-height:1.9;
    color:#333;
    font-size:17px;
}

.content-box h1,
.content-box h2,
.content-box h3{
    margin:28px 0 14px;
    color:#111820;
}

.content-box p{
    margin-bottom:18px;
}

.content-box img{
    max-width:100%;
    height:auto;
    margin:24px 0;
    border-radius:18px;
}

@media(max-width:900px){

    .services-grid{
        grid-template-columns:1fr;
    }

}

.card{
    background:white;

    box-shadow:
        0 20px 60px rgba(0,0,0,.08);

    overflow:hidden;

    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

.card:hover{

    transform:translateY(-10px);

    box-shadow:
        0 30px 80px rgba(0,0,0,.14);
}

.card img{

    transition:
        transform .6s ease;
}

.card:hover img{

    transform:scale(1.08);
}

/* =========================
   PROJECTS GRID
========================= */

.project-grid{

    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:14px;
}


/* PROJECT ITEM */

.project{

    position:relative;

    overflow:hidden;

    display:block;

    height:280px;

    background:#111820;
}


/* IMAGE */

.project img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:
        transform .7s ease,
        filter .5s ease;
}


/* DARK OVERLAY */

.project::after{

    content:'';

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.82),
            rgba(0,0,0,.08)
        );

    transition:.4s ease;
}


/* INFO */

.project .info{

    position:absolute;

    left:18px;

    bottom:18px;

    z-index:5;
}


.project .info small{

    display:block;

    color:rgba(255,255,255,.72);

    margin-bottom:6px;

    font-size:10px;

    letter-spacing:1px;

    text-transform:uppercase;
}


.project .info h3{

    color:#fff;

    font-size:20px;

    font-weight:500;

    margin:0;

    line-height:1.3;
}


/* HOVER */

.project:hover img{

    transform:scale(1.08);

    filter:brightness(.72);
}


.project:hover::after{

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.9),
            rgba(0,0,0,.2)
        );
}


/* TABLET */

@media(max-width:992px){

    .project-grid{

        grid-template-columns:
            repeat(2,1fr);

    }

}


/* MOBILE */

@media(max-width:600px){

    .project-grid{

        grid-template-columns:1fr;

    }

}

/* =========================
   PROJECTS PAGE (CATALOG)
========================= */

.projects-page{
    background:#f3f4f6;
}

.services-page{
    background:#f3f4f6;
}

.services-icon-section{
    padding:90px 0 100px;
    background:#f7f8fa;
}

.services-icon-block{
    background:#fff;
}

.section-title--center{
    text-align:center;
    max-width:720px;
    margin-left:auto;
    margin-right:auto;
}

.section-title--center p{
    margin-left:auto;
    margin-right:auto;
}

.services-icon-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
    margin-top:10px;
}

.service-icon-card{
    display:flex;
    flex-direction:column;
    height:100%;
    padding:34px 30px 30px;
    background:#fff;
    border:1px solid #e8edf2;
    border-radius:16px;
    transition:border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}

.service-icon-card:hover{
    border-color:rgba(17,95,172,.35);
    box-shadow:0 22px 48px rgba(17,95,172,.1);
    transform:translateY(-5px);
}

.service-icon-card__icon{
    width:58px;
    height:58px;
    border-radius:14px;
    display:grid;
    place-items:center;
    color:#fff;
    background:linear-gradient(135deg,#115fac 0%,#2d8ae8 100%);
    margin-bottom:22px;
    flex-shrink:0;
}

.service-icon-card__icon svg{
    width:28px;
    height:28px;
}

.service-icon-card__title{
    font-size:22px;
    font-weight:600;
    line-height:1.25;
    color:#111820;
    margin:0 0 14px;
}

.service-icon-card__text{
    color:#68737b;
    line-height:1.75;
    font-size:15px;
    margin:0;
}

.service-icon-card__features{
    list-style:none;
    margin:20px 0 26px;
    padding:0;
    flex:1;
}

.service-icon-card__features li{
    position:relative;
    padding-left:20px;
    margin-bottom:9px;
    font-size:14px;
    line-height:1.5;
    color:#4a5560;
}

.service-icon-card__features li::before{
    content:'';
    position:absolute;
    left:0;
    top:8px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#115fac;
}

.service-icon-card__features li:last-child{
    margin-bottom:0;
}

.service-icon-card__link{
    margin-top:auto;
    margin-bottom:0;
}

.service-icon-card__link:hover{
    color:#0e4f91;
}

.services-page-empty{
    text-align:center;
    color:#68737b;
    padding:48px 0;
}

@media(max-width:1100px){
    .services-icon-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:700px){
    .services-icon-grid{
        grid-template-columns:1fr;
    }

    .services-icon-section{
        padding:70px 0 80px;
    }
}

.services-page-grid .card{
    background:#fff;
}

.service-card-desc{
    margin-top:12px;
    color:#68737b;
    line-height:1.8;
}

.services-page-empty{
    grid-column:1/-1;
    text-align:center;
    color:#68737b;
    padding:40px 0;
}

.projects-page-body{
    padding:50px 0 100px;
}

.projects-category-filter{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-bottom:36px;
}

.projects-category-filter__btn{
    font-family:inherit;
    font-size:12px;
    font-weight:600;
    letter-spacing:.1em;
    text-transform:uppercase;
    padding:12px 20px;
    border:1px solid #d8dee3;
    background:#fff;
    color:#4a5560;
    cursor:pointer;
    transition:background .25s ease,border-color .25s ease,color .25s ease;
}

.projects-category-filter__btn:hover{
    border-color:#115fac;
    color:#115fac;
}

.projects-category-filter__btn.is-active{
    background:#115fac;
    border-color:#115fac;
    color:#fff;
}

.projects-filter-empty{
    text-align:center;
    color:#68737b;
    margin:0 0 28px;
}

.projects-catalog-item[hidden]{
    display:none;
}

.projects-catalog-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}

.project-card{
    background:#fff;
    box-shadow:0 8px 30px rgba(0,0,0,.06);
    transition:transform .35s ease, box-shadow .35s ease;
}

.project-card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.project-card-media{
    position:relative;
    overflow:hidden;
    aspect-ratio:4/3;
    background:#111820;
}

.project-card-thumb{
    display:block;
    width:100%;
    height:100%;
}

.project-card-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .55s ease;
}

.project-card:hover .project-card-thumb img{
    transform:scale(1.06);
}

.project-card-placeholder{
    width:100%;
    height:100%;
    background:
        linear-gradient(135deg,#1a2430,#0c1115),
        url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=800&q=80');
    background-size:cover;
    background-position:center;
}

.project-card-lightbox-hidden{
    position:absolute;
    width:0;
    height:0;
    overflow:hidden;
    opacity:0;
    pointer-events:none;
}

.project-card-hover{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-end;
    background:linear-gradient(to top, rgba(8,13,17,.92) 0%, rgba(8,13,17,.55) 55%, rgba(8,13,17,.15) 100%);
    opacity:0;
    transition:opacity .35s ease;
    pointer-events:none;
}

.project-card:hover .project-card-hover{
    opacity:1;
}

.project-card-hover-inner{
    width:100%;
    padding:22px;
    pointer-events:none;
}

.project-card-hover p{
    color:rgba(255,255,255,.88);
    font-size:14px;
    line-height:1.75;
    margin-bottom:16px;
}

.project-card-hover-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    pointer-events:auto;
}

.project-card-action{
    display:inline-block;
    padding:10px 16px;
    background:#115fac;
    color:#fff;
    font-size:12px;
    font-weight:700;
    letter-spacing:.06em;
    transition:background .25s ease, color .25s ease;
}

.project-card-action:hover{
    background:#0e4f91;
}

.project-card-action-outline{
    background:transparent;
    color:#fff;
    border:1px solid rgba(255,255,255,.45);
}

.project-card-action-outline:hover{
    background:rgba(255,255,255,.12);
    color:#fff;
}

.project-card-body{
    padding:22px 20px 24px;
}

.project-card-body h3{
    font-size:15px;
    font-weight:800;
    letter-spacing:.04em;
    line-height:1.45;
    color:#111820;
    min-height:44px;
}

.project-card-divider{
    height:1px;
    background:#e8e8e8;
    margin:14px 0 16px;
}

.project-card-meta{
    display:flex;
    flex-wrap:wrap;
    gap:14px 20px;
}

.project-card-meta-item{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    color:#666;
}

.project-card-meta-item svg{
    color:#115fac;
    flex-shrink:0;
}

.projects-page-empty{
    text-align:center;
    color:#68737b;
    padding:60px 0;
}

@media(max-width:1100px){
    .projects-catalog-grid{
        grid-template-columns:repeat(3,1fr);
    }
}

@media(max-width:820px){
    .projects-catalog-grid{
        grid-template-columns:repeat(2,1fr);
        gap:16px;
    }

    .page-hero{
        padding:150px 0 50px;
    }
}

@media(max-width:520px){
    .projects-catalog-grid{
        grid-template-columns:1fr;
    }

    .project-card-body h3{
        min-height:auto;
    }
}

@media(hover:none){
    .project-card-hover{
        display:none;
    }
}

/* =========================
   CONTACT PAGE
========================= */

.contact-section{
    padding:80px 0 90px;
    background:#fff;
}

.contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px;
    align-items:start;
}

.contact-content{
    max-width:none;
    margin-bottom:36px;
}

.contact-content h2,
.contact-content h3{
    color:#111820;
    margin-bottom:14px;
}

.contact-content p{
    color:#68737b;
    line-height:1.8;
}

.contact-cards{
    display:grid;
    gap:16px;
}

.contact-card{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:20px 22px;
    background:#f7f8fa;
    border:1px solid #e8edf2;
}

.contact-card-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    background:#115fac;
    color:#fff;
    flex-shrink:0;
}

.contact-card-icon-whatsapp{
    background:#25D366;
}

.contact-card strong{
    display:block;
    font-size:12px;
    letter-spacing:.12em;
    color:#115fac;
    margin-bottom:6px;
}

.contact-card a,
.contact-card p{
    color:#111820;
    line-height:1.7;
    font-size:15px;
    margin:0;
}

.contact-card a:hover{
    color:#115fac;
}

.contact-form-panel{
    background:#0c1115;
    color:#fff;
    padding:36px 34px;
}

.contact-form-panel h2{
    font-size:28px;
    font-weight:500;
    margin-bottom:10px;
}

.contact-form-panel > p{
    color:rgba(255,255,255,.68);
    line-height:1.7;
    margin-bottom:28px;
}

.contact-form .form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.contact-form .form-group{
    margin-bottom:16px;
}

.contact-form label{
    display:block;
    font-size:12px;
    letter-spacing:.08em;
    color:rgba(255,255,255,.72);
    margin-bottom:8px;
}

.contact-form .form-input{
    width:100%;
    padding:14px 16px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.06);
    color:#fff;
    font-size:15px;
    font-family:inherit;
}

.contact-form .form-input:focus{
    outline:none;
    border-color:#4ca2ff;
    background:rgba(255,255,255,.08);
}

.contact-form textarea.form-input{
    resize:vertical;
    min-height:140px;
}

.contact-submit{
    width:100%;
    margin-top:8px;
    border:none;
    cursor:pointer;
}

.contact-alert{
    padding:14px 16px;
    margin-bottom:20px;
    font-size:14px;
    line-height:1.6;
}

.contact-alert-success{
    background:rgba(37,211,102,.15);
    border:1px solid rgba(37,211,102,.35);
    color:#d7ffe7;
}

.contact-alert-error{
    background:rgba(220,53,69,.15);
    border:1px solid rgba(220,53,69,.35);
    color:#ffd7db;
}

.contact-map{
    background:#e9edf2;
}

.contact-map-frame{
    width:100%;
    height:460px;
}

.contact-map-frame iframe{
    width:100%;
    height:100%;
    display:block;
}

@media(max-width:900px){
    .contact-grid{
        grid-template-columns:1fr;
        gap:36px;
    }

    .contact-form .form-row{
        grid-template-columns:1fr;
    }

    .contact-map-frame{
        height:340px;
    }
}

/* =========================
   CORPORATE PAGE
========================= */

.corporate-identity{
    padding:100px 0;
    background:#fff;
}

.corporate-identity-grid{
    display:grid;
    grid-template-columns:1fr 1.05fr;
    gap:60px;
    align-items:start;
}

.corporate-identity-image{
    position:relative;
    overflow:hidden;
    position:sticky;
    top:110px;
}

.corporate-identity-image img{
    width:100%;
    height:min(640px, calc(100vh - 180px));
    min-height:480px;
    object-fit:cover;
    display:block;
}

.corporate-intro-badge{
    position:absolute;
    left:24px;
    bottom:24px;
    background:#115fac;
    color:#fff;
    padding:18px 22px;
    min-width:140px;
}

.corporate-intro-badge strong{
    display:block;
    font-size:34px;
    line-height:1;
    margin-bottom:6px;
}

.corporate-intro-badge span{
    display:block;
    font-size:11px;
    letter-spacing:.14em;
}

.corporate-identity-content small{
    color:#115fac;
    letter-spacing:.22em;
    font-weight:bold;
    font-size:13px;
}

.corporate-identity-content h2{
    font-size:clamp(32px,4vw,48px);
    font-weight:400;
    line-height:1.15;
    margin:18px 0 28px;
    color:#111820;
}

.corporate-content-body{
    max-width:none;
    font-size:16px;
    color:#4a5560;
}

.corporate-content-body h1,
.corporate-content-body h2,
.corporate-content-body h3{
    font-size:clamp(22px,2.5vw,28px);
    margin:32px 0 14px;
}

.corporate-content-body h1:first-child,
.corporate-content-body h2:first-child,
.corporate-content-body h3:first-child,
.corporate-content-body p:first-child{
    margin-top:0;
}

.corporate-slogan{
    margin-top:48px;
    padding-top:36px;
    border-top:1px solid #e8edf2;
}

.corporate-slogan-line{
    display:block;
    font-family:'Plus Jakarta Sans',sans-serif;
    font-weight:400;
    line-height:1;
    letter-spacing:.1em;
}

.corporate-slogan-line--1{
    font-size:clamp(22px,2.4vw,32px);
    color:#8f9ba6;
    margin-bottom:22px;
}

.corporate-slogan-line--2{
    font-size:clamp(34px,4.2vw,54px);
    color:#115fac;
    margin-bottom:26px;
    padding-left:clamp(16px,4vw,40px);
}

.corporate-slogan-line--3{
    font-size:clamp(46px,5.8vw,78px);
    font-weight:500;
    letter-spacing:.07em;
    padding-left:clamp(32px,7vw,72px);
    background:linear-gradient(120deg,#115fac 0%,#4ca2ff 55%,#7ec4ff 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:transparent;
}

.corporate-slogan--compact{
    margin-top:40px;
    padding-top:32px;
}

.corporate-slogan--compact .corporate-slogan-line--1{
    font-size:clamp(18px,2vw,26px);
    margin-bottom:16px;
}

.corporate-slogan--compact .corporate-slogan-line--2{
    font-size:clamp(26px,3.2vw,42px);
    margin-bottom:18px;
    padding-left:clamp(12px,3vw,32px);
}

.corporate-slogan--compact .corporate-slogan-line--3{
    font-size:clamp(34px,4.2vw,56px);
    padding-left:clamp(24px,5vw,52px);
}

.corporate-cta{
    padding:80px 0;
    background:#fff;
    border-top:1px solid #e8edf2;
}

.corporate-cta--dark{
    padding:90px 0;
    background:#0c1115;
    border-top:none;
    color:#fff;
}

.corporate-cta-wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
}

.corporate-cta small{
    color:#115fac;
    letter-spacing:.22em;
    font-weight:bold;
    font-size:13px;
}

.corporate-cta--dark small{
    color:#4ca2ff;
}

.corporate-cta h2{
    font-size:clamp(28px,4vw,42px);
    font-weight:400;
    max-width:650px;
    margin-top:14px;
    line-height:1.2;
    color:#111820;
}

.corporate-cta--dark h2{
    color:#fff;
}

.corporate-cta-actions{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
    flex-shrink:0;
}

@media(max-width:900px){
    .corporate-identity-grid{
        grid-template-columns:1fr;
    }

    .corporate-identity-image{
        position:relative;
        top:auto;
    }

    .corporate-identity-image img{
        height:380px;
        min-height:0;
    }

    .corporate-slogan{
        margin-top:32px;
        padding-top:28px;
    }

    .corporate-slogan-line--1{
        margin-bottom:14px;
    }

    .corporate-slogan-line--2{
        margin-bottom:16px;
        padding-left:10px;
    }

    .corporate-slogan-line--3{
        padding-left:20px;
    }

    .corporate-slogan--compact .corporate-slogan-line--2{
        padding-left:8px;
    }

    .corporate-slogan--compact .corporate-slogan-line--3{
        padding-left:16px;
    }

    .corporate-cta-wrap{
        flex-direction:column;
        align-items:flex-start;
    }
}

/* =========================
   HOME SCROLL REVEAL
========================= */

@media (prefers-reduced-motion: no-preference){
    .reveal{
        opacity:0;
        transform:translateY(32px);
        transition:opacity .75s ease, transform .75s ease;
        will-change:opacity, transform;
    }

    .reveal.is-visible{
        opacity:1;
        transform:translateY(0);
    }

    .reveal-stagger .reveal-item{
        opacity:0;
        transform:translateY(28px);
        transition:opacity .65s ease, transform .65s ease;
        will-change:opacity, transform;
    }

    .reveal-stagger.is-visible .reveal-item{
        opacity:1;
        transform:translateY(0);
    }

    .projects-catalog-grid--home .reveal-item{
        height:100%;
    }

    .projects-catalog-grid--home .reveal-item .project-card{
        height:100%;
    }
}

@media (prefers-reduced-motion: reduce){
    .reveal,
    .reveal-stagger .reveal-item{
        opacity:1;
        transform:none;
    }
}