:root {
  --naranja: #D36B2D;
  --naranja-bajo: #ff9736;
  --naranja-claro: #ff7a00;
  --rojiso: #ff4c4c;
  --turquesa: #35c2c2;
  --turquesa-oscuro: rgb(8, 95, 117);
  --gris: #E6E2D3;
  --azul-cielo: #2aa5a5;
  --blanco: #fff7f0;
  --facebook-color: #1877F2;
  --instagram-color: #E1306C;
  --acerca: #1F8A70;
  --gris-oscuro: #333;
  --gris-medio: #777;
}

* {
  margin: 0; /*quita el margen exterior*/
  padding: 0; /*quita el espacio interior entre contenido y borde*/
  box-sizing: border-box; /*Define como se calcula el tamaño total*/
}

/*Codigo para mandar al inicio*/
/*No tocar!!*/
.logo-link{
    text-decoration: none; /*decoracion del texto*/
    color: inherit; /*color*/
    display: flex; /*tipo de visualiacion*/
    align-items: center; /*alineacion vertical*/
    gap: 10px; /*da spacio entre filas*/
}
/*Aqui termina*/


.hero {
text-align: center; /*alinea el texto*/
padding: 40px 20px; /*da espacio interior entre el contenido y borde*/
animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRA*/
}

/*linea entre texto y la barra de busqueda*/
hr {
  margin-top: 20px;
  animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
}
/*aqui termina*/

/*texto de perro o gato*/
.titulopg{
color: var(--turquesa-oscuro) ;
font-size: 40px;
text-align: center;
animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
}
/*termina texto de perro o gato*/

footer {
  animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
}

.contenedor-categorias {
  display: flex;
  justify-content: center;
  margin-top: 60px;
  animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
}

.categorias {
  display: flex;
  gap: 40px;
  width: max-content;
}

/*aqui empieza el boton*/

.card {
  width: 280px;
  height: 320px;
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  cursor: pointer;
  transition: 1s;
}

.card:hover {
  transform: scale(1.05);
  box-shadow: 0 20px 40px rgba(0,0,0,.25);

}

.card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 20px;
  background: linear-gradient(transparent, rgba(0,0,0,.7));
  color: white;
  z-index:2;
}
/*BOTON PARA PERRO*/
.card{
  text-decoration: none;
color: inherit;
width: 280px;
height: 320px;
  border-radius: 20px;
display: block;
}

.card:hover{
transform: scale(1.1);
box-shadow: 0 20px 40px  rgba(0,0,0,.25);
}

.card{width: 240px;
  height: 320px;
}

.card img{
  width: 100%;
height: 100% ;
object-fit: cover;

}
.categorias{
    display: flex;
    gap: 20px;
    justify-content: center;
}
.card{
    position: relative;   /* CLAVE */
    width: 240px;
    height: 320px;
  
    overflow: hidden;
}

.card img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 600px) {
  .categorias {
    display: flex;
    flex-direction: row; 
    justify-content: space-evenly; /* Distribuye las tarjetas ocupando todo el ancho */
    align-items: stretch;
    gap: 10px;
    width: 100%;
    padding: 0 10px; /* Un poco de separación a los lados de la pantalla */
    box-sizing: border-box;
    overflow-x: auto;/*girar hacia el lado*/
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .categorias::-webkit-scrollbar{
    display: none;
  }
}
  .card {
    /* Esto es lo que les devolverá el tamaño robusto */
    flex: 0 0 80%; 
    max-width:160px; /* Evita que se hagan demasiado anchas */
    height: 300px !important; 
    margin: 0 !important;

  }

  /* Aseguramos que la imagen no se mueva de su lugar */
  .card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

/*termina el boton*/

.overlay{
    position: absolute;
    bottom: 0;
    width: 100%;
    background: rgba(0,0,0,0.6); /* fondo oscuro */
    color: white;
    text-align: center;
    padding: 10px 0;
}

.hero-video{
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden;
}

.video-bg{
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
    object-fit: cover;
    z-index: -2;
}

/* Oscurece todo el video */
.hero-overlay{
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.4);
    z-index: -1;
}

