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

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Lora', serif;
    background:#000000;
    color:#b3b1b1;
    overflow-x:hidden;
    max-width:100%;
}

/* HEADER */
header{
    position:fixed;
    top:20px;
    left:50%;
    transform:translateX(-50%);
    width:95%;
    padding:10px 30px;
    border-radius:15px;
    z-index:1000;

    background:linear-gradient(
        80deg,
        #000000 -10%,
        #000000 10%,
        #C00000 70%,
        #d60202 99%
    );

    backdrop-filter:blur(10px);
}

/* NAVEGACIÓN */
nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

/* LOGO */
.logo-area{
    display:flex;
    align-items:center;
    gap:20px;
}

.logo-area img{
    height:85px;
    width:auto;
    object-fit:contain;
    display:block;
}

.logo-area a{
    color:#d9d9d9;
    text-decoration:none;
    font-size:15px;
    transition:.3s;
}

.logo-area a:hover{
    color:#ffffff;
}

/* MENÚ */

.nav-links{
    list-style:none;
    display:flex;
    align-items:center;
    gap:25px;
}

.nav-links li{
    list-style:none;
}

.nav-links a{
    color:#fff;
    text-decoration:none;
    font-size:20px;
    font-weight:bold;
    transition:.3s;
}

.nav-links a:hover{
    color:#ff3b3b;
}

.nav-links a.active{
    color:#ff3b3b;
}

/* BOTÓN CARRITO */
.nav-links button{

    background:#ff0000;
    border:none;
    padding:10px 22px;
    border-radius:10px;
    cursor:pointer;

    display:flex;
    align-items:center;
    justify-content:center;

    transition:.3s;
}

.nav-links button:hover{

    background:#d60000;

}

.nav-links button a{

    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;

}

/* Contenedor general */
.contenedor-texto {
    position: relative;
    top: 200px;
    max-width: 800px;
    width: 90%;
    margin: 2rem auto;
    padding: 2rem;
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(12, 12, 12, 0.08);
    font-family: 'Segoe UI', Roboto, sans-serif;
}

    /* Estilo del título */
    .contenedor-texto h2 {
      text-align: center;
      color: #2c3e50;
      margin-top: 0;
      margin-bottom: 1.5rem;
      font-weight: 600;
      border-bottom: 5px solid #c60c0c;
      padding-bottom: 0.6rem;
    }

    /* Texto justificado */
    .contenedor-texto p {
      text-align: justify;
      color: #444444;
      line-height: 1.7;
      font-size: 1rem;
      margin: 0;
    }

    /* Adaptación a pantallas pequeñas */
    @media (max-width: 480px) {
      .contenedor-texto {
        padding: 1.5rem;
        margin: 1rem auto;
      }
      .contenedor-texto h2 {
        font-size: 1.3rem;
      }
      .contenedor-texto p {
        font-size: 0.95rem;
      }
    }

/*====================================================
=                     FOOTER                         =
====================================================*/

footer{
    position:relative;
    top: 250px;
    background:linear-gradient(
        80deg,
        #000000 -10%,
        #000000 10%,
        #C00000 70%,
        #d60202 99%
    );
    color:#fff;
    padding:60px 5% 30px;
    font-family:'Lora', serif;
}

/* Contenido */

.footer-content{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:40px;
    flex-wrap:wrap;
}

/* Botón */

.btn-trabajo{
    position: absolute;
    align-items: center;
    width:220px;
    height:55px;
    border:none;
    border-radius:30px;
    background:#e40a0a;
    cursor:pointer;
    transition:.3s;
}

.btn-trabajo:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 25px rgba(0,0,0,.25);
}

.btn-trabajo a{
    display:block;
    width:100%;
    color:#ffffff;
    text-decoration:none;
    font-size:20px;
    font-family:'Lora', serif;
    font-weight:bold;
}

/* Información */

.footer-right{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
}

.footer-right h2{
    font-size:17px;
    font-weight:normal;
    text-align:center;
}

.footer-right a{
    color:#ffffff;
    text-decoration:none;
    transition:.3s;
}

.footer-right a:hover{
    color:#ffd6d6;
}

.correo{

    margin-top:10px;

    font-size:17px;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:768px){

.footer-content{

    flex-direction:column;

    text-align:center;

}

.footer-left{

    width:100%;

}

.btn-trabajo{

    width:250px;
    align-items: center;

}

.footer-right{

    width:100%;

}

.footer-right h2{

    font-size:15px;

}

.correo{

    font-size:15px;

}

}

/*====================================================
=          MENÚ FLOTANTE REDES SOCIALES              =
====================================================*/

.social-menu{
    position:fixed;
    top:30%;
    left:5%;
    transform:translate(-50%,-50%);
    z-index:1000;
    cursor:grab;
    user-select:none;
}

