/* 

1. Add your custom Css styles below
2. Place the this code in your template: 

 <link href="css/custom.css" rel="stylesheet">


*/
/*personalizable*/
.alternarfondo{
background: rgb(0,65,139);
background: -moz-linear-gradient(90deg, rgba(0,65,139,1) 0%, rgba(14,57,102,1) 17%, rgba(33,76,120,1) 100%);
background: -webkit-linear-gradient(90deg, rgba(0,65,139,1) 0%, rgba(14,57,102,1) 17%, rgba(33,76,120,1) 100%);
background: linear-gradient(90deg, rgba(0,65,139,1) 0%, rgba(14,57,102,1) 17%, rgba(33,76,120,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00418b",endColorstr="#214c78",GradientType=1);
}
.setionalterna2{
    background: #f0f0f0;
}  
.setionalterna1{
    background: #ffffff;
}
.logo-default{
    padding: 10px;
}
.naranja #header .header-inner, .naranja #header #header-wrap, #header.naranja .header-inner, #header.naranja #header-wrap {
    background-color: #FFA500;
    color:white;
}
.naranja #mainMenu nav > ul > li > a, #mainMenu.naranja nav > ul > li > a {
    color: #ffffff;
}
.azul #header .header-inner, .azul #header #header-wrap, #header.azul .header-inner, #header.azul #header-wrap {
    background-color: #2474bb;
    color:white;
}
.azul #mainMenu nav > ul > li > a, #mainMenu.azul nav > ul > li > a {
    color: #ffffff;
}
.verde #header .header-inner, .verde #header #header-wrap, #header.verde .header-inner, #header.verde #header-wrap {
    background-color:green;
    color:white;
}
.verde #mainMenu nav > ul > li > a, #mainMenu.verde nav > ul > li > a {
    color: #ffffff;
}
/*personalizable fin*/

.busqueda,.clasificacion_altas{
    border:1px solid #a1a1a1;
    border-radius: 4px;
}
.btnbuscar{
    margin-bottom:2px !important;
}

.logo-height{
    max-height: 100px;
}
.pie-height{
    max-height: 300px;
}

/*PRODUCTO*/
.imagenproduc{
    width: 70px;
}
.tags{
    border: 1px solid #ced5fc;
    border-radius: 7px;
    padding: 4px;
    margin-left: 4px;
}
.fixedcomenzarproyecto{
    position: fixed;
    bottom: 50%;
    right: 10px;
   
    height: 70px;
    line-height: 70px;
    text-align: center;
    color: rgba(0,0,0, .2);
    font-size: 48px;
    z-index: 10;
}


.link-to-top-comenzarproyecto{
    position: fixed;
    bottom: 50%;
    left: 500px;
    width: 70px;
    height: 70px;
    line-height: 70px;
    text-align: center;
    color: rgba(0,0,0, .2);
    font-size: 48px;
}
.circulo {
     width: 30px;
     height: 30px;
     -moz-border-radius: 50%;
     -webkit-border-radius: 50%;
     border-radius: 50%;
     
    display: inline-block;
}
.circulo_colores { 
    display: block; 
    list-style: outside none none; 
    margin: 10px; 
    overflow: hidden; 
    padding-left: 0; 
}
.circulo_colores li { 
    border: 1px solid #bbbbbb;
    margin: 3px; 
}
.circulo_colores li label span { 
    cursor: pointer; 
    display: block; 
    font-size: 1.2em; 
    font-weight: 400; 
    height: 30px; 
    width: 30px;
    line-height: 37px; 
    margin: 0; 
    text-align: center; 
    -webkit-transition: all 0.3s ease 0s; 
    transition: all 0.3s ease 0s; 
}
.circulo_colores li label input { 
    left: -9000px; position: absolute; 
}
.circulo_colores li label span { 

    color: #909090; 
}
.circulo_colores li label span:hover { 
/*
    background-color: #eee; 
    border-radius: 50%;
*/
}
.circulo_colores li label input:checked + span { 
   background-color: rgba(0, 0, 0, 0.18); 
}
.linkindex li{ 
    display: inline-block;
    border:4px solid #191919;
}


