/* DISEÑO FOOTER */

.footer{

padding:120px 7% 40px;

background:#040706;

border-top:1px solid rgba(255,255,255,.05);

position:relative;

overflow:hidden;

}

/* EFECTO DE FONDO */

.footer::before{

content:"";

position:absolute;

width:700px;

height:700px;

left:50%;

top:50%;

transform:translate(-50%,-50%);

background:radial-gradient(
circle,
rgba(164,255,0,.08),
transparent 70%
);

pointer-events:none;

}

/* GRID */

.footer-grid{

display:grid;

grid-template-columns:1.5fr .8fr 1fr;

gap:90px;

position:relative;

z-index:2;

}

/* COLUMNA IZQUIERDA */

.footer-brand h2{

font-size:58px;

line-height:.95;

font-weight:300;

color:white;

max-width:450px;

}

.footer-brand h2 span{

color:#a4ff00;

font-weight:600;

}

.footer-brand p{

margin-top:30px;

max-width:420px;

line-height:1.8;

color:#9b9b9b;

}

/* BOTON */

.footer-btn{

display:inline-flex;

align-items:center;

justify-content:center;

margin-top:35px;

padding:18px 38px;

border-radius:999px;

background:#a4ff00;

color:black;

font-weight:600;

text-decoration:none;

transition:.35s;

}

.footer-btn:hover{

transform:translateY(-4px);

box-shadow:0 0 25px rgba(164,255,0,.35);

}

/* TITULOS */

.footer h4{

margin-bottom:25px;

font-size:15px;

font-weight:600;

color:white;

}

/* MENU */

.footer-nav ul{

list-style:none;

padding:0;

margin:0;

}

.footer-nav li{

margin-bottom:16px;

}

.footer-nav a{

color:#9b9b9b;

text-decoration:none;

transition:.3s;

}

.footer-nav a:hover{

color:#a4ff00;

padding-left:3px;

}

/* CONTACTO */

.footer-contact{

list-style:none;

padding:0;

margin:0;

display:flex;

flex-direction:column;

gap:22px;

}

.footer-contact li{

display:flex;

flex-direction:column;

gap:6px;

}

.footer-contact strong{

font-size:14px;

font-weight:600;

color:white;

}

/* LINKS TELEFONO Y CORREO */

.footer-link{

position:relative;

width:max-content;

color:#a9a9a9;

text-decoration:none;

transition:.3s ease;

}

.footer-link::after{

content:"";

position:absolute;

left:0;

bottom:-4px;

width:100%;

height:1px;

background:rgba(255,255,255,.18);

transition:.3s;

}

.footer-link:hover{

color:#a4ff00;

}

.footer-link:hover::after{

background:#a4ff00;

}

/* DIVISOR */

.footer-divider{

height:1px;

background:rgba(255,255,255,.08);

margin:25px 0;

}

/* PARTE INFERIOR */

.footer-bottom{

margin-top:80px;

padding-top:30px;

border-top:1px solid rgba(255,255,255,.06);

display:flex;

justify-content:space-between;

align-items:center;

gap:20px;

flex-wrap:wrap;

position:relative;

z-index:2;

}

/* COPYRIGHT */

.footer-copy{

display:flex;

flex-direction:column;

gap:8px;

}

.footer-copy span{

color:#757575;

font-size:14px;

}

/* SORA DESIGN */

.footer-credit{

font-size:13px;

color:#666;

}

.footer-credit a{

color:#a4ff00;

text-decoration:none;

transition:.3s;

}

.footer-credit a:hover{

opacity:.8;

}

/* LEGAL */

.footer-legal{

display:flex;

gap:25px;

}

.footer-legal a{

color:#757575;

text-decoration:none;

transition:.3s;

}

.footer-legal a:hover{

color:#a4ff00;

}

/* TABLET */

@media(max-width:992px){

.footer-grid{

grid-template-columns:1fr;

gap:60px;

}

.footer-brand h2{

font-size:56px;

}

.footer-bottom{

flex-direction:column;

align-items:flex-start;

}

}

/* CELULAR */

@media(max-width:768px){

.footer{
    
    padding:80px 7% 30px;
}

.footer-brand h2{

font-size:42px;

}

.footer-btn{

width:100%;

max-width:260px;

}

.footer-legal{

flex-direction:column;

gap:10px;

}

}

