body{
    background-color: beige;
}


h1{
    text-align: center;
    border-radius: 5px;
    border-width: 6px;
    padding: 10px;

    font-family:Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
    font-size: 34px;
    font-style: italic;
    color:rgb(0, 0, 0);
    
    animation: 0.5s linear 0s 1 running myFrameDash;
 display:block;
 position:relative;
 font-weight: bold;
 text-shadow: 0px 2px 0px #9f9f9f;
}

h3{
    text-align: center;
    font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
    animation: 0.8s linear 0s 1 running myFrameDash;
 display:block;
 position:relative;
 font-weight:bold;
}

p{
    text-align: center;
    padding: 20px;

    font-family:Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
    font-size: 14px;
    font-style: italic;
    color:rgb(0, 0, 0);
    
    animation: 0.5s linear 0s 1 running myFrameDash;
 display:block;
 position:relative;
}

button{
     border-radius: 2px;
    border-width: 1px;
    border-color: black;
    
    background: rgb(0, 208, 0);

    background-size: 200% auto;

    margin: 0; 
    display: inline-block;
    position: relative;
    
    color: rgb(255, 255, 255); 
    width: 160px; 
    height: 39px;
    font-family: fantasy;
    text-shadow: 1px 2px 1px black;
    font-size: 99%;
    
    animation: 
        0.8s cubic-bezier(0.25, 1, 0.5, 1) 0s 1 running myFrameDash,
        moverDegradado 3s linear infinite;
        
    transition: transform 0.25s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.25s ease, filter 0.25s ease;
}


.contenedor-boton {
    text-align: center; 
    width: 100%;        
}


.buttonComun {
    border-radius: 2px;
    border-width: 1px;
    border-color: black;
    
    background: rgb(0, 208, 0);
    background-size: 200% auto;


    margin: 0 auto; 
    display: inline-block;
    position: relative;
    
    color: rgb(255, 255, 255); 
    width: 160px; 
    height: 39px;
    font-family: fantasy;
    text-shadow: 1px 2px 1px black;
    font-size: 99%;
    
    animation: 
        0.8s cubic-bezier(0.25, 1, 0.5, 1) 0s 1 running myFrameDash,
        moverDegradado 3s linear infinite;
        
    transition: transform 0.25s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.25s ease, filter 0.25s ease;
}


button:hover{
    color: rgb(255, 255, 255);

    box-shadow: 0px 8px 3px rgba(6, 135, 6, 0.797); 
    transform: translateY(-5px); 
    filter: brightness(1.1); 
}

button:active{
    color: rgb(255, 255, 255);
    box-shadow: 0px 4px 1px rgba(13, 209, 65, 0.5);
    transform: translateY(1px); 
}

/* AREA PERSONAL TEXTO */
textarea {
    width: 100%;            
    height: 250px;          
    box-sizing: border-box; 
    margin: 20px 0;         
    
    padding: 15px;
    border: 3px solid #000000;
    border-radius: 8px;
    font-size: 16px;
    font-family: sans-serif;
    resize: none;        
    animation: 0.5s linear 0s 1 running myFrameDashSlow;  
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: sans-serif;
}

/* --- BANNER CARMESÍ --- */
.banner-superior {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: #dc143c; /* Carmesí */
    z-index: 1000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
}

.bloque-izquierdo {
    display: flex;
    align-items: center;
    gap: 15px; /* Separación entre las líneas y el texto */
}

.logo-o-nombre {
    color: white;
    font-size: 20px;
    font-weight: bold;
}

.accesos-rapidos a {
    color: white;
    text-decoration: none;
    margin-left: 15px;
}


#menu-toggle {
    display: none; 
}

.menu-icon {
    font-size: 28px;
    color: white;
    cursor: pointer;
    user-select: none;
}

/* El panel lateral ahora aparece justo debajo del banner */
.sidebar {
    position: fixed;
    top: 60px; /* Altura exacta del banner para que no lo tape */
    left: -250px;
    width: 250px;
    height: calc(100vh - 60px); /* Ocupa el resto de la pantalla */
    background-color: #222;
    transition: left 0.3s ease;
}

.sidebar a {
    display: block;
    padding: 15px 25px;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid #333;
}

.sidebar a:hover {
    background-color: #444;
}

/* Lógica de apertura */
#menu-toggle:checked ~ .sidebar {
    left: 0;
}



/* CUERPO DE LA PÁGINA*/
.contenido-pagina {
    margin-top: 80px; /* Espacio para que el banner no tape el contenido */
}

.logo{
    color: rgb(220, 243, 245);
    text-shadow: 0px 2px 0px  #000000;
    font-size: 20px;
    font-family: cursive;
}

/* CONTENEDORES Y ALINEACIÓN EN EL CENTRO */
.parent {
    display: flex;
    justify-content: center;
    width: 100%;
}

.contenedor-fila {
    display: flex;
    flex-direction: row;
    align-items: center;     /* Centra verticalmente la imagen con el botón */
    justify-content: center;   /* Centra todo horizontalmente en la pantalla */
    gap: 20px;
    width: fit-content;
    margin: 0 auto;            /* Asegura el centrado absoluto en la página */
}

/* TAMAÑO FIJO PARA LAS IMÁGENES*/
.social-img {
    width: 100px;               /* Ancho fijo para que siempre sean idénticas */
    height: 100px;              /* Alto fijo */
    object-fit: contain;       /* Evita que la imagen se deforme o estire */
    transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
    cursor: pointer;
}

/* EFECTOS DE LAS IMÁGENES */
.social-img:hover {
    transform: translateY(-5px); 
    filter: brightness(1.1); 
}

.social-img:active {
    transform: translateY(1px); 
}

/* BOTÓN CON TAMAÑO FIJO  */
.buttonCenter {
    border-radius: 2px;
    border-width: 1px;
    border-color: black;
    background: rgb(0, 208, 0);
    background-size: 200% auto;
    margin: 0; 
    display: inline-block;
    position: relative;
    
    color: rgb(255, 255, 255); 
    width: 160px;              /* Ancho fijo inamovible */
    height: 42px;              /* Alto fijo inamovible */
    font-family: fantasy;
    text-shadow: 1px 2px 1px black;
    font-size: 99%;
    
    animation: 
        0.8s cubic-bezier(0.25, 1, 0.5, 1) 0s 1 running myFrameDash,
        moverDegradado 3s linear infinite;
        
    transition: transform 0.25s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.25s ease, filter 0.25s ease;
}


/* interaccion: */
body.bloquear-scroll {
    overflow: hidden !important;
    touch-action: none !important; /* Bloquea gestos táctiles en móviles */
    -ms-touch-action: none !important;
}

@keyframes myFrameDash {
    0% {
        transform: scale(0);   /* Empieza completamente diminuto en el centro (adentro) */
        opacity: 0;            /* Invisible */
    }
    70% {
        transform: scale(1.2); /* Se infla un poco más de su tamaño real (efecto burbuja) */
        opacity: 0.7;
    }
    100% {
        transform: scale(1);   /* Regresa a su tamaño original (estabilización) */
        opacity: 1;            /* Completamente visible */
    }
}

@keyframes myFrameDashSlow {
    0% {
        transform: scale(0);   /* Empieza completamente diminuto en el centro (adentro) */
        opacity: 0;            /* Invisible */
    }
    70% {
        transform: scale(1.09); /* Se infla un poco más de su tamaño real (efecto burbuja) */
        opacity: 0.8;
    }
    100% {
        transform: scale(1);   /* Regresa a su tamaño original (estabilización) */
        opacity: 1;            /* Completamente visible */
    }
}