
/*
colores
background #1d263b
hover menu #8B5CF6
seccion riesgo #26354b
bacground riesgo #415a77
servicios #415a77
bordes card hover #8B5CF6
elegirnos #778da9
planes background #9ba4b4
*/


@import url("/static/vendor/fonts/raleway.css");


*{
    margin: 0;
    padding: 0;
    
    box-sizing: border-box;
    font-family: Arial, Helvetica, sans-serif;
    /*color: #ffffff;*/
    letter-spacing: 1px;
}
#labelForm{
  color: white;
  text-align: center;
}
.divContacto{
  margin-top: 1rem;
  padding-top: 1rem;
}

h2{
    margin:  20px 0;
}
body{
    background-color: #1d263b;
    color: #fff;
    margin-top: 62px;
}

/* -------------------- barra de navegacion------------------------------------*/

.navbar{
    
    transition: all 0.5s;
}
#hamburguesa{
    color: #fff;
}
.navscroll{
    background-color: black;
}
.dropdown-item{
       color: #fff;
      
}

.dropdown-menu.show{
    background-color: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
        
}


.menu:hover{
    border-color: #8B5CF6;
    color: #8b5cf6 !important;
    
}


/*   --------------------------- seccion quienes somos---------------------------------- */

.quienes-somos{

    background: #1d263b;
    color: #fff;
   /* background: linear-gradient(90deg, rgba(2,0,36,1) 0%, rgba(0,51,102,1) 43%, rgba(90,110,131,1) 100%);;
    */padding: 10px 0 10px 0;
}

.about{
    border-top: 100px;
    background-image: url('../imagenes/especialistas.png');
     background-size: cover;                   /* La imagen cubre todo el div */
     background-position: center;                /* Centra la imagen */
    background-repeat: no-repeat;
    border-radius: 10px;
    
}
.titulo-quienes{

    text-align: center;
    padding: 10px 0 10px 0;
    padding-top: 50px;
    margin-top: 50px;
    
}
.texto-quienes{
    text-align: justify;
    padding: 10px;
}
.pquienes{
    padding: 4rem;
    text-align: justify;
    line-height: 2;
    margin: 5% 5%;
    font-size: x-large;
    text-shadow: 
    3px 3px 0 black, /* Sombra inferior derecha */
   -3px 3px 0 black, /* Sombra inferior izquierda */
   -3px -3px 0 black, /* Sombra superior izquierda */
    3px -3px 0 black; /* Sombra superior derecha */
    
}

/*------------------------------------movimiento texto-----------------------------------------*/

.pquienes {
	-webkit-animation: slide-top 2.5s steps(100, end) forwards;
	        animation: slide-top 2.5s steps(100, end) forwards;
}