/*FIN PRODUCTO*/
#mensaje_e{
    color:red;
}
.mensaje_error{
    color:red;
    border:1px solid red !important;
}
.mensaje_exitoso{
    border:1px solid green;
}
#imagen{
   width: 150px;
}
.imagenes_temporales{
    height: 100px;
}
#cargando{
    display: none;
}
.contiene_imagen_adicional{
    float:left;
    margin-left:30px;
    margin-top: 30px;
    text-align: center;
}
.barra_eliminar_foto{
    width: 100%;
    height: 30px;
    margin-top: 20px;
    cursor:pointer;
    color:blue;
}
.barra_eliminar_foto:hover{
    color:red;
    font-weight: bold;
}
.productos_segmento{
    float:left;
    width:50%;
    background: #fcfcfc;
    padding: 20px;
}
.col-lg-20_{
    width:100%;
}
.clasificacion_altas{
    width: 200px;
}
/*colores*/
.txt_color{
    width: 100%;
}
.contiene_colores{
    display: flex;
    flex-wrap: wrap;
  
}
.centrar_verticalmente{
    display: flex;
    flex:1;
    height: auto;    
    justify-content: center;
    align-items: center;
    
}
.color_item{
    display: flex;
    flex:1;
    height: 50px;
    border: 1px solid #e7e7e7;
    justify-content: center;
    align-items: center;
    cursor: pointer;
}
.verde{
    background: #00913f;
    color:white;    
}
.rojo{
    background: #AE2029;
    color:white;    
}
.azul{
    background: #0000FF;
    color:white;    
}
.amarillo{
    background: #FFFF00;
    color:green;    
}
.naranja{
    background: #FFA500;
    color:white;    
}
.negro{
    background: black;
    color:white;    
}
.blanco{
    background: white;
    color:black;    
}
.rosa{
    background: #FFC0CB;
    color:black;    
}
/*clasificaciones*/
.content_clasificaciones{
    padding: 20px;
    
}
.nombre_clasificacion{
    width: 30%;
    min-width: 500px;
    margin: 0 auto;
}
.clasificaciones_atributos{
    background: #eeeaea;;
    width: 30%;
    padding: 20px;    
    margin: 0 auto;
}
.check_atributos{
    padding: 5px !important;
}
.altura35 {    
    min-height: 35px;
    width: 70%;
    
}
.margin-top30{
    margin-top:30px;
    
}
.vercarritocolor{
    display:inline-block !important;
    margin-left:10px;
    width:25px;
    height:25px;
}


/*ticket*/

.t_contiene_ticket {
    text-align: center;
    
    padding: 10px;
    
}

.t_centrado {
    display: inline-block;
    
    padding: 10px;
    width: 750px;
    border:10px solid black;
}

.t_titulo {
    background: #337AB7;
    color: white;
    font-weight: bold;
    text-align: left;
    margin-top:10px;
    padding: 5px;
   
}

.t_datos_personales {
    display: flex;
}

.t_datos_contacto_principal {
    flex:1;
    
}

.t_datos_contacto_secundario {
    flex:1;
    padding-left: 10px;
}
.t_datos{
    text-align: left;
}
#t_logo{
    height: 100px;
}
.t_imgright{
    text-align: right;
}
.t_datos_fecha{
    text-align: right;
    padding: 30px;
    padding-right: 15px;
}
.seccion{
    overflow-x: auto;
}
.t_seccion{
    width: 100%;
    display: flex;
     text-align: center;
    padding: 20px;
}
.t_deposita{
    flex:1;    
}
.t_deposita img{
    width: 80%;
   padding-bottom: 6px;
     
}
.t_deposita_d{
    width: 170px;   
    display: inline-block;
    text-align: left;
}

.t_cantidad{
    width: 50px;
}

.t_precio{
    width: 120px;
}
.t_total{
    width: 120px;
}
/*MOVIMIENTOS PEDIDOS DETALLES*/
#cerrar_detalle {
    width: 100%;
    text-align: right;
}
.serie{
	width: 100px;
}
.formapago{
	width: 150px;
}
.fechapedido{
	width: 155px;
}
th{
	color:#515efc;
	background: #F7F9FB;
}
#cerrar_icon{
	padding: 3px 10px 3px 10px;
    color:white;
    background: #adadad;   
    cursor:pointer;
    display: inline-block;
}
.detalles{
    padding: 20px;
    width: 100%;
    
    z-index: 2000;
    display: none;
	border:1px solid #d3d3d3;
	padding: 15px;
}
#informacion_detalles{

    height: auto;
    overflow-x: hidden;    
    padding: 10px;
}
/*TABLAS*/