.social-menu:active{
    cursor:grabbing;
}

/*==========================
      BOTÓN PRINCIPAL
===========================*/

.main-btn{
    width:65px;
    height:65px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    background:rgba(255,255,255,.12);
    backdrop-filter:blur(12px);
    border:1px solid rgba(255,255,255,.9);
    color:#ff0000;
    font-size:28px;
    box-shadow:0 6px 20px rgba(0,0,0,.25);
    transition:.3s;
}

.main-btn:hover{

    transform:scale(1.08);

}

.main-label{
    position:absolute;
    left:75px;
    top:50%;
    transform:translateY(-50%);
    padding:6px 12px;
    border-radius:6px;
    background:rgba(0,0,0,.85);
    color:#ffffff;
    font-size:13px;
    opacity:0;
    visibility:hidden;
    transition:.3s;
}

.main-btn:hover .main-label{

    opacity:1;
    visibility:visible;

}

/*==========================
      LISTA DE ICONOS
===========================*/

.social-items{
    position:absolute;
    top:50%;
    left:50%;
    width:280px;
    height:280px;
    transform:translate(-50%,-50%);
    list-style:none;
    opacity:0;
    visibility:hidden;
    transition:.4s;
}

.social-menu:hover .social-items{
    opacity:1;
    visibility:visible;
}

.social-item{
    position:fixed;
    width:55px;
    height:55px;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%) scale(0);
    transition:.4s;
}

.social-menu:hover .social-item{

    transform:translate(var(--x),var(--y)) scale(1);

}

/*==========================
      POSICIONES
===========================*/

.social-item:nth-child(1){

    --x:-110px;
    --y:-100px;

}

.social-item:nth-child(2){

    --x:40px;
    --y:-80px;

}

.social-item:nth-child(3){

    --x:-140px;
    --y:10px;

}

.social-item:nth-child(4){

    --x:70px;
    --y:20px;

}

.social-item:nth-child(5){

    --x:-80px;
    --y:120px;

}

.social-item:nth-child(6){

    --x:0;
    --y:60px;

}

/*==========================
      BOTONES
===========================*/

.social-link{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    text-decoration:none;
    color:#db0c0c;
    font-size:22px;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.15);
    transition:.3s;
}

.social-link:hover{

    transform:scale(1.15);

}

/*==========================
      COLORES
===========================*/

.facebook:hover{

    background:#1877f2;

}

.instagram:hover{

    background:linear-gradient(
        45deg,
        #f09433,
        #e6683c,
        #dc2743,
        #cc2366,
        #bc1888
    );

}

.x:hover{

    background:#000;

}

.whatsapp:hover{

    background:#25d366;

}

.linkedin:hover{

    background:#0077b5;

}

.github:hover{

    background:#333;

}

/*==========================
      ETIQUETAS
===========================*/

.social-label{

    position:absolute;

    left:70px;
    top:50%;

    transform:translateY(-50%);

    background:rgba(0,0,0,.85);

    color:#fff;

    padding:6px 12px;

    border-radius:6px;

    font-size:13px;

    opacity:0;
    visibility:hidden;

    transition:.3s;

}

.social-item:hover .social-label{

    opacity:1;
    visibility:visible;

}

/*==========================
      RESPONSIVE
===========================*/

@media(max-width:768px){

.main-btn{

    width:55px;
    height:55px;

    font-size:24px;

}

.social-item{

    width:48px;
    height:48px;

}

.social-link{

    font-size:20px;

}

.social-label{

    display:none;

}

}

/*====================================================
=              RESPONSIVE GENERAL                    =
====================================================*/

/* ---------- TABLETS ---------- */

@media (max-width:1024px){

header{

    width:96%;
    padding:12px 20px;

}

.logo-area img{

    height:70px;

}

.nav-links{

    gap:18px;

}

.nav-links a{

    font-size:18px;

}

.texto-fijo{

    padding-left:7%;
    padding-right:7%;

}

.texto-fijo h1{

    font-size:3rem;

}

.texto-fijo p{

    font-size:1.2rem;

}

.card-principal,
.card-secundaria{

    grid-template-columns:1fr;

}

.estadisticas{

    grid-template-columns:repeat(2,1fr);

}

.contenedor3{

    flex-direction:column;

    text-align:center;

}

.contadorr{

    align-items:center;

}

.footer-content{

    flex-direction:column;

}

}


/* ---------- CELULARES ---------- */

