*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Poppins, sans-serif;
}

:root{
  --primary: #2F5D7C;      /* azul acero */
  --secondary: #4CAF50;    /* verde químico */
  --dark: #1F2D3A;         /* azul gris oscuro */
  --gray: #E9ECEF;         /* gris claro */
  --text: #2B2B2B;         /* texto principal */
  --accent: #D89B2B;       /* ámbar/dorado */
  --white: #FFFFFF;
}

body{
background:#f4f6f5;
color:#222;
scroll-behavior:smooth;
}

.container{
width:90%;
max-width:1200px;
margin:auto;
}

/* HEADER */
header{
background:#0f3d2e;
color:#fff;
padding:15px 0;
box-shadow:0 2px 10px rgba(0,0,0,0.2);
position:sticky;
top:0;
z-index:1000;
}

.header-flex{
display:flex;
align-items:center;
gap:15px;
}

.logo{
width:65px;
}

/* NAV MODERNO */
.nav{
background: var(--dark);
position: sticky;
top: 0;
z-index: 1000;
}

.nav-container{
display:flex;
justify-content:space-between;
align-items:center;
width:90%;
max-width:1200px;
margin:auto;
padding:12px 0;
}

.nav-logo{
color:white;
font-weight:600;
font-size:1.2rem;
}

.nav-logo img {
  width: 150px; /* ajusta el tamaÃ±o */
  height: auto;
  display: block;
}

.nav-links{
display:flex;
gap:25px;
}

.nav-links a{
color: var(--white);
text-decoration: none;
transition: 0.3s;
}

.nav-links a:hover{
color: var(--accent);
}

/* HAMBURGUESA */
.menu-toggle{
display:none;
width:30px;
height:25px;
flex-direction:column;
justify-content:space-between;
cursor:pointer;
z-index:1100;
}

.menu-toggle span{
display:block;
height:3px;
background:white;
border-radius:3px;
transition:0.3s;
}

/* ANIMACIÃ“N A X */
.menu-toggle.active span:nth-child(1){
transform:rotate(45deg) translate(6px,10px);
}

.menu-toggle.active span:nth-child(2){
opacity:0;
}

.menu-toggle.active span:nth-child(3){
transform:rotate(-45deg) translate(6px,-10px);
}


.overlay{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.5);
opacity:0;
pointer-events:none;
transition:0.3s;
z-index:900;
}

.overlay.active{
opacity:1;
pointer-events:auto;
}
/* MOBILE */
@media(max-width:768px){

.menu-toggle{
display:flex;
}

.nav-links{
position:fixed;
top:0;
right:-100%;
width:250px;
height:100vh;
/*background:#145c43;*/
background:var(--dark);
flex-direction:column;
align-items:center;
justify-content:center;
gap:25px;
transition:0.4s ease;
z-index:1000;
}

/* CUANDO SE ABRE */
.nav-links.active{
right:0;
}

.nav-links a{
font-size:1.2rem;
}

}

/* HERO */
.hero{
height:70vh;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
background:linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('img/hero.jpg');
background-size:cover;
background-position:center;
color:white;
text-align:center;
padding:20px;
}

.hero h2{
font-size:2.5rem;
margin-bottom:10px;
}

.hero p{
font-size:1.2rem;
opacity:0.9;
}

.hero button{
padding: 12px 25px;
background: var(--primary);
border: none;
border-radius: 30px;
color: white;
cursor: pointer;
margin-top: 20px;
font-weight: 600;
transition: 0.3s;
}

.hero button:hover{
background: var(--secondary);
transform: scale(1.05);
}

/* SECTIONS */
section{
padding:60px 20px;
text-align:center;
}

section h2{
margin-bottom: 20px;
font-size: 2rem;
color: var(--primary);
}

/* SERVICES */
.services{
display:grid;
grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
gap:25px;
margin-top:20px;
}

.card{
background: white;
padding: 25px;
border-radius: 15px;
box-shadow: 0 8px 20px rgba(0,0,0,0.08);
transition: 0.3s;
border-left: 5px solid var(--primary);
}

.card:hover{
  transform: translateY(-3px);
}
/* CLIENTES */
ul{
list-style:none;
margin-top:10px;
}

ul li{
margin:8px 0;
}

.services {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
}