tr:nth-child(odd) {
    background-color:#f2f2f2;
   
}
tr:nth-child(even) {
    background-color:#fbfbfb;
}
/*PEDIDOS*/
.seccion_buscador {

    height: 100px;
    
}
.selects_busquedapedido{
    width: auto;
}
.boton_pedido{
    margin-bottom: 0px !important;
}
#enviando{
    display: none;
    height: 50px;
}
/*tienda*/
#price-from,#price-to{
    line-height: 18px;
    padding: 10px 16px;
    min-height: 40px;
    font-size: .9rem;
     width:48.5%; 
    border:1px solid #c6c6c6;
    border-radius: 3px;
}
/*NAV*/

.navclasificaciones{
    float: left !important;
    margin-left: 40px;
    border-radius: 7px;
}
#mainMenu nav > ul > li > a {

     text-transform:inherit !important;
}
.todaslasclasificaciones{
    
    overflow: hidden;
    width: auto;
    display: flex;
    top:0;
    line-height: 30px !important;
}
.titulo_submenu{
    border-bottom: 1px solid #9c9c9c;
    margin-bottom: 5px;
    line-height: 30px;
    color:#931d83;
    font-size: 17px;
}
.titulosubmenu{
  font-weight: bold;
  font-size: 14px;
 
   
}
.titulosubmenu a{
  color: gray !important;
    
}
.titulosubmenu_vermas{
  font-weight: bold;
  font-size: 14px;
  color:#931d83;
   
}
.titulo_submenu_hijo{
    padding-left: 10px;
     color: gray;
}
.titulo_submenu_hijo a{
    
     color: gray !important;
}
.todaslasclasificaciones_div{
    min-width: 300px;    
    min-height: 100px;
    margin-top:7px;
    margin-bottom: 30px;
    flex:1;
    
}
.contiene_metodospago{
    background: red;
    height: 100px;
}
.pagos{
    float: left;
    border:none;
    height: 60px;
    width: 200px;
    text-align: center;
    background: white;
    margin: 5px;
    font-size: 17px !important;
    line-height:0px !important;
    padding: 0px !important;
    min-height: 0px !important;
    border:1px solid #a29e9e;
    border-bottom:3px solid #7b7b7b;
    border-right:3px solid #7b7b7b;

}
.pagos:hover{
    background: #e6e6e6;
}
/*CONFIGURACION*/
#txt_nuestra_historia,#txt_mision,#txt_vision,#txt_politica_privacidad,#txt_terminos_condiciones{
    width: 100%;
    padding: 20px;
}
.link-to-top-whatsapp{
    position: fixed;
    bottom: 10px;
    left: 10px;
    width: 70px;
    height: 70px;
    line-height: 70px;
    text-align: center;
    color: rgba(0,0,0, .2);
    font-size: 48px;
    z-index: 10;
}
@media (min-width: 0px) and (max-width: 600px) {
    .productos_segmento{
        float:left;
        width:100%;
    }
    .todaslasclasificaciones_div{
        width: 100%;   
        min-width: inherit;
    }    
    .naranja #mainMenu nav > ul > li > a, #mainMenu.naranja nav > ul > li > a {
        color: #000000;
        
    }     
    .azul #mainMenu nav > ul > li > a, #mainMenu.azul nav > ul > li > a {
        color: #000000;
    }     
    .verde #mainMenu nav > ul > li > a, #mainMenu.verde nav > ul > li > a {
        color: #000000;
    } 
     .navclasificaciones{
        
        margin-left: 0px;
        
    }  
    .fixedcomenzarproyecto{
        display: none;
    }
}

/* LOVABLE STYLES IMPORTED FROM INDEX.PHP */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

body, h1, h2, h3, h4, h5, h6, p, a, span {
    font-family: 'Inter', sans-serif !important;
}

.lovable-section {
    position: relative;
    overflow: hidden;
    padding: 120px 0;
    background-color: #ffffff;
}