@media (max-width:768px){

header{

    top:10px;

    width:95%;

    padding:10px;

}

nav{

    flex-direction:column;

    gap:10px;

}

.logo-area{

    flex-direction:column;

    gap:8px;

}

.logo-area img{

    height:55px;

}

.logo-area a{

    font-size:13px;

}

.nav-links{

    width:100%;

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:10px;

}

.nav-links a{

    font-size:15px;

}

.nav-links button{

    position:static;

    margin-top:8px;

}

/* Carrusel */

.carrusel,
.carrusel-imagen{

    height:100vh;

}

.texto-fijo{

    justify-content:center;

    align-items:center;

    text-align:center;

    padding:20px;

}

.texto-fijo h1{

    position:static;

    font-size:2.3rem;

    margin-bottom:20px;

}

.texto-fijo p{

    position:static;

    margin:0;

    font-size:1rem;

    text-align:center;

}

/* Tarjetas */

.card-inicio{

    padding:20px;

}

.estadisticas{

    grid-template-columns:1fr;

}

.item{

    justify-content:center;

}

/* Barras */

.barra_nosotros h1,
.barra_socios h1,
.barra_certificaciones h1{

    font-size:30px;

}

/* Logos */

.logo-item{

    width:120px;

}

.logo-item img{

    max-height:45px;

}

/* Footer */

.footer-right h2{

    font-size:15px;

}

.btn-trabajo{
    position: relative;
    width:220px;
    align-items: center;

}

/* Redes */

.social-menu{

    left:15px;

    top:75%;

    transform:none;

}

}


/* ---------- CELULARES PEQUEÑOS ---------- */

@media (max-width:480px){

header{

    border-radius:10px;

}

.logo-area img{

    height:45px;

}

.nav-links{

    gap:8px;

}

.nav-links a{

    font-size:13px;

}

.texto-fijo h1{

    font-size:1.9rem;

}

.texto-fijo p{

    font-size:.9rem;

}

.contador,
.contador2,
.contador3{

    font-size:2.4rem;

}

.logo-item{

    width:95px;

}

.logo-item img{

    max-height:38px;

}

.footer{

    padding:40px 20px;

}

.footer-right h2{
    align-items: center;
    font-size:13px;

}

.correo{
    font-size:13px;
}

}
/* --- IMAGEN FLOTANTE CIRCULAR --- */
        .floating-circle {
            position: fixed;
            top: 85%;
            right: 4%;
            width: clamp(60px, 9vw, 80px);
            height: clamp(60px, 9vw, 80px);
            border-radius: 50%;
            overflow: hidden;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
            cursor: move;
            z-index: 1000;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }

        .floating-circle:hover {
            transform: scale(1.15);
            box-shadow: 0 6px 25px rgba(0, 0, 0, 0.45);
        }

        .floating-circle img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
        }

        .floating-circle a {
            display: block;
            width: 100%;
            height: 100%;
            pointer-events: auto;
        }

        /* --- TEXTO EMERGENTE INICIAL --- */
        .tooltip-initial {
            position: fixed;
            background: rgba(0, 0, 0, 0.8);
            color: white;
            padding: clamp(8px, 2vw, 12px) clamp(12px, 3vw, 18px);
            border-radius: 8px;
            font-size: clamp(0.9rem, 2vw, 1.1rem);
            z-index: 1002;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.5s ease, visibility 0.5s ease;
            /* Posición relativa al icono */
            right: calc(clamp(40px, 8vw, 70px) + clamp(15px, 3vw, 25px));
            top: 85%;
            white-space: nowrap; /* Evitar salto de línea */
        }

        /* Flecha del tooltip */
        .tooltip-initial::after {
            content: "";
            position: absolute;
            top: 50%;
            right: -10px;
            transform: translateY(-50%);
            border-width: 10px 0 10px 10px;
            border-style: solid;
            border-color: transparent transparent transparent rgba(0, 0, 0, 0.8);
        }

        /* Botón de cerrar */
        .tooltip-close {
            background: transparent;
            border: none;
            color: #ccc;
            font-size: 1.2rem;
            cursor: pointer;
            margin-left: 8px;
            transition: color 0.2s ease;
        }

        .tooltip-close:hover {
            color: white;
        }

        /* --- AJUSTES EN MÓVILES --- */
        @media (max-width: 480px) {
            .floating-circle {
                top: auto;
                bottom: 30px;
                right: 20px;
            }

            .tooltip-initial {
                top: auto;
                bottom: 30px;
                right: calc(clamp(40px, 8vw, 70px) + clamp(15px, 3vw, 25px));
            }

            .tooltip-initial::after {
                right: -10px;
                top: 50%;
            }
        }
/*====================================================
=          MENÚ FLOTANTE REDES SOCIALES              =
====================================================*/

.social-menu{
    position:fixed;
    top:30%;
    left:5%;
    transform:translate(-50%,-50%);
    z-index:1000;
    cursor:grab;
    user-select:none;
}

.social-menu:active{
    cursor:grabbing;
}