@-webkit-keyframes slide-top {
  0% {
    -webkit-transform: translateY(500px);
            transform: translateY(500px);
  }
  100% {
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
}
@keyframes slide-top {
  0% {
    -webkit-transform: translateY(500px);
            transform: translateY(500px);
  }
  100% {
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
}




/* ------------------------------seccionn riesgos------------------------------------*/

.riesgo{
    background-color: #26354b;
    color: #fff;
    text-align: center;
    padding-bottom: 60px;
    
    
}
.priesgo{
    font-size: small;
}


.riesgo h2 {
      margin-bottom: 30px;
      font-size: 3.8rem;
      padding-top: 100px;
    }

    .riesgo-animacion {
      position: relative;
      width: 100%;
      /*max-width: 800px;*/
      height: 650px;
      margin: 5px 5px;
      /*background: #ffffff;
      border: 2px dashed #ccc;
      border-radius: 10px;*/
      overflow: hidden;
    }

    .riesgo-div {
      position: absolute;
      display: flex;
      flex-direction: column;
      /*width: 80px;
      height: 80px;*/
      max-width: 33%;
      background: #415a77;
      color: white;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: bold;
      border: 5px solid #415A77;
      
      box-shadow: 0 1rem 3rem 0px rgba(252, 250, 250, 0.175);
      opacity: 0;
      transform: translate(-50%, -50%) scale(0.5);
      transition: all 1s ease;
    }

    .h4-riesgo{
        color: aqua;
        margin-top: 5px;
        
    }

    /* Posiciones finales */
    #div1.final { top: 5%; left: 5%; transform: translate(0%, 0%) scale(1); opacity: 1; }
    #div2.final { top: 5%; right: 5%; transform: translate(0%, 0%) scale(1); opacity: 1; }
    #div3.final { top: 50%; left: 50%; transform: translate(-50%, -50%) scale(1); opacity: 1; }
    #div4.final { bottom: 5%; left: 5%; transform: translate(0%, 0%) scale(1); opacity: 1; }
    #div5.final { bottom: 5%; right: 5%; transform: translate(0%, 0%) scale(1); opacity: 1; }

    
    
    /* Responsividad *//*
    @media (max-width: 760px) {
       #div1.final { top: 20%; left: 50%; transform: translate(-50%, 0%) scale(1); opacity: 1; }
  #div2.final { top: 35%; left: 50%; transform: translate(-50%, 0%) scale(1); opacity: 1; }
  #div3.final { top: 50%; left: 50%; transform: translate(-50%, 0%) scale(1); opacity: 1; }
  #div4.final { top: 65%; left: 50%; transform: translate(-50%, 0%) scale(1); opacity: 1; }
  #div5.final { top: 80%; left: 50%; transform: translate(-50%, 80%) scale(1); opacity: 1; }
*/
  
  @media (max-width: 768px) {
  .riesgo-animacion {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: auto;
    padding: 20px 0;
    gap: 16px;
    position: static;
    min-height: fit-content;
  }

  .riesgo-div {
    position: relative;
    width: 90%;
    max-width: 300px;
    transform: scale(0.5);
    opacity: 0;
    transition: all 0.8s ease;
  }

  .riesgo-div.final {
    transform: scale(1);
    opacity: 1;
  }

  /* Desactivar estilos de posicionamiento por ID */
  #div1.final,
  #div2.final,
  #div3.final,
  #div4.final,
  #div5.final {
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    transform: scale(1);
  }
}

   


@media (min-width: 768px) and (max-width: 1024px) {
  .riesgo-animacion {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto auto auto;
    gap: 20px;
    justify-content: center;
    align-items: center;
    height: auto;
    padding: 40px 20px;
    position: static;
  }

  .riesgo-div {
    position: relative;
    width: 90%;
    max-width: 250px;
    margin: 0 auto;
    transform: scale(0.5);
    opacity: 0;
    transition: all 0.8s ease;
    text-align: center;
  }

  .riesgo-div.final {
    transform: scale(1);
    opacity: 1;
  }
/* Desactivar estilos de posicionamiento por ID */
  #div1.final,
  #div2.final,
  #div3.final,
  #div4.final,
  #div5.final {
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    transform: scale(1);
  }



  /* Distribución específica */
  #div1 { grid-row: 1; grid-column: 1; }
  #div2 { grid-row: 1; grid-column: 2; }

  #div3 { grid-row: 2; grid-column: 1; }
  #div4 { grid-row: 2; grid-column: 2; }

  #div5 { grid-row: 3; grid-column: 1 / span 2; justify-self: center; }
}

  
  
   
    
  
  
  
  
  
  
  /*.riesgo-animacion {*/
    /*height: 600px; /* más alto para dejar espacio a los bloques */
  /*} */

  .riesgo-div {
    /*width: 60px;
    height: 60px;*/
    font-size: 12px;
  }
    













/*---------------------------------- servicios---------------------------------------    */


.ciberseguridad{

    
    
    /*background-color:#415a77;*/
    background-color: #26354b;
    color: #fff;
    /*background: rgb(0,51,102);
    background: linear-gradient(180deg, rgba(0,51,102,1) 0%, rgba(90,110,131,1) 100%);
    background: linear-gradient(90deg, rgba(2,0,36,1) 0%, rgba(0,51,102,1) 43%, rgba(90,110,131,1) 100%);*/
}

