/* ==========================================================
   consultoria.css
   ========================================================== */

@font-face { font-family: 'Carnac'; src: url('../fonts/carnac-regular.otf'); font-weight: normal; }
@font-face { font-family: 'Carnac'; src: url('../fonts/carnac-bold.otf'); font-weight: 700; }
@font-face { font-family: 'Carnac'; src: url('../fonts/carnac-extrabold.otf'); font-weight: 800; }

/* Ajustado al grosor Bold (700) idéntico al de Auditoría */
.font-headingBold, h1, h2, h3, h4 { 
    font-family: 'Carnac', sans-serif !important; 
    font-weight: 700 !important; 
}

.hero-overlay { background: linear-gradient(90deg, rgba(26,29,35,0.95) 0%, rgba(26,29,35,0.7) 60%, transparent 100%); }
.sticky-wrapper { position: sticky; top: 130px; z-index: 20; }
.contact-card { background-color: #2B303A; border-radius: 8px; box-shadow: 0 25px 50px rgba(0,0,0,0.25); color: white; }
.btn-glow { background-color: #C9EC51; color: #2B303A; font-weight: 800; padding: 1rem 2rem; border-radius: 99px; display: block; text-align: center; transition: all 0.3s; }
.btn-glow:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(201, 236, 81, 0.4); }

/* ==========================================================
   ANIMACIONES ON-SCROLL (SUAVES Y ELEGANTES)
   ========================================================== */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
    opacity: 0; 
    transform: translateY(15px); 
    visibility: hidden;
}

.animate-fade-in.reveal-visible {
    visibility: visible;
    animation: fadeInUp 1.2s ease forwards; 
}

.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }
.delay-500 { animation-delay: 0.5s; }
.delay-600 { animation-delay: 0.6s; }
.delay-700 { animation-delay: 0.7s; }

/* ==========================================================
   ROADMAP RIESGOS (Adaptado para Fondo Blanco - Sólido SIN Neón)
   ========================================================== */

.bt-circuit-wrapper {
    width: 100%;
    padding: 10px 0 40px 0;
}

/* El lienzo principal */
.bt-circuit-canvas {
    position: relative;
    height: 520px; 
    width: 100%; 
    max-width: 1200px;
    margin: 0;
}

.bt-mobile-track-bg, .bt-mobile-track-fill { display: none; }

/* EL CIRCUITO MÁGICO SVG */
.bt-circuit-svg {
    position: absolute; 
    top: 0; left: 0; right: 0;
    width: 100%; 
    height: 480px; 
    z-index: 1; overflow: visible;
}