/* Centrado */
.hero-content{
    position: relative;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Franja horizontal detrás del texto */
.text-box{
    background: rgba(0,0,0,0.55);
    padding: 25px 60px;
    text-align: center;
}

/* Título */
.text-box h1{
    color: white;
    font-size: 70px;
    margin: 0;
    letter-spacing: 2px;
}

/* Subtítulo */
.text-box p{
    color: white;
    font-size: 22px;
    margin-top: 10px;
}

/*Soy rescatista*/
.hero-rescatista{
    background-color: white;
    padding: 30px 40px 30px;
}

.contenedor-texto{
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    
}

.contenedor-texto p{
    font-size: 18px;
    line-height: 1.7;
    margin-bottom: 20px;
    color: #444;
} 
/*aqui termina css de soy rescatista*/


/*  FORMULARIOs de registro  */
.formulario {
  width: 90%;            /* Se adapta */
  max-width: 650px;      /* Más ancho que antes */
  margin: 60px auto;     /* Centrado */
  padding: 50px;         /* Espacio interno */
  background: #f5f5f5;   /* Fondo */
  border-radius: 12px;
  box-shadow: 0 5px 20px rgba(0,0,0,0.08);
  font-family: Arial, sans-serif;
}

/*  CADA GRUPO (label + input) */
.form-group {
  margin-bottom: 15px;      /* Espacio entre campos */
  display: flex;            /* Activa Flexbox */
  flex-direction: column;   /* Label arriba, input abajo */
}

/*  ESTILO DE LAS ETIQUETAS */
.form-group label {
  margin-bottom: 8px;   /* Espacio entre label e input */
  font-weight: bold;     /* Texto un poco más grueso */
}

/*  ESTILO DE INPUTS Y TEXTAREA  */
.form-group input,
.form-group textarea {
  padding: 12px;          /* Espacio interno */
  border-radius: 8px;     /* Bordes redondeados */
  border: 1px solid #ccc; /* Borde gris claro */
  font-size: 14px;        /* Tamaño del texto */
}

/*  EFECTO CUANDO HACES CLICK EN UN CAMPO  */
.form-group input:focus,
.form-group textarea:focus {
  outline: none;            /* Quita borde azul del navegador */
  border-color: var(--turquesa);    /* Cambia borde a turquesa */
}

/*  BOTÓN DE ENVIAR  */
.btn-enviar {
  width: 100%;               /* Ocupa todo el ancho */
  padding: 14px;             /* Espacio interno */
  background-color: var(--naranja);  /* Color principal */
  border: none;              /* Sin borde */
  border-radius: 8px;        /* Bordes redondeados */
  color: white;              /* Texto blanco */
  font-size: 16px;           /* Tamaño del texto */
  cursor: pointer;           /* Cursor tipo mano */
  transition: 0.3s;          /* Transición suave */
}

/*  EFECTO HOVER DEL BOTÓN  */
.btn-enviar:hover {
  background-color: var(--azul-cielo);  /* Color más oscuro al pasar el mouse */
}
/*aqui termina Reglamento rescatista*/


/*Reglamento a rescatista*/
.reglamento {
    max-width: 800px;
    margin: 50px auto;   /* esto lo centra */
    text-align: left;  
    font-size: 18px;  
}

.reglamento h3 {
    margin-top: 30px;
    color: var(--gris-medio);
}

.reglamento ul {
    margin-left: 20px;
    margin-bottom: 20px;
}

 
/*aqui termina css de reglamento rescatista*/



/*soy adoptante*/
.hero-adoptante{
    background-color: white;
    padding: 30px 40px 30px;
    text-align: center;;
}

.contenedor-texto{
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    
}

.hero-adoptante p{
    font-size: 16px;
    line-height: 1.7;
    color: #555;
    margin-bottom: 20px;
}

/* tarjeta */
.tarjeta-donacion{
    width: 260px;
    background-color: var(--naranja-bajo);
    margin: 40px auto;
    padding: 25px;
    border-radius: 10px;
    box-shadow: 0px 5px 15px rgba(0,0,0,0.2);
}

/* titulo de la tarjeta */
.tarjeta-donacion h3{
    font-size: 18px;
    margin-bottom: 10px;
}

/* precio de $500 */
.precio{
    font-size: 32px;
    font-weight: bold;
    margin-bottom: 20px;
}

/* Boton para donar */
.btn-donar{
    background-color: var(--turquesa);
    color: white;
    border: none;
    padding: 12px 25px;
    font-size: 16px;
    border-radius: 6px;
    cursor: pointer;
} 
/*efecto*/
.btn-donar:hover{
    background-color: var(--turquesa);
}

/* metodos de pagar */
.metodos{
    font-size: 14px;
    margin-top: 15px;
    color: #333;
}

/*texto de solicitud*/
.info-adopcion {
  width: 90%;
  max-width: 800px;
  margin: 40px auto;
  padding: 25px;
  background-color: var(--blanco);   /* fondo muy clarito naranja */
  border: 2px solid var(--naranja-claro) ;   /* borde naranja */
  border-radius: 8px;
  font-size: 16px;  /*tamaño de letra*/
  line-height: 1.6;
}
/*aqui termina el texto de solicitudes perro y gato*/

/*Quiero ayudar*/
.hero-ayudar {
   font-family: 'JetBrains Mono', monospace;
}
.titulo-seccion {
    background-color: #e9ecef;
    padding: 80px 20px;
    text-align: center;
    animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
}

.titulo-seccion h2 {
    font-size: 50px;
    color: #3a3f45; /*color de las barrras*/
    font-weight: 400;
    letter-spacing: 0px;
    margin: -50px;
}


/* Contenido */
.contenido-hero {
  font-size: 22px;
  margin-bottom: 30px;
    max-width: 800px;
    margin: -10px auto;
    color: #444;
}

.contenido-hero p {
    font-size: 25px;
    line-height: 1.7;
    margin-bottom: -30px;
    padding: 25px 50px 25px;
}

.contenido-hero ul {
    padding-left: 60px;
    text-align: left;
    padding: 25px 50px 25px;
}

.contenido-hero li {
    margin-bottom: 12px;
    font-size: 18px;
}

.mensaje-final {
    margin-top: 25px;
    font-weight: bold;
    color: var(--turquesa);
   
}
/*aqui termina css de quiero ayudar*/

/*Clases para el filtro de busqueda*/
.filtros {
  width: 300px;
  padding: 20px;
  background: #f5f5f5;
  border-radius: 10px;
  margin: 40px auto;
  font-family: Arial, sans-serif;
}

.filtros h3 {
  margin-bottom: 20px;
font-size: 18px;
color: var(--gris-oscuro);
}

.grupo {
  margin-bottom: 15px;
  display: flex;
  flex-direction: column;
}

.grupo label {
  font-size: 12px;
  margin-bottom: 5px;
  color: var(--gris-medio);
  letter-spacing: 1px;
}

select, input[type="number"] {
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.radio-group {
  display: flex;
  gap: 15px;
}

.btn-filtrar {
  width: 100%;
  padding: 10px;
  background: var(--naranja);
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-weight: bold;
  transition: transform 0.2 ease;
}

.btn-filtrar:hover {
  background: var(--turquesa);
  transform: scale(1.05);
}

.contenedor-principal {
  display: flex;
  gap: 30px;
}

@media (max-width: 768px){
  .contenedor-principal {
    flex-direction: column;
  }
}
/*aqui termina css de filtro de busqueda*/

/* Estilo general para ambos iconos */
.social-container {
  position: fixed !important ;
  bottom: 20px !important;
  left: 20px !important;
  display: flex;
  flex-direction: column;
  gap: 15px;
  z-index: 99999 !important;
}

.social-container a {
  font-size: 30px;
  background-color: var(--gris-oscuro);
  padding: 10px;
  border-radius: 50%;
  text-align: center;
  transition: 0.3s;
}

.social-container a:hover {
  transform: scale(1.2);
}

.social-icon {
    text-decoration: none; /* Quita el subrayado del link */
}

/* Colores específicos */
.facebook {
    color: var(--facebook-color); /* Azul Facebook */
}

.instagram {
    color: var(--instagram-color);/* Rosa Instagram */
}

.acerca{
  color: var(--acerca);
}

/* menus y submenus acomodados para celular siempre ira al ultimo
 todo lo que pongan tiene que ser ariba de esto */
@media (max-width: 768px) {
.navbar{
  padding: 10px 15px;
}
  .menu {
    flex-wrap: wrap;   
    gap: 12px;
    justify-content: flex-end;
  }

  .menu a {
    font-size: 16px;
  }

}
/*registro rescatista*/
@media (max-width: 480px) {
  .registro-rescatista {
    padding: 25px 20px;
  }
}

@keyframes Aparicion {
    /*animacion para cuando abra la pagina web*/
    0%{
    opacity: 0;
    transform: translateY(30px); /* que empiezen abajo e invisible*/
}
    100%{
     opacity: 1;
    transform: translateY(0); /*acomode su posicion y sean visibles*/
    }
}

.btn-enviar,
.btn-donar,
.btn-filtrar,
.cuenta,
.header .btn button {
  transition: all 0.25s ease;
}

.btn-enviar:hover,
.btn-donar:hover,
.btn-filtrar:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

.btn-enviar:active,
.btn-donar:active,
.btn-filtrar:active {
  transform: scale(0.95);
}

.btn-enviar:focus,
.btn-donar:focus {
  outline: 3px solid var(--turquesa);
  outline-offset: 3px;
}

/*aqui inicia css para mapa de veterinarias*/
.mapa {
  max-width: 900px;
  margin: 40px auto;
  padding: 20px;
  background-color: #f5f5f5;
  text-align: center;
  border-radius: 10px;
}

.mapa iframe {
  width: 100%;
  height: 400px;
  border: none;
  border-radius: none;
  display: block;
}

.mapa button {
  padding: 10px;
  margin-bottom: 20px;
  border-radius: 50px;
  border: none;
  cursor: pointer;
  background-color: var(--naranja);
  color: var(--blanco);
  transition: all 0.3s ease 0s;
}

.mapa button:hover {
  background-color: var(--gris-oscuro);
  color: var(--naranja-claro);
  transform: scale(1.2);
}
/*aqui termina css de mapas*/

/*css para acceder*/
.registro {
  text-align: center;
  padding: 40px;
  background-color: #f5e9d8;
  animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
}

.registro h1 {
  font-size: 40px;
  color: var(--naranja-claro);
}
.registro p {
  color: #555;
  margin-bottom: 30px;
}

.cards {
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}

.carda {
  background-color: white;
  width: 280px;
  padding: 20px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
  display: block;
}

.carda:hover {
  transform:scale(1.08);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}

figure {
  margin: 0;
}

.carda img {
  width: 100%;
  border-radius: 50px;
}

.carda h3 {
  color: var(--turquesa-oscuro);
  margin: 15px 0;
}

.carda p {
  font-size: 14px;
  margin-bottom: 20px;
}

.card a {
  display: inline-block;
  padding: 10px 20px;
  background: #7a7dbb;
  color: white;
  text-decoration: none;
  border-radius: 20px;
  transition: transform 0.3s ease;
}

.card a:hover {
  background-color: #5f62a3;
  transform:scale(1.08);
}
/*aqui termina css de acceder*/


/*css para adoptista/rescatistas*/
.logins{
margin: 0;
font-family: Arial;
background: url(fondoss-de-mascotas.webp) no-repeat center;
background-size: cover;
display: flex;
flex-direction: column;/*clave*/
height: 100vh;
animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
text-decoration: none; /* Quita el subrayado del link */
}
.registror, .login{
background: #ffffff;
padding: 30px;
border-radius: 15px;
width: 300px;
margin: auto;
}
h1{
font-size: 28px;
}
input{
width: 90%;
padding: 10px;
margin: 10px 0;
border-radius: 25px;
border: 2px solid #dba511;
}
.opciones{
display: flex;
justify-content: space-between;
font-size: 12px;
}
button{
width: 100%;
padding: 10px;
background: 4a6d8c;
color: #e28c0a;
border: none;
border-radius: 8px;
}
.login{
display: none;
}
/*aqui termina el css de adoptista y rescatista*/

/*aqui inicia el icono de favoritos (es una huella)*/
.acciones {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-right: 20px;
}

.icono-favorito {
  margin-left: 10px;
  margin-top: 10px;
  margin-bottom: 10px;
}

.icono-favorito, .menu {
  font-size: 24px;
  cursor: pointer;
  transition: transform 0.2s, color 0.2s;
}

.icono-favorito:hover, .menu:hover {
  transform: scale(1.2);
}
/*aqui termina el icono de favoritos*/

/*aqui empieza la tarjeta de visualizacion de las mascotas*/
.card-mascota {
  position: relative;
  width: 260px;
  background: #ffffff;
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 4px 10px rgb(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}

.card-mascota:hover {
  transform: translateY(-10px);
}

.card-mascota img {
  width: 100%;
  border-radius: 10px;
}

.favorito {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--naranja-bajo);
  color: white;
  padding: 8px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 14px;
}

.nombre {
  margin: 10px 0 5px;
  font-size: 18px;
  color: #333;
}

.tipo {
  font-size: 13px;
  color: #777;
  margin-bottom: 10px;
}

.datos {
  list-style: none;
  padding: 0;
  font-size: 14px;
  color: #444;
}

.datos li {
  margin: 4px 0;
}

.btn-adoptar {
  width: 100%;
  margin-top: 10px;
  padding: 8px;
  border: none;
  border-radius: 8px;
  background: var(--naranja-claro);
  color: white;
  font-size: 14px;
  cursor: pointer;
  transition: background 0.3s;
}

.btn-adoptar:hover {
  background: var(--turquesa);
}

/*css para el boten de mapa de vetrinarias de emrgencia*/
#btnEmergencia {
  background: red;
  color: white;
  padding: 15px;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
}

#ventanaEmergencia {
  border: none;
  border-radius: 15px;
  padding: 20px;
  width: 90%;
  max-width: 600px;
}