.card{
  color: #fff;
  background-color: #415a77;
  border-radius: 100px;
}

.card-body{
text-align: justify;

}

.card-title{
text-align: center;
border-bottom: solid;
border-color: #8B5CF6;
padding-bottom: 10px;
}

.txto-ciber{

font-size: 1.7rem;

}
.h2ciber{
    text-align: center;
}



.card:hover{

    border-color: #8B5CF6;
}
.card-img-top{
    align-self: center;
    margin: 1rem;
    border-radius: 20px;
    max-width: 15rem;
    max-height: 15rem;
}
.soporteit{

    background: linear-gradient(90deg, rgba(2,0,36,1) 0%, rgba(0,51,102,1) 43%, rgba(90,110,131,1) 100%);
}

.img-servicios{
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
}

.serv-1, .serv-2, .serv-3, .serv-4, .serv-5{
  width: 80%;
  margin: 5% 10% 0 10%;
}

@media (max-width: 767px){
  .serv-1, .serv-2, .serv-3, .serv-4, .serv-5{
  width: 100%;
  margin: 0% 0% 0 1%;
}
}
/* ---------------------------------seccion porque elegirnos------------------------*/

.elegirnos{
    background-color: #778da9;
    /*background-image: url(/static/imagenes/elegirnos.png);
     background-size: cover;                   /* La imagen cubre todo el div */
    /* background-position: center;                /* Centra la imagen */
    /*background-repeat: no-repeat;*/
    flex-direction: column;
    align-items: center;
    justify-content: center;
}





.h2-elegirnos{
    text-align: center;
    margin-top: 0px;
    padding: 20px 0px;
    color: #fff;
    letter-spacing: 1px;
}
.titulo-elegirnos{
    color: #415a77;
    font-weight: 600;
    letter-spacing: 1px;
}

.texto-elegirnos{
  display: flex;
  flex-direction: row-reverse;
}


.li-elegirnos::marker{
  
        
  font-size: 30px;     /* Tamaño del marcador */
  color:#415a77;         /* Color */
  margin-right: 10px;  /* Espacio entre marcador y texto */
}
.p-elegirnos{
margin-top: 1rem;
letter-spacing: 1px;
}

.img-elegirnos{
  max-width: 5rem;
  max-height: 5rem;
}

.contenedor-elegirnos{
background-color: transparent;

}
.div-columnas{
background-color: transparent;
display: grid;
}
.columnas-elegirnos{
background-color: transparent;
}

#colele1{ grid-row: 1; grid-column: 1;

}
#colele2{grid-row: 1; grid-column: 2;
    
}
#colele3{grid-row: 2; grid-column: 1;
    
}
#colele4{grid-row: 2; grid-column: 2;
    
}
#colele5{grid-row: 3; grid-column: 1 / span 2; justify-self: center;
    
}

@media (max-width: 767px){
#colele1{ grid-row: 1; grid-column: 1;

}
#colele2{grid-row: 2; grid-column: 1;
    
}
#colele3{grid-row: 3; grid-column: 1;
    
}
#colele4{grid-row: 4; grid-column: 1;
    
}
#colele5{grid-row: 5; grid-column: 1 / span 2; justify-self: center;
    
}
  
}

/* -----------------------------------seccion planes abono------------------------------- */


.planes{
    background-color: #9ba4b4;
    color: #000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
   /*height: 100vh;*/
}
.divplanes{
    
    width: 100%;
    /*height: 100vh;*/
    align-content: center;
    justify-items: center;
}
.tablaplanes{
    
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    width: 100%;
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.plan{

padding: 20px;
/*width: 25%;*/
background-color:transparent;
text-align: center;
border: 2px solid transparent;
}

.plan:hover{
border-radius: 10px;
border: 2px solid #415A77;
box-shadow:0 1rem 3rem 0px rgba(0, 0, 0, 0.175);
}

h3{
    margin: 20px 0;
}
.pplanes{
    font-size: 1.2rem;
}
.liplanes{
    color: #415A77;
    text-align: center;
    padding-left: 0px;
}
.ul-planes{
    padding-top: 25px;
}
.boton-planes {
            background: white;
            color: #667eea;
            border: none;
            padding: 10px;
            font-size: 18px;
            font-weight: bold;
            border-radius: 50px;
            cursor: pointer;
            box-shadow: 0 10px 30px rgba(0,0,0,0.2);
            transition: all 0.3s ease;
        }

.boton-planes:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 40px rgba(0,0,0,0.3);
        }