/* CONTACT */
.contact{
background: var(--dark);
color: white;
text-align: center;
}

.contact a{
display: inline-block;
margin-top: 15px;
padding: 10px 20px;
background: var(--accent);
color: white;
text-decoration: none;
border-radius: 25px;
transition: 0.3s;
}

.contact a:hover{
background: var(--secondary);
}

/* ANIMACIONES */
.fade{
opacity:0;
transform:translateY(30px);
transition:1s ease;
}

.fade.show{
opacity:1;
transform:translateY(0);
}

/* FOOTER */
footer{
background: var(--primary);
color: white;
text-align: center;
padding: 15px;
margin-top: 20px;
}

/* CAROUSEL */
.carousel{
position:relative;
overflow:hidden;
max-width:900px;
margin:30px auto;
}

@media (max-width: 450px) {
  .carousel-item{
    min-width: 100%; /* Muestra 1 items a la vez */
    flex: 0 0 calc(100% - 80px);
  }
}

@media (min-width: 768px) {
  .carousel-item {
    flex: 0 0 calc((100% - 40px) / 2);
    max-width: calc((100% - 40px) / 2);
  }
}

@media (min-width: 1200px) {
  .carousel-item {
    flex: 0 0 calc((100% - 55px) / 3);
    max-width: calc((100% - 55px) / 3);
  }
}

.carousel-track{
display:flex;
transition:transform 0.5s ease;
}

.carousel-item{
/*min-width:100%;*/
padding:10px;
text-align:center;
}

.carousel-item img{
  width: 100%;
  max-width:300px;
  height: 300px; /* 🔥 tamaño uniforme */
  object-fit: contain; /* 🔥 clave */
  background: white; /* opcional, se ve más limpio */
  padding: 15px; /* 🔥 aire interno */
  border-radius: 15px;
}
.carousel-item p{
margin-top:10px;
font-weight:600;
}

.carousel-track{
  display:flex;
  gap: 10px; /* 🔥 espacio entre logos */
  transition:transform 0.5s ease;
}

/* BOTONES */
.prev, .next{
position:absolute;
top:50%;
transform:translateY(-50%);
width:45px;
height:45px;
background:rgba(0,0,0,0.6);
color:white;
border:none;
font-size:20px;
display:flex;
align-items:center;
justify-content:center;
cursor:pointer;
border-radius:50%;
z-index:10;
transition:0.3s;
}

.prev{ left:10px; }
.next{ right:10px; }

.prev:hover, .next:hover{
background: var(--accent);
transform: translateY(-50%) scale(1.1);
}


.card p {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
  margin-top: 0;
}

.card.active p {
  max-height: 200px; /* ajusta si quieres */
  margin-top: 10px;
}

.card h3 {
  cursor: pointer;
  position: relative;
}

/* Flechita opcional */
.card h3::after {
  content: "▼";
  position: absolute;
  right: 0;
  transition: transform 0.3s;
}

.card.active h3::after {
  transform: rotate(180deg);
}

.services {
  flex-direction: column; /* ðŸ”¥ clave */
  max-width: 700px;
  margin: auto;
}

.card {
  width: 100%;
  text-align: left;
  padding: 18px 20px;
}


/* FORMULARIO DUDA */
.form-duda{
  margin-top: 40px;
  background: rgba(255,255,255,0.05);
  padding: 25px;
  border-radius: 15px;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  backdrop-filter: blur(5px);
  border: 1px solid rgba(255,255,255,0.08);
}

.form-duda h3{
  margin-bottom: 15px;
  color: var(--accent);
}

.form-duda form{
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.form-duda textarea{
  resize: none;
  height: 100px;
  padding: 12px;
  border-radius: 10px;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: 14px;
}

.form-duda textarea:focus{
  box-shadow: 0 0 0 2px var(--accent);
}

.form-duda button{
  padding: 12px;
  border: none;
  border-radius: 25px;
  background: var(--accent);
  color: white;
  font-weight: 600;
  cursor: pointer;
  transition: 0.3s;
}

.form-duda button:hover{
  background: var(--secondary);
  transform: scale(1.05);
}

.form-duda input,
.form-duda select{
  padding: 12px;
  border-radius: 10px;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: 14px;
}

.form-duda input:focus,
.form-duda select:focus{
  box-shadow: 0 0 0 2px var(--accent);
}