#mapa {
  height: 300px;
  margin: 10px 0;
}

/*css para el footer*/
.footer {
  background: var(--gris);
  color: var(--naranja-bajo);
  padding: 40px 20px;

  display: grid;
  gap: 20px;
  text-align: center;
}

.footer h2 {
  font-size: 24px;
  color: var(--naranja-claro);
}

.footer h3 {
  margin-bottom: 10px;
  color: var(--gris-oscuro);
}

.footer p {
  margin: 5px 0;
  color: var(--turquesa);
}

.footer address {
  font-style: normal;
}

.footer small {
  border-top: 1px solid #333;
  padding-top: 10px;
  color: var(--gris-oscuro);
}
/*Aqui termina el footer*/

/*css para el boton de IA*/
#btnIA {
  width: 75%; /* ocupa todo el ancho */
  text-align: center;
   margin: 0 auto; /*esto lo centra */

  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 15px;

  background-color: var(--naranja-bajo);
  color: white;
  padding: 15px;
  border: none;
  border-radius: 10px;

  font-size: 18px;
  cursor: pointer;
  animation: Aparicion 0.8s ease-out forwards; /*animacion para aperecer NO BORRAR*/
}

/* Hover */
#btnIA:hover {
  transform: scale(1.05);
  background: var(--naranja);
}

/* Click */
#btnIA:active {
  transform: scale(0.97);
}

#btnIA i {
  font-size: 20px;
}