.bt-path-off, .bt-path-on { stroke-width: 4px; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.bt-path-off { stroke: #E5E7EB; } 
.bt-path-on { stroke: #2B303A; }  

.bt-nodes-container { position: absolute; inset: 0; z-index: 10; }

.bt-circuit-node {
    position: absolute; 
    display: flex; flex-direction: column; align-items: center;
    width: 240px; transform: translateX(-50%); 
    cursor: pointer;
}

.bt-circuit-stem { width: 2px; height: 30px; background-color: #E5E7EB; transition: all 0.5s; z-index: 1; }
.bt-circuit-dot {
    width: 16px; height: 16px; border-radius: 50%;
    background-color: #ffffff; border: 2px solid #E5E7EB;
    transition: all 0.5s; z-index: 2; margin-top: -2px;
}
.bt-circuit-label {
    margin-top: 15px; font-family: 'Carnac', sans-serif; font-size: 14px; font-weight: 700;
    text-align: center; color: #9CA3AF; transition: all 0.5s; line-height: 1.4;
}

.bt-circuit-node.locked { pointer-events: none; }

/* ESTADOS LÓGICOS DE DESBLOQUEO */
.bt-circuit-node.unlocked .bt-circuit-dot {
    background-color: #C9EC51; 
    border-color: #2B303A; 
}
.bt-circuit-node.unlocked .bt-circuit-stem { 
    background-color: #2B303A; 
}
.bt-circuit-node.unlocked .bt-circuit-label { 
    color: #2B303A; 
}

@keyframes ignitePulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.6); background-color: #2B303A; }
    100% { transform: scale(1.4); background-color: #C9EC51; }
}
.ignite-active .bt-circuit-dot { animation: ignitePulse 0.6s ease-out forwards; }

/* VISTA MÓVIL Y VENTANAS PEQUEÑAS */
@media (max-width: 1023px) {
    .bt-circuit-svg { display: none; }
    .bt-circuit-canvas { height: auto; padding: 20px 0; }
    
    .bt-mobile-track-bg, .bt-mobile-track-fill { display: block; position: absolute; left: 30px; width: 4px; border-radius: 4px; z-index: 1;}
    .bt-mobile-track-bg { top: 30px; bottom: 30px; background: #E5E7EB; }
    .bt-mobile-track-fill { top: 30px; background: #2B303A; transition: height 0.8s ease; z-index: 2;}

    .bt-nodes-container { position: relative; display: flex; flex-direction: column; gap: 0; padding: 0; }
    
    .bt-circuit-node {
        position: relative !important; top: auto !important; left: auto !important; right: auto !important;
        transform: none !important; width: 100%;
        flex-direction: row; align-items: center; justify-content: flex-start;
        padding: 25px 20px 25px 70px;
    }

    .bt-circuit-stem { display: none; }
    .bt-circuit-dot { position: absolute; left: 24px; top: 50%; transform: translateY(-50%); margin: 0; }
    
    .bt-circuit-label { margin-top: 0; text-align: left; font-size: 15px; }
    .bt-circuit-label br { display: none; }

    .bt-circuit-node.unlocked .bt-circuit-dot { transform: translateY(-50%) scale(1.4); }
    
    @keyframes ignitePulseMobile {
        0% { transform: translateY(-50%) scale(1); }
        50% { transform: translateY(-50%) scale(1.6); background-color: #2B303A; }
        100% { transform: translateY(-50%) scale(1.4); background-color: #C9EC51; }
    }
    .ignite-active .bt-circuit-dot { animation: ignitePulseMobile 0.6s ease-out forwards; }
}

@media (min-width: 1024px) and (max-width: 1250px) {
    .bt-circuit-node { width: 170px; }
    .bt-circuit-label { font-size: 12px; }
}


/* ==========================================================
   DIAGRAMA PRECIOS TRANSFERENCIA BAKER TILLY
   ========================================================== */

.bt-diagrama-wrapper {
   background-color: #2B303A; 
   padding: 50px 20px;
   font-family: 'Roboto', sans-serif;
   color: #ffffff; 
   overflow-x: auto;
}

.bt-diagram-title-dark {
   text-align: left;
   color: #C9EC51; 
   font-size: 32px;
   font-weight: 800;
   margin-bottom: 45px;
   margin-top: 0;
   line-height: 1.2;
   max-width: 1100px;
   margin-left: auto;
   margin-right: auto;
}

.bt-caja {
   background: #ffffff; 
   color: #1d252d; 
   border-bottom: 4px solid #C9EC51; 
   border-radius: 8px;
   font-weight: 700; font-size: 13px; text-align: center;
   display: flex; align-items: center; justify-content: center;
   box-shadow: 0 4px 6px rgba(0,0,0,0.15); 
   box-sizing: border-box; padding: 10px; z-index: 10;
   transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.bt-caja:hover {
   transform: translateY(-3px);
   box-shadow: 0 6px 15px rgba(0,0,0,0.3);
}

.bt-pregunta { border-bottom-color: #00BAB3; } 

.bt-boton { 
   background: #C9EC51; 
   border-radius: 50px; 
   border: none; 
   cursor: pointer; 
   transition: all 0.3s; 
}
.bt-boton:hover { background: #ffffff; transform: translateY(-3px); }

/* --- VISTA ESCRITORIO --- */
@media (min-width: 1024px) {
   .bt-mobile-diagram { display: none; }
   .bt-desktop-diagram { position: relative; width: 1100px; height: 480px; margin: 0; }
   .bt-abs { position: absolute; }
   
   .bt-arrow-h { position: absolute; height: 2px; background-color: #C9EC51; z-index: 1; }
   .bt-arrow-h::after {
      content: ""; position: absolute; right: -7px; top: -5px;
      border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 7px solid #C9EC51;
   }
   .bt-text-h {
      position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
      color: #C9EC51; font-weight: bold; font-size: 13px; background: #2B303A; padding: 0 4px;
   }

   .bt-arrow-v { position: absolute; width: 2px; background-color: #C9EC51; z-index: 1; }
   .bt-arrow-v::after {
      content: ""; position: absolute; bottom: -7px; left: -5px;
      border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 7px solid #C9EC51;
   }
   .bt-text-v {
      position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
      color: #C9EC51; font-weight: bold; font-size: 13px; background: #2B303A; padding: 3px 0;
   }

   .bt-arrow-v-white { position: absolute; width: 2px; background-color: #ffffff; z-index: 1; }
   .bt-arrow-v-white::after {
      content: ""; position: absolute; bottom: -7px; left: -5px;
      border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 7px solid #ffffff;
   }
   .bt-arrow-h-white { position: absolute; height: 2px; background-color: #ffffff; z-index: 1; }
   .bt-arrow-h-white::after {
      content: ""; position: absolute; right: -7px; top: -5px;
      border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 7px solid #ffffff;
   }

   .bt-bus-drop { position: absolute; width: 2px; background-color: #ffffff; }
   .bt-bus-horizontal { position: absolute; height: 2px; background-color: #ffffff; }

   .bt-big-no-route {
       position: absolute; top: 32px; left: 1045px; width: 25px; height: 263px;
       border-top: 2px solid #C9EC51; border-right: 2px solid #C9EC51; border-bottom: 2px solid #C9EC51;
       border-radius: 0 10px 10px 0; z-index: 1;
   }
   .bt-big-no-route::after {
       content: ""; position: absolute; bottom: -6px; left: -7px;
       border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-right: 7px solid #C9EC51;
   }
   .bt-text-big-no {
       position: absolute; top: -10px; left: 10px;
       color: #C9EC51; font-weight: bold; font-size: 13px; background: #2B303A; padding: 0 4px;
   }
}

/* --- VISTA CELULAR --- */
@media (max-width: 1023px) {
   .bt-desktop-diagram { display: none; }
   .bt-mobile-diagram { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 450px; margin: 0; }
   .bt-mobile-aviso { color: #00BAB3; font-weight: bold; margin-bottom: 25px; font-size: 14px; text-align: center; border-bottom: 1px solid rgba(0,186,179,0.3); padding-bottom: 10px; width: 100%;}
   
   .bt-m-cond { display: flex; align-items: center; justify-content: space-between; width: 100%; }
   .bt-m-cond .bt-caja { width: 40%; font-size: 12px; min-height: 70px; padding: 10px; }
   
   .bt-m-arrow-h { flex-grow: 1; height: 2px; background: #C9EC51; position: relative; margin: 0 15px 0 10px; }
   .bt-m-arrow-h::after { content: ""; position: absolute; right: -7px; top: -5px; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 7px solid #C9EC51; }
   .bt-m-text-h { position: absolute; top: -20px; left: 50%; transform: translateX(-50%); color: #C9EC51; font-weight: bold; font-size: 12px; background: #2B303A; padding: 0 4px; }

   .bt-m-arrow-v { width: 2px; height: 35px; background: #C9EC51; position: relative; margin: 10px 0 20px 0; }
   .bt-m-arrow-v::after { content: ""; position: absolute; bottom: -7px; left: -5px; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 7px solid #C9EC51; }
   .bt-m-text-v { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #C9EC51; font-weight: bold; font-size: 12px; background: #2B303A; padding: 2px 0;}

   .bt-m-arrow-v-white { width: 2px; height: 25px; background: #ffffff; position: relative; margin: 10px 0 20px 0; }
   .bt-m-arrow-v-white::after { content: ""; position: absolute; bottom: -7px; left: -5px; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 7px solid #ffffff; }

   .bt-m-arrow-v-left { align-self: flex-start; margin-left: 20%; transform: translateX(-1px); }
   .bt-m-arrow-center { align-self: center; margin-left: 0; }

   .bt-m-bifurcacion { width: 100%; display: flex; justify-content: flex-start; margin-bottom: 30px; }
   .bt-m-ruta-no { display: flex; flex-direction: column; align-items: center; width: 40%; }
   
   .bt-m-divisor { width: 100%; border-top: 2px dashed #ffffff; margin: 20px 0; position: relative; text-align: center; padding-top: 15px; }
   .bt-m-divisor span { color: #ffffff; font-size: 12px; font-weight: bold; letter-spacing: 1px;}
   .bt-m-flecha-down { color: #ffffff; font-size: 16px; margin-top: 5px; text-align: center;}
   
   .bt-pregunta, .bt-libre, .bt-boton { width: 100%; }
   .bt-mobile-diagram > .bt-caja { width: 100%; }

   .bt-m-separador-o { background: #2B303A; color: #ffffff; font-weight: bold; border: 2px solid #ffffff; border-radius: 50%; width: 35px; height: 35px; display: flex; align-items: center; justify-content: center; margin: 20px 0; }
}