:root {
    --fondo: #1C1B19;
    --tarjeta: #2A2825;
    --navbar: #141312;
    --texto: #E8E1D5;
    --texto-sec: #B8B0A2;
    --acento: #D98E4A;
    --acento2: #7A8863;
    --borde: #403D38;
}

body{
    background-color: var(--fondo);
    color: var(--texto);
    font-family: sans-serif;
}

.title{
    text-align: left;
}

.navbar{
    background-color: var(--navbar);
    height: 75px;
    border-radius: 5px;
    
    display: flex;
    justify-content: space-between;
    align-items: center;
    
    
}

.container__links{
    flex-grow: 4;
    
}
.container__links:first-child{
    flex-grow: 1;
    
}
.container__links:last-child{
    flex-grow: 4;
   
}

.navbar__links{
    background-color: var(--tarjeta);
    text-decoration: none;
    display: flex;
    height: 50px;
    border-radius: 8px;
    color: var(--texto);
    padding-top: auto;
    font-size: 20px;
    min-width: 80px;
    max-width: 80%;
    text-align: center;
    margin: auto;
    border: 1px solid var(--borde);
    justify-content: space-evenly;
    

    transition: 0.3s;
}

.navbar__links:hover{
    box-shadow: 0 0 35px #0009;
    transform: translateY(-5px);
    color: var(--acento);
}

.agradecimientos{
    margin-left: 10px;
}

.tarjet{
    background-color: var(--tarjeta);
    color: var(--texto);
    border: 1px solid var(--borde);
    border-radius: 8px;
    padding-bottom: 10px;
    padding-left: 20px;
    padding-right: 20px;
    text-align: center ;
    margin: 10px auto;
    width: 80%;

    transition: 0.3s;

}

.tarjet:hover{
    transform: translateY(-10px);
    box-shadow: 0 0 35px #000;
}

.tarjet h3{
    text-align: left;
    color: var(--acento);
    padding-top: 10px;
}

.footer{
    background-color: var(--navbar);
    height: 75px;
    border-radius: 5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

a {
    text-decoration: none;
    color: var(--texto);
    transition-timing-function: ease;
    transition-property: background-color, color;
    transition: 0.5s;
}

a:hover{
    color: var(--acento);
    background-color: var(--tarjeta);
}

.conteiner-img{
    width: 80vw;
    text-align: center;
    background-color: var(--tarjeta);
    margin: 10px auto;
    border-radius: 8px ;

    transition: 0.3s;
}

.conteiner-img:hover{
    box-shadow: 0 0 35px #0009;
}

.conteiner-img__img{
    width: 200px;
    border-radius: 25%;
    margin: 20px auto;

    transition: 0.3s;
}

.conteiner-img__img:hover{
    box-shadow: 0 0 35px #9999;
}

.destacar{
    color: var(--acento);
    background-color: var(--tarjeta);
}

#parrafo{
    padding-top: 10px;
}

h1{
    margin-left: 10%;
    color: var(--texto);
}

.tarjet__coment{
    color: var(--texto);
    background-color: var(--tarjeta);
    border: 1px solid var(--borde);
    border-radius: 5px;

}

.tarjet__Especieslink{
    color: var(--texto);
    display: block;
    border-radius: 10px;
    width: 150px;
    height: 100px;
    text-align: center;
    align-items:center;
}

.tarjet__container{
    background-color: var(--tarjeta);
    color: var(--texto);
    border: 1px solid var(--borde);
    
    border-radius: 10px;
    width: 150px;
    height: 100px;
    display: flex;
    align-items: center;
    text-align: center;
    justify-content: space-evenly;
    

    margin: 2px;

    transition: 0.5s;
    transition-property: box-shadow;
    transition-timing-function: linear;
    
}

.tarjet__container:hover{
    transform: translateY(-5px);
    box-shadow: 0 0 35px #000;
    color: var(--acento);
}



.flex{
    display: flex;
    flex-grow: 4;
    flex-wrap: wrap;
    margin: auto;
    align-items: center;
    justify-content:space-evenly;
    min-width: 150px;

}

.subtitulo{
    display: block;
    width: 100%;
    color: var(--texto-sec);
}

.mis__colonias{
    background-color: var(--tarjeta);
    text-decoration: none;
    display: block;
    height: 50px;
    border-radius: 8px;
    margin: 10px auto;
    color: var(--texto);
    border: 1px solid var(--borde);
}

.observaciones{
    text-align: left;
}

.container_galeria--foto{
    width: 80%;
    border-radius: 10px;
}

.img__dem{
    max-width: 90%;
    border-radius: 5px;
}

.tarjet.dem:hover {
    transform: none;
    box-shadow: none;
}
.opc{
    width: 200px;
    display: flex;
    
    align-content: center;
}
.container__dem{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    background-color: var(--tarjeta);
    border: 1px solid var(--borde);
    border-radius: 10px;
    width: 190px;
    padding: 12px;
    text-align: center;
    overflow: hidden;

    transition: 0.3s;
}

.container__dem a {
    font-size: 16px;
    font-weight: bold;
    color: var(--texto);
    margin-bottom: 10px;
    line-height: 1.3;
}