.lovable-section-dark {
    background-color: #0f172a; /* Slate 900 */
    color: #f8fafc;
}

.lovable-heading {
    font-size: 3.5rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.1;
    margin-bottom: 24px;
}

.lovable-heading-gradient {
    background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.lovable-lead {
    font-size: 1.25rem;
    color: #64748b; /* Slate 500 */
    line-height: 1.7;
    font-weight: 400;
    max-width: 600px;
    margin: 0 auto;
}

.lovable-lead-dark {
    color: #94a3b8;
}

/* Beautiful Cards */
.lovable-card {
    background: #ffffff;
    border: 1px solid rgba(226, 232, 240, 0.8);
    border-radius: 24px;
    padding: 40px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    position: relative;
    z-index: 1;
}

.lovable-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
    border-color: #cbd5e1;
}

.lovable-icon-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 20px;
    background: #eff6ff; /* Blue 50 */
    color: #3b82f6; /* Blue 500 */
    font-size: 28px;
    margin-bottom: 24px;
    transition: all 0.3s ease;
}

.lovable-card:hover .lovable-icon-wrapper {
    background: #3b82f6;
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
}

/* Dark Cards */
.lovable-card-dark {
    background: rgba(30, 41, 59, 0.7); /* Slate 800 */
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(12px);
    border-radius: 24px;
    padding: 40px;
    transition: all 0.4s ease;
}

.lovable-card-dark:hover {
    background: rgba(30, 41, 59, 0.9);
    transform: translateY(-5px);
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 20px 40px rgba(0,0,0,0.4);
}

.lovable-icon-wrapper-dark {
    background: rgba(56, 189, 248, 0.1);
    color: #38bdf8;
}

/* Glowing Orbs Background */
.orb-1, .orb-2 {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    z-index: 0;
    opacity: 0.5;
}
.orb-1 {
    width: 400px;
    height: 400px;
    background: #3b82f6;
    top: -100px;
    left: -100px;
}
.orb-2 {
    width: 500px;
    height: 500px;
    background: #8b5cf6;
    bottom: -150px;
    right: -100px;
}

/* Buttons */
.lovable-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 9999px;
    transition: all 0.3s ease;
    text-decoration: none;
    border: none;
    cursor: pointer;
}

.lovable-btn-primary {
    background: #0f172a;
    color: #ffffff !important;
    box-shadow: 0 4px 14px 0 rgba(0, 0, 0, 0.2);
}

.lovable-btn-primary:hover {
    background: #334155;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.23);
}

.lovable-badge {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 9999px;
    font-size: 0.875rem;
    font-weight: 600;
    background: #eff6ff;
    color: #3b82f6;
    margin-bottom: 16px;
}

/* Team */
.lovable-team-img {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    margin: 0 auto 20px;
}

.lovable-video-wrapper {
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255,255,255,0.1);
    position: relative;
    z-index: 2;
}

/* CUSTOM MENU UPGRADES */
#mainMenu nav > ul > li {
    margin: 0 12px;
}
#mainMenu nav > ul > li > a {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    color: #1e293b !important;
    padding: 10px 15px;
    border-radius: 8px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
#mainMenu nav > ul > li > a:hover {
    background-color: #eff6ff;
    color: #3b82f6 !important;
    transform: translateY(-2px);
}
#mainMenu nav > ul > li.social {
    margin: 0 2px !important;
}
#mainMenu nav > ul > li.social a {
    padding: 0 !important;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: transparent;
    transition: all 0.3s ease;
}
#mainMenu nav > ul > li.social a i {
    font-size: 16px !important;
}
#mainMenu nav > ul > li.social a:hover {
    background-color: #f8fafc;
    transform: scale(1.15);
}
.header-inner {
    padding: 15px 0;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    background: white;
}

/* LIGHTBOX TRANSPARENT PNG FIX */
.mfp-figure:after {
    background: transparent !important;
    box-shadow: none !important;
}
img.mfp-img {
    background: transparent !important;
}
.mfp-figure {
    background: transparent !important;
}

/* TEXTURA DE CONSTRUCCION GLOBAL (Blueprint Grid) */
/* Aplicamos la textura como un pseudo-elemento a todas las secciones para que respete sus colores de fondo */
section, .header-inner {
    position: relative;
}