/* FINAL DISEÑO FOOTER */

/* ===================================================== */
/* PROYECTOS                                              */
/* ===================================================== */

.projects-hero{

max-width:1050px;

margin:170px auto 0;

padding:0 7%;

text-align:center;
}

.projects-tag{

display:inline-flex;

padding:10px 22px;

border-radius:999px;

background:rgba(163,255,18,.08);

border:1px solid rgba(163,255,18,.18);

color:#A3FF12;

font-size:12px;

font-weight:600;

letter-spacing:2px;

margin-bottom:28px;
}

.projects-title{

font-size:clamp(34px,5vw,58px);

font-weight:600;

line-height:1.08;

letter-spacing:-2px;

color:#fff;

margin-bottom:20px;
}

.projects-title span{

color:#A3FF12;
}

.projects-lead{

max-width:600px;

margin:0 auto 40px;

font-size:16px;

line-height:1.8;

color:#9a9a9a;
}

/* FILTROS */

.projects-filters{

display:flex;

flex-wrap:wrap;

justify-content:center;

gap:12px;
}

.filter-btn{

padding:12px 22px;

border-radius:999px;

background:rgba(255,255,255,.03);

border:1px solid rgba(255,255,255,.08);

color:#c8c8c8;

font-family:'Outfit',sans-serif;

font-size:13.5px;

font-weight:500;

cursor:pointer;

transition:all .35s cubic-bezier(.19,1,.22,1);
}

.filter-btn:hover{

border-color:rgba(163,255,18,.3);

color:#fff;
}

.filter-btn.active{

background:#A3FF12;

border-color:#A3FF12;

color:#000;

font-weight:600;
}

/* GRID DE PROYECTOS */

.projects-grid-section{

padding:70px 7% 40px;
}

.projects-grid{

max-width:1300px;

margin:0 auto;

display:grid;

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

gap:26px;
}

.project-card{

position:relative;

border-radius:28px;

overflow:hidden;

aspect-ratio:4/5;

background:#0d0f0d;

border:1px solid rgba(255,255,255,.05);

cursor:pointer;

transition:
transform .5s cubic-bezier(.19,1,.22,1),
border-color .5s cubic-bezier(.19,1,.22,1),
box-shadow .5s cubic-bezier(.19,1,.22,1),
opacity .4s ease,
max-height .4s ease;
}

.project-card:hover{

transform:translateY(-8px);

border-color:rgba(163,255,18,.25);

box-shadow:0 25px 60px rgba(0,0,0,.4);
}

.project-card:focus-visible{

outline:2px solid #A3FF12;

outline-offset:4px;
}

/* OCULTAR TARJETAS FILTRADAS */

.project-card.project-hidden{

display:none;
}

.project-media{

position:absolute;

inset:0;

width:100%;

height:100%;

overflow:hidden;
}

.project-media::after{

content:'';

position:absolute;

inset:0;

background:linear-gradient(0deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.05) 65%, transparent 80%);

z-index:1;

transition:opacity .4s ease;
}

.project-media img{

width:100%;

height:100%;

object-fit:cover;

filter:brightness(.82) saturate(1.05);

transition:transform .7s cubic-bezier(.19,1,.22,1), filter .5s ease;
}

.project-card:hover .project-media img{

transform:scale(1.08);

filter:brightness(.95) saturate(1.1);
}

/* CAPTION SOBRE LA IMAGEN */

.project-caption{

position:absolute;

left:0;

right:0;

bottom:0;

z-index:2;

padding:28px 28px 26px;

transition:transform .45s cubic-bezier(.19,1,.22,1);
}

.project-card:hover .project-caption{

transform:translateY(-4px);
}

.project-card h3{

margin:0 0 8px;

font-size:22px;

font-weight:600;

color:#fff;

letter-spacing:-.3px;
}

.project-sub{

display:block;

font-size:11.5px;

font-weight:600;

letter-spacing:1.5px;

color:#A3FF12;
}

/* DESCRIPCION SOLO PARA EL MODAL, OCULTA EN LA TARJETA */

.project-desc-hidden{

position:absolute;

width:1px;

height:1px;

padding:0;

margin:-1px;

overflow:hidden;

clip:rect(0,0,0,0);

white-space:nowrap;

border:0;
}

/* RESPONSIVE */