.container__dem a:hover {
    color: var(--acento);
    background-color: transparent;
}

.container__dem:hover{
    transform: translateY(-8px);
    box-shadow: 0 0 25px #0009;
    border-color: var(--acento);
}

.img__dem{
    width: 100%;
    height: 150px;
    object-fit: contain;
    background-color: #00000033;
    border-radius: 6px;
    max-width: 100%;
}

/* Contenedor que agrupa todas las tarjetas generadas por JS
   (el div#especies dentro de .tarjet.dem) -> las acomoda en
   una cuadrícula centrada que se ajusta sola según el ancho
   disponible, en vez de una sola columna larga */
#especies{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 15px;
}

.entradas{
    margin-top: 10px;
    width: 80%;
    min-height: 30px;
    background-color: #B8B0A2;
    border-radius: 8px;
}

.botones{
    margin: 10px;
    width: 80%;
    min-height: 40px;
    border-radius: 8px;
    background-color:#2A2825;
    border-color: #0009;
    border: #000 1px solid;
    color: #E8E1D5;

    transition: 0.5s;
}

.botones:hover{
    transform: translateY(-5px);
    border-color: #D98E4A;
    
}

@media (max-width: 550px) {
    .navbar {
        flex-direction: column;
        display: block;
        max-height: auto;
        height: auto;
        padding-right: 15px;
        min-width: 100%;
    }
    .footer{
        flex-direction: column;
        display: block;
        max-height: auto;
        height: auto;
        padding-right: 15px;
        min-width: 100%;
        margin: 5px;
    }

    .navbar__links{
        min-width: 100%;
        margin-top: 5px;
        margin-bottom: 5px;
    }
    .tarjet {
        width: 95%;
    }
    .tarjet__container {
        width: 100%;
    }

    /* .flex se usa para acomodar varias tarjetas en fila
       (ej. "Especies:" en el home). En celular, forzamos
       que cada tarjeta ocupe toda la fila para que no se
       vean 2-3 amontonadas sin espacio para leer el texto */
    .flex {
        flex-direction: column;
    }

    /* Los <h4> con datos de fotógrafo/AntWeb dentro de
       .container_galeria se ven muy juntos en pantalla
       angosta, les damos algo de aire */
    .container_galeria h4 {
        font-size: 14px;
        margin: 4px 0;
    }

    /* Nueva clase que agregaste (.tarjet__Especieslink) tenía
       width/height fijos de 150x100, mismo problema que
       .tarjet__container -> en celular pasa a ancho completo */
    .tarjet__Especieslink {
        width: 100%;
        height: auto;
        padding: 10px 0;
    }

    /* .container__dem (las tarjetas generadas por JS con
       fetch en las páginas de especies) tenía ancho fijo de
       190px -> en celular pasa a ancho completo, igual que
       .tarjet__container */
    .container__dem {
        width: 90%;
    }
}

/* --- Tablets y celulares grandes (768px o menos) --- */
@media (max-width: 768px) {

    /* El .conteiner-img (foto grande de arriba) usaba 80vw,
       eso ya es relativo, pero le damos más aire lateral */
    .conteiner-img {
        width: 92vw;
    }

    /* Las tarjetas de especies (Odontomachus, Camponotus sp,
       Solenopsis, Atta en la home) están pensadas con
       width: 150px FIJO -> en pantalla chica eso hace que
       se vean chiquitas y descuadradas. Las hacemos crecer
       usando el ancho disponible en vez de un valor fijo. */
    .tarjet__container {
        width: calc(50% - 10px); /* dos columnas en vez de una fila apretada */
        height: auto;
        min-height: 100px;
    }

    /* Mismo trato para la nueva .tarjet__Especieslink */
    .tarjet__Especieslink {
        width: calc(50% - 10px);
        height: auto;
        min-height: 100px;
    }

    /* Mismo trato para .container__dem: 2 columnas en tablet */
    .container__dem {
        width: calc(50% - 12px);
    }

    /* Las imágenes de la galería de AntWeb ya usan % (bien
       hecho de tu parte), solo les damos un poco más de ancho
       para aprovechar mejor la pantalla */
    .container_galeria--foto {
        width: 95%;
    }

    /* La imagen redonda de especie (conteiner-img__img) tiene
       width fijo de 200px -> en un celular angosto de 375px
       de ancho eso ya ocupa más de la mitad de la pantalla,
       se ve bien, pero lo topamos para que nunca se pase */
    .conteiner-img__img {
        max-width: 80%;
        width: 200px;
    }

    /* Tu nueva navbar con flex-grow en container__links se
       ve bien en pantalla ancha, pero en tablet conviene que
       los botones puedan pasar a varias filas en vez de
       apretarse en una sola */
    .navbar {
        flex-wrap: wrap;
        height: auto;
        padding: 10px 0;
    }
}

/* --- Celulares muy chicos (380px o menos, ej. iPhone SE) --- */
@media (max-width: 380px) {
    .conteiner-img__img {
        width: 150px;
    }

    h1 {
        margin-left: 5%;
        font-size: 1.5rem;
    }

    .tarjet {
        padding-left: 10px;
        padding-right: 10px;
    }
}