/* TEXTURA DE CEMENTO SUTIL PARA EL HEADER */
.header-inner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    background-color: #f8f9fa;
    background-image: 
        linear-gradient(to right, rgba(255,255,255,0.85), rgba(230,233,238,0.75)),
        url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.12'/%3E%3C/svg%3E");
}

section::before, .body-inner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    background-image: 
        linear-gradient(rgba(59, 130, 246, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59, 130, 246, 0.06) 1px, transparent 1px),
        linear-gradient(rgba(59, 130, 246, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59, 130, 246, 0.03) 1px, transparent 1px) !important;
    background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px !important;
    background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px !important;
}
/* Asegurar que el contenido real de las secciones quede por encima de la textura */
section > .container, section > div, .lovable-section > .container, .header-inner > .container {
    position: relative;
    z-index: 2;
}
/* Forzar fondos transparentes solo en los envolturas principales */
body, .body-inner, #wrapper {
    background-color: transparent !important;
}
/* El body sigue teniendo la textura para espacios en blanco entre secciones */
body {
    background-image: 
        linear-gradient(rgba(59, 130, 246, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59, 130, 246, 0.06) 1px, transparent 1px),
        linear-gradient(rgba(59, 130, 246, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59, 130, 246, 0.03) 1px, transparent 1px) !important;
    background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px !important;
    background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px !important;
    background-attachment: fixed !important;
}

/* =====================================================
   PÁGINA ACTIVA — MENÚ PRINCIPAL
   ===================================================== */

/* Ítem de menú de la página actual */
#mainMenu nav > ul > li.active > a {
    background-color: #eff6ff !important;
    color: #3b82f6 !important;
    border-radius: 8px;
    font-weight: 700 !important;
    position: relative;
}

/* Subrayado/indicador debajo del ítem activo */
#mainMenu nav > ul > li.active > a::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 2px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(90deg, #3b82f6, #8b5cf6);
}

/* Ítem activo en móvil (menú abierto) */
@media (max-width: 991px) {
    #mainMenu nav > ul > li.active > a {
        background-color: #eff6ff !important;
        color: #3b82f6 !important;
        border-left: 3px solid #3b82f6;
        padding-left: 12px;
    }
    #mainMenu nav > ul > li.active > a::after {
        display: none;
    }
}

/* =====================================================
   PÁGINA ACTIVA — PIE DE PÁGINA (ENLACES RÁPIDOS)
   ===================================================== */

.footer-link-active > a {
    color: #3b82f6 !important;
    font-weight: 700 !important;
    position: relative;
    padding-left: 14px !important;
}

/* Punto indicador de página activa en el footer */
.footer-link-active > a::before {
    content: '▸';
    position: absolute;
    left: 0;
    color: #3b82f6;
    font-size: 12px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.2s ease;
}

.footer-link-active > a:hover::before {
    transform: translateY(-50%) translateX(3px);
}

/* =====================================================
   MODAL SUSCRIPCIÓN — TEMÁTICA CONSTRUCCIÓN (global)
   ===================================================== */
#modalSubscriptionForm.modal {
    background: transparent !important;
    max-width: 780px !important;
    min-height: unset !important;
    padding: 0 !important;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 40px 100px rgba(0,0,0,0.4);
    position: relative;
}

/* Magnific Popup inyecta .mfp-close dentro del modal (#modalSubscriptionForm) */
#modalSubscriptionForm .mfp-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 32px !important;
    height: 32px !important;
    background: #f1f5f9;
    border-radius: 50%;
    color: #64748b !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    line-height: 32px !important;
    padding: 0 !important;
    opacity: 1 !important;
    text-align: center;
    text-decoration: none;
    z-index: 20;
    transition: all 0.2s ease;
}

#modalSubscriptionForm .mfp-close:hover {
    background: #fee2e2;
    color: #ef4444 !important;
}

.modal-subscribe-inner {
    display: flex;
    min-height: 420px;
    border-radius: 20px;
    overflow: hidden;
}