/* -------------------------modal y form------------------------------*/
        .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.7);
            justify-content: center;
            align-items: center;
            z-index: 1000;
            animation: fadeIn 0.3s ease;
        }

        .modal.active {
            display: flex;
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        .modal-content {
            background: white;
            border-radius: 20px;
            max-width: 600px;
            width: 90%;
            max-height: 90vh;
            overflow-y: auto;
            position: relative;
            animation: slideUp 0.3s ease;
        }

        @keyframes slideUp {
            from { transform: translateY(50px); opacity: 0; }
            to { transform: translateY(0); opacity: 1; }
        }

        .close-btn {
            position: absolute;
            top: 15px;
            right: 15px;
            background: none;
            border: none;
            font-size: 30px;
            cursor: pointer;
            color: #666;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s ease;
        }

        .close-btn:hover {
            background: #f0f0f0;
            color: #333;
        }

        .info-view {
            padding: 40px;
            text-align: center;
        }

        .info-view img {
            width: 100%;
            max-width: 400px;
            height: 250px;
            object-fit: cover;
            border-radius: 15px;
            margin-bottom: 20px;
        }

        .info-view h2 {
            color: #333;
            margin-bottom: 15px;
            font-size: 28px;
        }

        .info-view p {
            color: #666;
            line-height: 1.6;
            margin-bottom: 30px;
            font-size: 16px;
        }

        .contact-button {
            /*background:#667eea;*/
            color: white;
            border: none;
            padding: 15px 35px;
            font-size: 16px;
            font-weight: bold;
            border-radius: 50px;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .contact-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(102, 126, 234, 0.4);
        }

        .form-view {
            display: none;
            padding: 40px;
        }

        .form-view.active {
            display: block;
        }

        .form-view h2 {
            color: #333;
            margin-bottom: 25px;
            text-align: center;
        }

        .form-group {
            margin-bottom: 20px;
        }

        .form-group label {
            display: block;
            color: #555;
            margin-bottom: 8px;
            font-weight: 500;
        }

        .form-group input,
        .form-group textarea {
            width: 100%;
            padding: 0.3rem 0.5rem;
            border: 2px solid #e0e0e0;
            border-radius: 10px;
            font-size: 15px;
            transition: all 0.3s ease;
            font-family: inherit;
        }

        .form-group input:focus,
        .form-group textarea:focus {
            outline: none;
            border-color: #667eea;
        }

        .form-group textarea {
            resize: vertical;
            min-height: 120px;
        }

        .form-buttons {
            display: flex;
            gap: 15px;
            margin-top: 25px;
        }

        .back-button {
            flex: 1;
            background: #f0f0f0;
            color: #666;
            border: none;
            padding: 15px;
            font-size: 16px;
            font-weight: bold;
            border-radius: 10px;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .back-button:hover {
            background: #e0e0e0;
        }

        .submit-button {
            flex: 2;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            padding: 15px;
            font-size: 16px;
            font-weight: bold;
            border-radius: 10px;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .submit-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(102, 126, 234, 0.4);
        }

        .success-message {
            display: none;
            padding: 40px;
            text-align: center;
        }

        .success-message.active {
            display: block;
        }

        .success-message h2 {
            color: #4caf50;
            margin-bottom: 15px;
        }

        .success-message p {
            color: #666;
            margin-bottom: 25px;
        }

.error-message {
            color: #dc3545;
            font-size: 0.875rem;
            margin-top: 5px;
            display: block;
        }

        .char-counter {
            text-align: right;
            font-size: 0.875rem;
            color: #999;
            margin-top: 5px;
        }
 .loading-spinner {
            display: none;
            border: 3px solid rgba(255, 255, 255, 0.3);
            border-radius: 50%;
            border-top: 3px solid white;
            width: 20px;
            height: 20px;
            animation: spin 1s linear infinite;
            margin: 0 auto;
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        .alert {
            padding: 15px 20px;
            border-radius: 8px;
            margin-bottom: 20px;
            display: none;
            animation: slideDown 0.3s ease;
        }

        @keyframes slideDown {
            from {
                opacity: 0;
                transform: translateY(-10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .alert-success {
            background: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }

        .alert-error {
            background: #f5838c;
            color: #fff;
            border: 1px solid #fff;
        }

        .alert-info {
            background: #d1ecf1;
            color: #0c5460;
            border: 1px solid #bee5eb;
        }








/*--------------------------------- footer-------------------------------------------*/

.footer a {
  transition: color 0.3s ease;
}

.footer a:hover {
  color: #0d6efd; 
}

/*animacion boton*/



/* fin animacion boton*/




@media (max-width: 991px)
{
    .sidebar{
        background-color: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(10px);
    }
    .dropdown-menu.show{
    background-color: transparent;
    backdrop-filter: blur(10px);
        
    }
    .pquienes{
        text-shadow: none;
    }
}

@media (max-width: 425px)
{
     .pquienes{
        font-size: small;
    }
}

/* Extra small devices (portrait phones, less than 576px)
 No media query for `xs` since this is the default in Bootstrap
*/
 
/*Small devices (landscape phones, 576px and up)
*/
@media (min-width: 576px) {
    .serv-ciber{
        width: 100%;
    }
    
    /*.elegirnos{
        width: 100%;
    }*/
  }

 /*Medium devices (tablets, 768px and up)
*/
 @media (min-width: 768px) {  }

/*Large devices (desktops, 992px and up)
*/
@media (min-width: 992px) { 
   /* .planes{
        height: 100vh;
    }*/
    
 }

/*Extra large devices (large desktops, 1200px and up)
*/
@media (min-width: 1200px) { 
    
}




































/*   ------------------------efecto bordes riesgo----------------------------*/













@property --angle {
  syntax: '<angle>';
  initial-value: 90deg;
  inherits: true;
}

@property --gradX {
  syntax: '<percentage>';
  initial-value: 50%;
  inherits: true;
}

@property --gradY {
  syntax: '<percentage>';
  initial-value: 0%;
  inherits: true;
}



:root {
  --d: 2500ms;
  --angle: 90deg;
  --gradX: 100%;
  --gradY: 50%;
  --c1: rgba(168, 239, 255, 1);
  --c2: rgba(168, 239, 255, 0.1);
}



.riesgo-div {
  font-size: 3vw;
  /*margin: max(1rem, 3vw);
  border: 0.35rem solid;
  padding: 3vw;*/
  border-image: conic-gradient(from var(--angle), var(--c2), var(--c1) 0.1turn, var(--c1) 0.15turn, var(--c2) 0.25turn) 30;
  animation: borderRotate var(--d) linear infinite forwards;
}

.riesgo-div:nth-child(2) {
  border-image: radial-gradient(ellipse at var(--gradX) var(--gradY), var(--c1), var(--c1) 10%, var(--c2) 40%) 30;
  animation: borderRadial var(--d) linear infinite forwards;
}

@keyframes borderRotate {
  100% {
    --angle: 420deg;
  }
}

@keyframes borderRadial {
  20% {
    --gradX: 100%;
    --gradY: 50%;
  }
  40% {
    --gradX: 100%;
    --gradY: 100%;
  }
  60% {
    --gradX: 50%;
    --gradY: 100%;
  }
  80% {
    --gradX: 0%;
    --gradY: 50%;
  }
  100% {
    --gradX: 50%;
    --gradY: 0%;
  }
}