 * {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
 }

 html,
 body {
   max-width: 100%;
   overflow-x: hidden;
   width: 100%;
 }

 .hero p{
    margin: 0 auto;
    margin-top: 1.5rem;
    font-size: 1.1rem;
    color: #b5b5b5;
    line-height: 1.6;
    max-width: 600px;
    width: 80%;
 }


 body {
   font-family: 'Inter', sans-serif;
   background: #0a0a0a;
   color: #fff;
   overflow-x: hidden;
   font-weight: 300;
   cursor: none;
 }

 section {
   min-height: auto;
   padding: 4rem 8vw;
   position: relative
 }

 .card-grid {
   display: flex;
   flex-direction: column;
   gap: 1.5rem;
   margin-top: 2.5rem;
   width: 100%;
   max-width: 100%;
 }

 .card {
   display: flex;
   align-items: center;
   background: rgba(255, 255, 255, .03);
   border: 1px solid rgba(255, 255, 255, .08);
   border-radius: 20px;
   padding: 1.5rem 2rem;
   backdrop-filter: blur(12px);
   transition: .4s;
   width: 100%;
   max-width: 100%;
   min-width: 0;
 }

 .card>div {
   min-width: 0;
 }

 .card:hover {
   transform: translateY(-6px);
   border-color: rgba(255, 255, 255, .25)
 }

 .projects-grid {
   display: grid;
   gap: 2rem;
   grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
   margin-top: 3rem;
	 object-fit: cover;
 }

 .project {
   position: relative;
   overflow: hidden;
   border-radius: 20px
 }

 #process-card .card {
   flex-direction: column;
   text-align: center;
 }

#mail{
	text-align: center;
	font-family:'helvetica'; 
	font-size:3rem;
	padding-top:5vh;
}

.footer {
  margin-top: 8rem;
  background: linear-gradient(
    to top,
    rgba(255,255,255,.04),
    rgba(255,255,255,.01)
  );
  border-top: 1px solid rgba(255,255,255,.08);
}

/* CTA */
.footer-cta {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s ease, transform .8s ease;
  text-align: center;
  padding: 4rem 2rem;
}

.footer-cta.visible {
  opacity: 1;
  transform: translateY(0);
}

.footer-cta h3 {
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 300;

}

 .footer-cta p{
     margin: 0 auto;
    margin-top: 1.5rem;
    font-size: 1.1rem;
    color: #b5b5b5;
    line-height: 1.6;
    max-width: 600px;
    width: 80%;
 }  

.footer-btn {
  display: inline-block;
  margin-top: 2.5rem;
  padding: 1rem 3rem;
  border-radius: 999px;
  background: #fff;
  color: #000;
  font-weight: 400;
  transition: transform .3s, box-shadow .3s;
}

.footer-btn:hover {
  transform: scale(1.08);
  box-shadow: 0 10px 30px rgba(255,255,255,.25);
}

/* Footer grid */
.footer-inner {
  padding: 3rem 10vw;
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 3rem;
  max-width: 1400px;
  margin: 0 auto;
}



.footer-brand h4 {
  font-weight: 400;
  margin-bottom: .6rem;
}

.footer-brand p {
  font-size: .95rem;
  color: #9a9a9a;
  max-width: 320px;
}

.footer-links,
.footer-social {
  display: flex;
  flex-direction: column;
  gap: .7rem;
}

.footer a {
  opacity: .6;
  transition: opacity .3s, transform .3s;
}

.footer a:hover {
  opacity: 1;
  transform: translateX(4px);
}

/* Bottom */
.footer-bottom {
  text-align: center;
  padding: 1.5rem;
  font-size: .85rem;
  color: #777;
  border-top: 1px solid rgba(255,255,255,.06);
}





 .project img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block
 }

 .project span {
   position: absolute;
   inset: 0;
   display: flex;
   align-items: center;
   justify-content: center;
   background: rgba(0, 0, 0, .65);
   opacity: 0;
   transition: .4s
 }

 .project:hover span {
   opacity: 1
 }

 form {
   display: grid;
   gap: 1rem
 }

 input,
 textarea {
   background: #111;
   border: 1px solid rgba(255, 255, 255, .1);
   padding: 1rem;
   border-radius: 12px;
   color: #fff;
   font-family: inherit
 }

 button {
   cursor: pointer
 }

 h1 {
   font-size: clamp(3rem, 7vw, 5.5rem);
   font-weight: 300;
   letter-spacing: -.03em
 }

 h2 {
   font-size: 2.4rem;
   margin-bottom: 2.5rem;
   text-align: center;
   font-weight: 300
 }

 p {
   color: #b5b5b5;
   max-width: 600px;
   line-height: 1.6;
   margin-top: 1rem;
   width: 80%;
 }

 a {
   color: inherit;
   text-decoration: none
 }

 /* Floating menu */
 nav {
   position: fixed;
   left: 24px;
   top: 50%;
   transform: translateY(-50%);
   padding: 12px 10px;
   display: flex;
   flex-direction: column;
   gap: 20px;
   background: rgba(20, 20, 20, .35);
   border-radius: 999px;
   backdrop-filter: blur(14px);
   z-index: 10;
   box-shadow: 0 10px 30px rgba(0, 0, 0, .4);
 }

 nav a {
   opacity: .4;
   transition: .3s
 }

 nav a.active {
   opacity: 1;
   transform: scale(1.3)
 }

 /* Cursor */
 .cursor {
   position: fixed;
   width: 20px;
   height: 20px;
   border: 1px solid rgba(255, 255, 255, .5);
   border-radius: 50%;
   pointer-events: none;
   transform: translate(-50%, -50%);
   transition: transform .15s ease-out;
   z-index: 999;
 }

 /* Hero */
 .hero {
   display: flex;
   align-items: center;
   justify-content: center;
   text-align: center
 }

 .cta {
   display: inline-block;
   margin-top: 3rem;
   padding: 1rem 2.5rem;
   background: #fff;
   color: #000;
   border-radius: 999px;
   transition: .3s
 }

 .cta:hover {
   transform: scale(1.05)
 }

 canvas {
   position: fixed;
   inset: 0;
   z-index: 0
 }

 .icon {
   width: 42px;
   height: 42px;
   border-radius: 50%;
   border: 1px solid rgba(255, 255, 255, .25);
   display: flex;
   align-items: center;
   justify-content: center;
   color: #fff;
   opacity: .9;
 }
#contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center ;
 }
 #contactForm {
  align-items: center;
   margin-top: 2rem;
   width: 60%;
 }


  /* Responsive movil*/
  @media (max-width: 768px) {
   .projects-grid {
     display: flex;
     overflow-x: auto;
     scroll-snap-type: x mandatory;
     gap: 1.5rem;
     padding-bottom: 1rem;


   }
	  #mail {
	text-align: center;
	font-family:'helvetica'; 
	font-size:1.5rem;
	padding-top:3vh;
}

   .project {
     min-width: 80%;
     scroll-snap-align: center;
   }

   .card {
     flex-direction: column;
     text-align: center;
   }
	  
 .footer-inner {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .footer-links,
  .footer-social {
    align-items: center;
  }

  .footer a:hover {
    transform: none;
  }
}