@media(max-width:992px){

.projects-hero{

margin-top:150px;
}

.projects-grid{

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

}

@media(max-width:640px){

.projects-grid{

grid-template-columns:1fr;
}

.projects-filters{

gap:10px;
}

.filter-btn{

padding:10px 18px;

font-size:12.5px;
}

}

/* ===================================================== */
/* MODAL DE DETALLE DE PROYECTO                           */
/* ===================================================== */

.project-modal{

position:fixed;

inset:0;

z-index:2000;

display:flex;

align-items:center;

justify-content:center;

padding:5vh 20px;

opacity:0;

pointer-events:none;

transition:opacity .35s ease;
}

.project-modal.is-open{

opacity:1;

pointer-events:auto;
}

.project-modal-backdrop{

position:absolute;

inset:0;

background:rgba(3,5,4,.82);

backdrop-filter:blur(6px);
}

.project-modal-panel{

position:relative;

width:100%;

max-width:1040px;

height:600px;

max-height:88vh;

overflow-y:auto;

display:flex;

align-items:stretch;

background:#0a0d0b;

border:1px solid rgba(255,255,255,.08);

border-radius:28px;

box-shadow:0 40px 120px rgba(0,0,0,.5);

transform:translateY(24px) scale(.98);

transition:transform .4s cubic-bezier(.19,1,.22,1);
}

.project-modal.is-open .project-modal-panel{

transform:translateY(0) scale(1);
}

.project-modal-close{

position:absolute;

top:24px;

right:24px;

z-index:3;

width:44px;
height:44px;

display:flex;
align-items:center;
justify-content:center;

border-radius:50%;

background:rgba(0,0,0,.55);

border:1px solid rgba(255,255,255,.15);

color:#fff;

cursor:pointer;

backdrop-filter:blur(10px);

transition:all .3s ease;
}

.project-modal-close:hover{

background:#A3FF12;

border-color:#A3FF12;

color:#000;

transform:rotate(90deg);
}

.project-modal-close i,
.project-modal-close svg{

width:20px;
height:20px;
}

.project-modal-media{

flex:0 0 55%;

max-width:55%;

align-self:stretch;

overflow:hidden;

position:relative;
}

.project-modal-media img{

width:100%;
height:100%;

object-fit:cover;

display:block;

border-radius:28px 0 0 28px;
}

.project-modal-body{

flex:0 0 45%;

max-width:45%;

padding:56px 52px;

display:flex;

flex-direction:column;

justify-content:center;
}

.project-modal-category{

display:inline-flex;

width:max-content;

padding:8px 18px;

border-radius:999px;

background:rgba(163,255,18,.08);

border:1px solid rgba(163,255,18,.2);

font-size:11.5px;

font-weight:600;

letter-spacing:1.5px;

color:#A3FF12;

margin-bottom:22px;
}

.project-modal-body h3{

font-size:32px;

color:#fff;

margin-bottom:18px;

letter-spacing:-.5px;

line-height:1.15;
}

.project-modal-body p{

font-size:15.5px;

line-height:1.85;

color:#9a9a9a;

margin-bottom:36px;
}

.project-modal-body .main-btn{

display:inline-flex;

align-items:center;

justify-content:center;

width:max-content;

height:56px;

padding:0 32px;

border-radius:999px;

background:#A3FF12;

color:#000;

font-weight:600;

font-size:15px;

text-decoration:none;

transition:all .35s ease;
}

.project-modal-body .main-btn:hover{

transform:translateY(-3px);

box-shadow:0 15px 40px rgba(163,255,18,.25);
}

@media(max-width:860px){

.project-modal-panel{

flex-direction:column;

height:auto;

max-height:92vh;
}

.project-modal-media{

flex:0 0 auto;

max-width:100%;

width:100%;

height:280px;
}

.project-modal-media img{

border-radius:28px 28px 0 0;
}

.project-modal-body{

flex:1 1 auto;

max-width:100%;

padding:36px 32px 40px;
}

}

@media(max-width:640px){

.project-modal{

padding:0;
}

.project-modal-panel{

max-height:100vh;

height:100%;

border-radius:0;
}

.project-modal-media{

height:220px;
}

.project-modal-media img{

border-radius:0;
}

.project-modal-body{

padding:30px 26px 36px;
}

.project-modal-body h3{

font-size:26px;
}

}