/* Panel Izquierdo (Blueprint) */
.modal-subscribe-left {
    width: 42%;
    background: linear-gradient(155deg, #0f2847 0%, #1a3a5c 50%, #0d2035 100%);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    overflow: hidden;
}

.modal-subscribe-left::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(59,130,246,0.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59,130,246,0.18) 1px, transparent 1px),
        linear-gradient(rgba(59,130,246,0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59,130,246,0.07) 1px, transparent 1px);
    background-size: 60px 60px, 60px 60px, 12px 12px, 12px 12px;
    pointer-events: none;
}

.modal-subscribe-blueprint {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.bp-line { position: absolute; background: rgba(96,165,250,0.2); }
.bp-h { left: 0; right: 0; height: 1px; }
.bp-v { top: 0; bottom: 0; width: 1px; }

.bp-center-icon {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 80px; height: 80px;
    background: rgba(59,130,246,0.12);
    border: 2px solid rgba(59,130,246,0.3);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: rgba(96,165,250,0.5);
    font-size: 28px;
}

.modal-subscribe-badge {
    position: relative; z-index: 2;
    width: 72px; height: 72px;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 30px;
    color: white;
    box-shadow: 0 10px 30px rgba(245,158,11,0.4);
    margin-bottom: 20px;
    animation: constructBounce 2s ease-in-out infinite;
}

@keyframes constructBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

.modal-subscribe-tagline {
    position: relative; z-index: 2;
    color: rgba(147,197,253,0.85);
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.5px;
    line-height: 1.5;
    max-width: 170px;
    margin: 0;
}

/* Panel Derecho (Formulario) */
.modal-subscribe-right {
    width: 58%;
    background: #ffffff;
    padding: 42px 36px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.modal-subscribe-eyebrow {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    color: #f59e0b;
    margin-bottom: 12px;
}

.modal-subscribe-dot {
    display: inline-block;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #f59e0b;
    animation: pulseDot 1.5s ease-in-out infinite;
}

@keyframes pulseDot {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.4); opacity: 0.7; }
}

.modal-subscribe-title {
    font-size: 26px;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.2;
    margin-bottom: 12px;
    letter-spacing: -0.5px;
}

.modal-subscribe-title span {
    background: linear-gradient(90deg, #1d4ed8, #3b82f6);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.modal-subscribe-desc {
    font-size: 13px;
    color: #64748b;
    line-height: 1.6;
    margin-bottom: 24px;
}

.modal-subscribe-field {
    position: relative;
    margin-bottom: 14px;
}

.modal-subscribe-field-icon {
    position: absolute;
    left: 14px;
    top: 50%; transform: translateY(-50%);
    color: #94a3b8;
    font-size: 14px;
    pointer-events: none;
}

.modal-subscribe-input {
    width: 100%;
    padding: 12px 16px 12px 40px !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    color: #0f172a !important;
    background: #f8fafc !important;
    transition: all 0.2s ease !important;
    outline: none !important;
    box-shadow: none !important;
}

.modal-subscribe-input:focus {
    border-color: #3b82f6 !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.1) !important;
}

.modal-subscribe-btn {
    width: 100%;
    padding: 14px 24px;
    background: linear-gradient(135deg, #1d4ed8 0%, #2563eb 100%);
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.5px;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    margin-top: 4px;
    margin-bottom: 16px;
    transition: all 0.3s ease;
    box-shadow: 0 8px 20px rgba(29,78,216,0.3);
}

.modal-subscribe-btn:hover {
    background: linear-gradient(135deg, #1e40af 0%, #1d4ed8 100%);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(29,78,216,0.4);
}

.modal-subscribe-skip {
    display: block;
    text-align: center;
    font-size: 12px;
    color: #94a3b8;
}

.modal-subscribe-skip a {
    color: #94a3b8 !important;
    text-decoration: underline;
    transition: color 0.2s;
}

.modal-subscribe-skip a:hover { color: #64748b !important; }

@media (max-width: 600px) {
    .modal-subscribe-inner { flex-direction: column; }
    .modal-subscribe-left  { width: 100%; min-height: 140px; padding: 28px 20px; flex-direction: row; gap: 16px; }
    .modal-subscribe-right { width: 100%; padding: 28px 24px; }
    .modal-subscribe-tagline { max-width: 100%; text-align: left; }
    .modal-subscribe-title { font-size: 22px; }
    .bp-center-icon { display: none; }
}
