@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@600;700;800&family=Plus+Jakarta+Sans:wght@500;700;800&display=swap');

/* VARIABLES & SKIN ORIGINAL ADAPTADO (BLUEG BASE) */
:root {
    --primary-color: #0056b3;
    /* Azul base del skin */
    --primary-light: #007bff;
    /* Resaltes y enlaces activos */
    --secondary-color: #1e293b;
    /* Slate oscuro para textos y contrastes SaaS */
    --accent-color: #f59e0b;
    /* Naranja/Ámbar de alta conversión CRO */
    --accent-hover: #d97706;
    --background-light: #f8fafc;
    /* Fondos alternos limpios */
    --text-main: #334155;
    --text-muted: #64748b;
    --border-color: #e2e8f0;
    --font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, sans-serif;
}

/* RESET GENERAL */
html {
    font-size: 16px !important;
}

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

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
li,
span,
button,
input,
select,
textarea {
    font-family: var(--font-family) !important;
}

body {
    font-family: var(--font-family);
    color: var(--text-main);
    line-height: 1.65;
    background-color: #ffffff;
    font-size: 16px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: #0c4a6e !important;
    font-weight: 700 !important;
}

.who p,
.about p {
    font-size: 15.5px !important;
    font-weight: 400 !important;
    color: #999 !important;
    line-height: 1.75 !important;
}

.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.text-center {
    text-align: center;
}

.mt-2 {
    margin-top: 20px;
}

/* COMPONENTES DE BOTONES (UI/UX COHERENTE) */
.btn {
    display: inline-block;
    padding: 12px 24px;
    font-weight: 600;
    border-radius: 6px;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
    border: none;
    font-size: 1rem;
}

.btn-primary {
    background-color: var(--primary-color);
    color: #ffffff;
}

.btn-primary:hover {
    background-color: var(--primary-light);
}

.btn-secondary {
    background-color: transparent;
    color: var(--primary-color);
    border: 2px solid var(--primary-color);
}

.btn-secondary:hover {
    background-color: #f0f7ff;
}

.btn-cta {
    background-color: var(--accent-color);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

.btn-cta:hover {
    background-color: var(--accent-hover);
    transform: translateY(-1px);
}

.btn-block {
    display: block;
    width: 100%;
    padding: 16px;
    font-size: 1.1rem;
}

/* STICKY HEADER */
.site-header {
    position: sticky;
    top: 0;
    background-color: rgba(255, 255, 255, 0.95);
    border-bottom: 1px solid var(--border-color);
    padding: 15px 0;
    z-index: 1000;
    backdrop-filter: blur(5px);
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    font-size: 1.4rem;
    color: var(--primary-color);
}

.logo-sub {
    font-size: 0.9rem;
    color: var(--text-muted);
}

.main-nav a {
    margin: 0 15px;
    text-decoration: none;
    color: var(--text-main);
    font-weight: 500;
}

.main-nav a:hover {
    color: var(--primary-light);
}

.header-actions .btn {
    padding: 8px 16px;
    font-size: 0.9rem;
    margin-left: 10px;
}

/* HERO SECTION */
.hero-section {
    padding: 80px 0;
    background: linear-gradient(135deg, #f0f4f8 0%, #ffffff 100%);
}

.hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.hero-content h1 {
    font-size: 2.8rem;
    line-height: 1.2;
    color: var(--secondary-color);
    margin-bottom: 20px;
}

.hero-subtitle {
    font-size: 1.2rem;
    color: var(--text-muted);
    margin-bottom: 30px;
}

.quick-benefits {
    list-style: none;
    margin-bottom: 30px;
}

.quick-benefits li {
    margin-bottom: 10px;
    font-weight: 500;
}

.icon-check {
    color: #10b981;
    font-weight: bold;
    margin-right: 8px;
}

.hero-form {
    display: flex;
    gap: 10px;
    max-width: 500px;
}

.hero-form input {
    flex: 1;
    padding: 14px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-size: 1rem;
}

/* VISUAL MOCKUPS */
.browser-mockup {
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.browser-header {
    background-color: #f1f5f9;
    padding: 10px;
    display: flex;
    gap: 6px;
}

.browser-header .dot {
    width: 10px;
    height: 10px;
    background-color: #cbd5e1;
    border-radius: 50%;
}

.mock-dash {
    display: flex;
    height: 320px;
}

.mock-sidebar {
    width: 60px;
    background-color: #1e293b;
}

.mock-body {
    flex: 1;
    padding: 20px;
    background-color: #f8fafc;
}

.mock-stats {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
}

.mock-stats .m-card {
    flex: 1;
    height: 60px;
    background-color: #ffffff;
    border-radius: 4px;
    border: 1px solid var(--border-color);
}

.mock-chart {
    height: 160px;
    background-color: #ffffff;
    border-radius: 4px;
    border: 1px solid var(--border-color);
}

/* PRUEBA SOCIAL */
.social-proof-section {
    padding: 40px 0;
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    background-color: #ffffff;
}

.section-tagline {
    text-center: center;
    font-weight: 600;
    color: var(--text-muted);
    margin-bottom: 20px;
    text-align: center;
}

/*
.metrics-grid {
    display: flex;
    justify-content: space-around;
    text-align: center;
}
*/
.metrics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    text-align: center;
}

.metric-number {
    display: block;
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--primary-color);
}

.metric-label {
    color: var(--text-muted);
    font-size: 0.95rem;
}

/* SECCIÓN PROBLEMA */
.problem-section {
    padding: 80px 0;
    background-color: var(--background-light);
}

.section-desc {
    max-width: 700px;
    margin: 10px auto 40px auto;
    color: var(--text-muted);
    font-size: 1.1rem;
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 25px;
}

.card {
    background-color: #ffffff;
    padding: 30px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.02);
}

.problem-card h3 {
    margin-bottom: 12px;
    color: var(--secondary-color);
    font-size: 1.25rem;
}

/* GRID DE MÓDULOS */
.solution-section {
    padding: 80px 0;
}

.modules-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

@media (max-width: 992px) {
    .modules-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .modules-grid {
        grid-template-columns: 1fr;
    }
}

.module-item {
    padding: 25px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    transition: transform 0.2s ease;
}

.module-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
}

.module-icon {
    font-size: 2.2rem;
    margin-bottom: 15px;
    color: var(--primary-light);
}

.module-item h4 {
    font-size: 1.2rem;
    margin-bottom: 10px;
    color: var(--secondary-color);
}

.module-link {
    display: inline-block;
    margin-top: 15px;
    color: var(--primary-light);
    text-decoration: none;
    font-weight: 600;
}

/* DIFERENCIAL PORTAL */
.differential-section {
    padding: 80px 0;
    background-color: var(--background-light);
}

.split-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}

.portal-mockup {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 40px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.portal-badge {
    display: inline-block;
    background-color: #e0f2fe;
    color: #0369a1;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 15px;
}

.portal-line {
    background-color: #e2e8f0;
    height: 12px;
    border-radius: 4px;
    margin-bottom: 10px;
}

.portal-line.long {
    width: 80%;
}

.portal-line.short {
    width: 50%;
}

.portal-status-step {
    margin-top: 30px;
    font-weight: 600;
}

.portal-status-step span {
    color: #10b981;
}

.benefits-checklist {
    margin: 20px 0;
}

.benefits-checklist div {
    margin-bottom: 8px;
    font-weight: 500;
}

/* BENEFICIOS OPERATIVOS */
.ops-section {
    padding: 80px 0;
}

.ops-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 40px;
}

.ops-block {
    background: #ffffff;
    border-left: 4px solid var(--primary-color);
    padding: 20px 25px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
}

.ops-block h3 {
    margin-bottom: 10px;
    color: var(--secondary-color);
}

/* CAROUSEL CASOS DE ÉXITO */
.testimonials-section {
    padding: 80px 0;
    background-color: var(--background-light);
}

.carousel-container {
    max-width: 800px;
    margin: 40px auto 20px auto;
    position: relative;
    background: #ffffff;
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.testimonial-slide {
    display: none;
}

.testimonial-slide.active {
    display: block;
    animation: fadeIn 0.4s ease;
}

.impact-metric {
    display: inline-block;
    color: #10b981;
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 15px;
}

blockquote {
    font-size: 1.2rem;
    font-style: italic;
    color: var(--text-main);
    margin-bottom: 20px;
    line-height: 1.5;
}

cite {
    font-style: normal;
    color: var(--text-muted);
}

.carousel-controls {
    display: flex;
    justify-content: space-between;
    position: absolute;
    top: 50%;
    width: calc(100% - 40px);
    left: 20px;
    transform: translateY(-50%);
    pointer-events: none;
}

.carousel-controls button {
    background: #ffffff;
    border: 1px solid var(--border-color);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    pointer-events: auto;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

/* ESTILOS PARA EL CARRUSEL DE TESTIMONIOS (PÁGINA DEMO) */
#testimonial-carousel.testimonial {
    margin-top: 25px;
    position: relative;
}

#testimonial-carousel .carousel-inner>.item {
    display: none;
    position: relative;
    width: 100%;
}

#testimonial-carousel .carousel-inner>.item.active {
    display: block;
    animation: fadeIn 0.4s ease;
}

.testimonial-item {
    position: relative;
}

.testimonial-item blockquote {
    background: #f8fafc;
    border-top: 3px solid var(--primary-color);
    border-left: none;
    padding: 20px;
    margin: 0;
    border-radius: 4px;
    font-size: 14px;
    font-style: italic;
    color: var(--text-main);
    line-height: 1.5;
}

.testimonial-item blockquote p {
    margin-bottom: 8px;
    font-size: 14px;
    line-height: 21px;
    color: var(--text-main);
    font-style: italic;
    font-weight: 500;
}

.testimonial-item .icon {
    color: rgba(12, 74, 110, 0.05);
    font-size: 80px !important;
    line-height: 0;
    position: absolute;
    right: 20px;
    top: 10px;
    z-index: 0;
}

.testimonial-review {
    position: relative;
    padding-top: 15px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.testimonial-review>img {
    background: #FFFFFF;
    border: 2px solid var(--primary-color);
    border-radius: 50%;
    width: 70px !important;
    height: 70px !important;
    min-width: 70px;
    min-height: 70px;
    object-fit: cover;
    padding: 2px;
}

.testimonial-review>h1 {
    color: var(--secondary-color);
    font-size: 14px;
    font-weight: 700;
    margin: 0;
    line-height: 1.3;
}

.testimonial-review h1 small {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
    font-weight: normal;
    margin-top: 3px;
}

.testimonial .testimonial-buttons {
    margin-top: 15px;
    display: flex;
    gap: 10px;
}

.testimonial .testimonial-buttons a {
    background: #e2e8f0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--secondary-color);
    font-size: 15px;
    transition: all 0.2s;
    text-decoration: none;
    outline: none;
    user-select: none;
    -webkit-user-select: none;
}

.testimonial .testimonial-buttons a:hover {
    background: #cbd5e1;
    color: var(--primary-color);
}

.testimonial .testimonial-buttons a:focus,
.testimonial .testimonial-buttons a:active {
    outline: none;
    box-shadow: none;
    background: #cbd5e1;
}

/* FAQ */
.faq-section {
    padding: 80px 0;
}

.faq-narrow {
    max-width: 750px;
}

.faq-item {
    margin-top: 20px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 20px;
}

.faq-question {
    font-weight: 600;
    font-size: 1.15rem;
    color: var(--secondary-color);
    cursor: pointer;
    position: relative;
    padding-right: 25px;
}

.faq-answer {
    margin-top: 10px;
    color: var(--text-muted);
}

/* FORMULARIO DE CONVERSIÓN FINAL */
.final-cta-section {
    padding: 100px 0;
    background: linear-gradient(135deg, var(--secondary-color) 0%, #0f172a 100%);
    color: #ffffff;
}

.final-cta-section h2 {
    font-size: 2.2rem;
}

.final-cta-section .section-desc {
    color: #cbd5e1;
}

.form-container-box {
    max-width: 700px;
}

.lead-form-capture {
    background: #ffffff;
    padding: 40px;
    border-radius: 8px;
    color: var(--text-main);
    margin-top: 30px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.form-row {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
}

.form-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
}

.form-group label {
    font-weight: 600;
    margin-bottom: 6px;
    font-size: 0.9rem;
}

.form-group input,
.form-group select,
.form-group textarea {
    padding: 12px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-size: 1rem;
    font-family: var(--font-family);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--primary-light);
}

/* FOOTER */
.main-footer {
    padding: 30px 0;
    background-color: #0f172a;
    color: #64748b;
    font-size: 0.9rem;
    border-top: 1px solid #1e293b;
}

/* ANIMACIONES ANIMATE */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* RESPONSIVE DESIGN (BREAKPOINTS CLAVE) */
@media(max-width: 768px) {

    .hero-grid,
    .split-grid,
    .form-row {
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .main-nav {
        display: none;
    }

    .hero-content h1 {
        font-size: 2rem;
    }

    .hero-form {
        flex-direction: column;
    }

    .carousel-controls {
        position: static;
        margin-top: 20px;
        justify-content: center;
        gap: 20px;
    }
}

/* CONFIGURACIÓN ESTRUCTURAL GENERAL DEL HEADER */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #ffffff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    z-index: 1000;
    padding: 12px 20px;
}

.header-container {
    display: table;
    width: 100%;
}

.logo-area {
    display: table-cell;
    vertical-align: middle;
    text-align: left;
}

.actions-area {
    display: table-cell;
    vertical-align: middle;
    text-align: right;
}

/* ESTILOS DE LOS BOTONES EN NAVBAR (DESKTOP) */
.btn-primary-nav {
    background-color: #f59e0b;
    /* Color naranja de alta conversión */
    color: #ffffff;
    padding: 8px 16px;
    border-radius: 4px;
    font-weight: bold;
    text-decoration: none;
    font-size: 10pt;
    margin-left: 10px;
}

.btn-secondary-nav {
    color: #0c4a6e;
    text-decoration: none;
    font-weight: 600;
    font-size: 10pt;
    padding: 8px 12px;
}

.logo-mobile {
    display: none;
}

.logo-desktop {
    font-weight: bold;
    font-size: 16pt;
    color: #0c4a6e;
}

.logo-desktop small {
    font-size: 10pt;
    color: #64748b;
    font-weight: normal;
}

/* =======================================================
ADAPTACIÓN MOBILE EXCLUSIVA (MÁXIMA ELEGANCIA Y PROLIJIDAD)
======================================================= */
@media screen and (max-width: 768px) {
    .site-header {
        padding: 8px 12px;
        /* Reducción de padding para ahorrar espacio vertical */
    }

    /* Intercambio de versiones de Logotipo */
    .logo-desktop {
        display: none !important;
    }

    .logo-mobile {
        display: inline-block !important;
        font-weight: 800;
        font-size: 15pt;
        letter-spacing: -0.5px;
        color: #0c4a6e;
        /* Azul corporativo puro */
        text-decoration: none;
        border-left: 3px solid #f59e0b;
        /* Acento de marca integrado */
        padding-left: 6px;
    }

    /* Redimensionamiento elegante de botones de conversión */
    .btn-secondary-nav {
        font-size: 9pt;
        padding: 6px 10px;
        margin-right: 4px;
    }

    .btn-primary-nav {
        font-size: 9pt;
        padding: 6px 12px;
        background-color: #f59e0b;
        box-shadow: 0 2px 4px rgba(245, 158, 11, 0.2);
    }

    /* Centrado y alineación fluida del conjunto de interacción */
    .actions-area {
        white-space: nowrap;
    }
}

/* --- LOGO ESTILO DESKTOP --- */
/* --- ESTILOS DE LOGO PARA DESKTOP --- */
.logo-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    gap: 12px;
    vertical-align: middle;
}

.logo-vector-icon {
    display: inline-block;
    width: 42px;
    /* Proporción exacta en Desktop */
    height: 42px;
}

.logo-vector-icon svg {
    width: 100%;
    height: 100%;
}

.logo-text-block {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
}

.brand-acronym {
    font-size: 1.7rem;
    font-weight: 800;
    color: #0c4a6e;
    /* Azul principal */
    line-height: 0.95;
    letter-spacing: -0.5px;
}

.brand-descriptive {
    font-size: 0.85rem;
    color: #64748b;
    /* Gris slate */
    font-weight: 500;
    margin-top: 4px;
}

/* --- ADAPTACIÓN ULTRA-COMPACTA PARA MOBILE --- */
@media screen and (max-width: 768px) {
    .logo-link {
        gap: 8px;
        /* Menor separación en teléfonos */
    }

    .logo-vector-icon {
        width: 32px;
        /* Reducción armónica del engranaje */
        height: 32px;
    }

    /* Ocultamos por completo el texto descriptivo para que no rompa el diseño */
    .brand-descriptive {
        display: none !important;
    }

    .brand-acronym {
        font-size: 1.4rem;
        /* Siglas sutilmente más compactas */
    }
}






/* ==========================================================================
MÁRGENES UNIFICADOS Y REGLA GENERAL DE CONTENEDOR DE PRODUCCIÓN
========================================================================== */
.site-container {
    width: 100%;
    max-width: 1200px;
    /* Obliga al header a encuadrar con la grilla del sitio inferior */
    margin-right: auto;
    margin-left: auto;
    padding-right: 24px;
    padding-left: 24px;
    box-sizing: border-box;
}

/* REGLAS ESTRUCTURALES DE LA BARRA SUPERIOR */
.main-header {
    width: 100%;
    background-color: #ffffff;
    border-bottom: 1px solid #e2e8f0;
    position: fixed;
    top: 0;
    left: 0;

    z-index: 1000;
    padding: 14px 0;
}

.header-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* TRATAMIENTO DEL NUEVO LOGO */
.logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    gap: 10px;
}

.logo-svg-container {
    display: block;
    width: 40px;
    height: 40px;
}

.logo-text-wrapper {
    display: flex;
    flex-direction: column;
}

.text-brand-main {
    font-size: 1.6rem;
    font-weight: 800;
    color: #0c4a6e;
    line-height: 1;
}

.text-brand-sub {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 500;
    margin-top: 2px;
}

/* NAVEGACIÓN DESKTOP */
.nav-list {
    display: flex;
    list-style: none;
    margin: 0;

    padding: 0;
    gap: 24px;
}

.nav-item {
    text-decoration: none;
    color: #334155;
    font-weight: 600;
    font-size: 10.5pt;
    transition: color 0.2s ease;
}

.nav-item:hover {
    color: #0284c7;
}

/* BOTONES DE ACCIÓN */
.header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.btn-primary-action {
    background-color: #0284c7;
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    font-size: 10pt;
    padding: 10px 18px;
    border-radius: 6px;
    transition: background-color 0.2s;
}

.btn-primary-action:hover {
    background-color: #0c4a6e;
}

.btn-secondary-action {
    color: #0c4a6e;
    text-decoration: none;
    font-weight: 600;
    font-size: 10pt;
    padding: 10px 14px;
}

/* ELEMENTO HAMBURGUESA (OCULTO EN ESCRITORIO) */
.hamburger-menu-btn {

    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 24px;
    height: 18px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1010;
}

.hamburger-stripe {
    width: 100%;
    height: 3px;
    background-color: #0c4a6e;
    border-radius: 2px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
RESOLUCIÓN RESPONSIVA MOBILE (ELEMENTOS ACOPLADOS Y CORREGIDOS)
========================================================================== */
@media screen and (max-width: 768px) {
    .site-container {
        padding-right: 16px;
        padding-left: 16px;
    }

    .main-header {
        padding: 10px 0;
    }

    /* Ocultamos la descripción larga del logo para evitar solapamientos */
    .text-brand-sub {
        display: none !important;
    }

    .text-brand-main {
        font-size: 1.4rem;
    }

    .logo-vector-icon {
        width: 34px;
        height: 34px;
    }

    /* Ocultamos los botones estándar de escritorio en barra móvil */

    .btn-secondary-action,
    .btn-primary-action {
        display: none !important;
    }

    /* Activación visual de las tres líneas de hamburguesa */
    .hamburger-menu-btn {
        display: flex !important;
    }

    /* MENÚ DESPLEGABLE MÓVIL ESTILO ELEGANTE (Hamburguesa Activa) */
    .nav-menu-bar {
        position: fixed;
        top: 0;
        right: -100%;
        width: 75%;
        height: 100vh;
        background-color: #ffffff;
        box-shadow: -4px 0 20px rgba(0, 0, 0, 0.1);
        padding: 80px 24px 24px 24px;
        transition: right 0.3s ease-in-out;
        box-sizing: border-box;
    }

    /* Cuando el menú móvil está activo vía JavaScript */
    .nav-menu-bar.active {
        right: 0;
    }

    .nav-list {
        flex-direction: column;
        gap: 20px;
    }

    .nav-item {
        font-size: 13pt;
        display: block;
        padding: 8px 0;
        border-bottom: 1px solid #f1f5f9;
    }

    /* ANIMACIÓN EFECTO INTERACTIVO DE LAS BARRAS (OPCIONAL) */
    .hamburger-menu-btn.open .hamburger-stripe:nth-child(1) {
        transform: translateY(7.5px) rotate(45deg);
    }

    .hamburger-menu-btn.open .hamburger-stripe:nth-child(2) {
        opacity: 0;
    }

    .hamburger-menu-btn.open .hamburger-stripe:nth-child(3) {

        transform: translateY(-7.5px) rotate(-45deg);
    }
}

/* ==========================================================================
MÁRGENES UNIFICADOS Y REGLA GENERAL DE CONTENEDOR DE PRODUCCIÓN
========================================================================== */
.site-container {
    width: 100%;
    max-width: 1200px;
    /* Obliga al header a encuadrar con la grilla del sitio inferior */
    margin-right: auto;
    margin-left: auto;
    padding-right: 24px;
    padding-left: 24px;
    box-sizing: border-box;
}

/* REGLAS ESTRUCTURALES DE LA BARRA SUPERIOR */
.main-header {
    width: 100%;
    background-color: #ffffff;
    border-bottom: 1px solid #e2e8f0;
    position: fixed;
    top: 0;
    left: 0;

    z-index: 1000;
    padding: 14px 0;
}

.header-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* TRATAMIENTO DEL NUEVO LOGO */
/* --- ESTILOS BASE DEL LOGO (ESCRITORIO Y GENERAL) --- */
/* ==========================================================================
   ESTILOS COMPORTAMIENTO FLEXIBLE LOGO GST
   ========================================================================== */
/* ==========================================================================
   ESTILOS CONTROLADOS Y SEGUROS LOGO GST (DESKTOP & MOBILE)
   ========================================================================== */

.logo-link {
    display: flex !important;
    align-items: center !important;
    /* Centra verticalmente los elementos en escritorio */
    text-decoration: none;
    gap: 12px;
    position: relative;
}

.logo-svg-container {
    display: block !important;
    width: 42px !important;
    height: 42px !important;
    flex-shrink: 0 !important;
}

.logo-svg-container svg {
    width: 100% !important;
    height: 100% !important;
    display: block;
}

.text-brand-main {
    font-size: 1.7rem !important;
    font-weight: 800 !important;
    color: #0c4a6e !important;
    line-height: 1 !important;
    display: inline-block !important;
}

/* --- COMPORTAMIENTO DESKTOP --- */
.text-brand-sub-desktop {
    font-size: 0.95rem !important;
    color: #64748b !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    /* Mantiene una sola línea horizontal */
    display: inline-block !important;
    /* Visible en PC */
}

/* Ocultamos el bloque de mobile por defecto en computadoras */
.text-brand-sub-mobile {
    display: none !important;
}

/* ==========================================================================
   INTERCAMBIO TOTAL PARA VISTA MÓVIL (max-width: 768px)
   ========================================================================== */
@media screen and (max-width: 768px) {
    .logo-link {
        gap: 8px !important;
        /* Permitimos que los elementos internos se acomoden de forma flexible */
        flex-wrap: wrap !important;
        align-items: center !important;
    }

    .logo-svg-container {
        width: 34px !important;
        height: 34px !important;
    }

    .text-brand-main {
        font-size: 1.4rem !important;
    }

    /* ACCIÓN CRÍTICA: Apagamos el texto horizontal de escritorio */
    .text-brand-sub-desktop {
        display: none !important;
    }

    /* ACCIÓN CRÍTICA: Encendemos y forzamos el texto vertical móvil */
    .text-brand-sub-mobile {
        display: block !important;
        /* Fuerza la visibilidad rompiendo el ocultamiento */
        font-size: 0.68rem !important;
        line-height: 1 !important;
        font-weight: 700 !important;
        color: #64748b !important;
        margin-left: 0px !important;
        white-space: normal !important;
    }
}


.text-brand-main {
    font-size: 1.6rem;
    font-weight: 800;
    color: #0c4a6e;
    line-height: 1;
}

.text-brand-sub {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 500;
    margin-top: 2px;
}

.mobile-only {
    display: none !important;
}

/* NAVEGACIÓN DESKTOP */
.nav-list {
    display: flex;
    list-style: none;
    margin: 0;

    padding: 0;
    gap: 24px;
}

.nav-item {
    text-decoration: none;
    color: #334155;
    font-weight: 600;
    font-size: 10.5pt;
    transition: color 0.2s ease;
}

.nav-item:hover {
    color: #0284c7;
}

/* BOTONES DE ACCIÓN */
.header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.btn-primary-action {
    background-color: #0284c7;
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    font-size: 10pt;
    padding: 10px 18px;
    border-radius: 6px;
    transition: background-color 0.2s;
}

.btn-primary-action:hover {
    background-color: #0c4a6e;
}

.btn-secondary-action {
    color: #0c4a6e;
    text-decoration: none;
    font-weight: 600;
    font-size: 10pt;
    padding: 10px 14px;
}

/* ELEMENTO HAMBURGUESA (OCULTO EN ESCRITORIO) */
.hamburger-menu-btn {

    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 24px;
    height: 18px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1010;
}

.hamburger-stripe {
    width: 100%;
    height: 3px;
    background-color: #0c4a6e;
    border-radius: 2px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
RESOLUCIÓN RESPONSIVA MOBILE (ELEMENTOS ACOPLADOS Y CORREGIDOS)
========================================================================== */
@media screen and (max-width: 768px) {
    .site-container {
        padding-right: 16px;
        padding-left: 16px;
    }

    .main-header {
        padding: 10px 0;
    }

    /* Ocultamos la descripción larga del logo para evitar solapamientos */
    .text-brand-sub {
        display: none !important;
    }

    .text-brand-main {
        font-size: 1.4rem;
    }

    .logo-vector-icon {
        width: 34px;
        height: 34px;
    }

    /* Ocultamos los botones estándar de escritorio en barra móvil */

    .btn-secondary-action,
    .btn-primary-action {
        display: none !important;
    }

    /* Activación visual de las tres líneas de hamburguesa */
    .hamburger-menu-btn {
        display: flex !important;
        margin-right: 10px !important;
    }

    /* MENÚ DESPLEGABLE MÓVIL ESTILO ELEGANTE (Hamburguesa Activa) */
    .nav-menu-bar {
        position: fixed;
        top: 0;
        right: -100%;
        width: 75%;
        height: 100vh;
        background-color: #ffffff;
        box-shadow: -4px 0 20px rgba(0, 0, 0, 0.1);
        padding: 80px 24px 24px 24px;
        transition: right 0.3s ease-in-out;
        box-sizing: border-box;
    }

    /* Cuando el menú móvil está activo vía JavaScript */
    .nav-menu-bar.active {
        right: 0;
    }

    .nav-list {
        flex-direction: column;
        gap: 20px;
    }

    .nav-item {
        font-size: 13pt;
        display: block;
        padding: 8px 0;
        border-bottom: 1px solid #f1f5f9;
    }

    /* ANIMACIÃ“N EFECTO INTERACTIVO DE LAS BARRAS (OPCIONAL) */
    .hamburger-menu-btn.open .hamburger-stripe:nth-child(1) {
        transform: translateY(7.5px) rotate(45deg);
    }

    .hamburger-menu-btn.open .hamburger-stripe:nth-child(2) {
        opacity: 0;
    }

    .hamburger-menu-btn.open .hamburger-stripe:nth-child(3) {

        transform: translateY(-7.5px) rotate(-45deg);
    }

    .mobile-only {
        display: block !important;
    }
}

/* ==========================================================================
   NUEVO FOOTER REDISEÃ‘ADO (pie.txt)
   ========================================================================== */
.main-footer {
    background-color: #0f172a !important;
    color: #cbd5e1 !important;
    padding: 60px 0 30px 0 !important;
    font-family: var(--font-family);
    border-top: 1px solid #1e293b;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1.5fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
    text-align: left;
}

.footer-brand-title {
    font-size: 1rem;
    font-weight: 600;
    color: #ffffff;
    letter-spacing: -0.3px;
}

.powered-link {
    color: #0284c7 !important;
    text-decoration: none !important;
    font-weight: 600;
    transition: color 0.2s;
}

.powered-link:hover {
    color: #38bdf8 !important;
}

.footer-action-col {
    align-items: flex-end;
    justify-content: center;
}

.footer-bottom {
    border-top: 1px solid #1e293b;
    padding-top: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.85rem;
    color: #64748b;
}

.footer-social {
    display: flex;
    gap: 16px;
}

.social-link {
    color: #a79981 !important;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s;
}

.social-link:hover {
    color: #0284c7 !important;
}

@media (max-width: 768px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
    }

    .footer-action-col {
        align-items: center;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }
}

/* ==========================================================================
   COMPATIBILIDAD CON GRID BOOTSTRAP (SIN CARGAR BOOTSTRAP COMPLETO)
   ========================================================================== */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

[class*="col-"] {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    box-sizing: border-box;
}

@media (min-width: 769px) {

    .col-lg-12,
    .col-md-12,
    .col-sm-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .col-lg-9,
    .col-md-9 {
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-lg-8,
    .col-md-8 {
        flex: 0 0 66.666667%;
        max-width: 66.666667%;
    }

    .col-lg-6,
    .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-lg-4,
    .col-md-4 {
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }

    .col-lg-3,
    .col-md-3,
    .col-sm-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-lg-2,
    .col-md-2 {
        flex: 0 0 16.666667%;
        max-width: 16.666667%;
    }
}

@media (max-width: 768px) {
    .row {
        flex-direction: column !important;
        margin-right: 0;
        margin-left: 0;
    }

    [class*="col-"] {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        padding-right: 0;
        padding-left: 0;
        margin-bottom: 24px;
    }
}

/* ==========================================================================
   ESTILOS ESTÉTIQUES INTERNAS DE GST (BREADCRUMBS, SIDEBAR, ETC.)
   ========================================================================== */
.wrapper {
    padding-top: 80px;
    /* Offset para el header sticky */
    background-color: #ffffff;
}

/* Cabecera de Página */
.page_head {
    background: linear-gradient(135deg, #f0f4f8 0%, #ffffff 100%);
    padding: 30px 0;
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 40px;
}

.page_head h1,
.page_head h2 {
    font-size: 2.2rem;
    color: #0c4a6e;
    font-weight: 800;
    margin-bottom: 10px;
    line-height: 1.2;
}

#breadcrumbs {
    font-size: 0.9rem;
    color: var(--text-muted);
}

#breadcrumbs ul {
    list-style: none;
    padding: 0;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

#breadcrumbs ul li {
    display: inline-block;
}

#breadcrumbs ul li a {
    color: #0284c7;
    text-decoration: none;
    font-weight: 600;
}

#breadcrumbs ul li a:hover {
    color: #0c4a6e;
}

#breadcrumbs ul li::after {
    content: "/";
    margin-left: 8px;
    color: #cbd5e1;
}

#breadcrumbs ul li:last-child::after {
    content: "";
}

/* Contenido Principal y Sidebar */
.content {
    padding-bottom: 60px;
}

.sidebar,
#contactForm {
    background-color: var(--background-light);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 24px;
}

.widget {
    margin-bottom: 30px;
}

.widget:last-child {
    margin-bottom: 0;
}

.widget_title h4 {
    font-size: 1.2rem;
    color: #0c4a6e;
    font-weight: 700;
    border-bottom: 2px solid #f59e0b;
    padding-bottom: 8px;
    margin-bottom: 16px;
}

.arrows_list {
    list-style: none;
    padding: 0;
}

.arrows_list li {
    margin-bottom: 12px;
}

.arrows_list li a {
    color: var(--text-main);
    text-decoration: none;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color 0.2s;
}

.arrows_list li a:hover {
    color: #0284c7;
}

/* Encabezados divisores */
.dividerHeading {
    margin: 40px 0 20px 0;
}

.dividerHeading h4 {
    font-size: 1.5rem;
    color: #0c4a6e;
    font-weight: 700;
    border-bottom: 2px solid var(--border-color);
    padding-bottom: 10px;
}

.dividerHeading h4 span {
    border-bottom: 2px solid #f59e0b;
    padding-bottom: 10px;
    display: inline-block;
    margin-bottom: -12px;
}

/* Listas con check y círculos */
ul.list_style {
    list-style: none;
    padding-left: 0;
}

ul.list_style li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 12px;
    font-size: 1rem;
    line-height: 1.6;
}

ul.list_style li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #10b981;
    font-weight: bold;
}

/* Tablas de Precios en precios.html */
.pricingBlock {
    margin-top: 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.pricingTable {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 30px 20px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.pricingTable:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
    border-color: #0284c7;
}

.pricingTable-header {
    margin-bottom: 20px;
}

.pricingTable-header .heading {
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', var(--font-family) !important;
    color: #0c4a6e;
    margin-bottom: 15px;
    letter-spacing: -0.3px;
}

.price-value {
    display: block;
    margin-bottom: 10px;
    padding: 10px 14px;
    border-radius: 8px;
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    font-size: 0.85rem;
    color: #64748b;
    font-weight: 500;
    line-height: 1.5;
    transition: all 0.2s ease;
}

.price-value:hover {
    border-color: #cbd5e1;
    background-color: #f1f5f9;
}

/* Destacar la mejor opción de pago (Pago Anual) */
.price-value1 {
    background-color: #f0f9ff;
    border-color: #bae6fd;
    color: #0369a1;
}

.price-value1:hover {
    background-color: #e0f2fe;
    border-color: #7dd3fc;
}

.price-value span {
    font-size: 1.5rem;
    font-weight: 700;
    font-family: 'Outfit', var(--font-family) !important;
    color: #0c4a6e;
    margin: 0 2px;
    letter-spacing: -0.5px;
}

.price-value1 span {
    font-size: 1.8rem;
    color: #0284c7;
}

.price-value .mo {
    font-size: 0.85rem;
    color: #64748b;
    font-weight: normal;
}

.price-value1 .mo {
    color: #0284c7;
    font-weight: 600;
}

.pricingContent ul {
    list-style: none;
    padding: 0;
    margin: 20px 0;
    text-align: left;
}

.pricingContent ul li {
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.95rem;
}

.pricingContent ul li strong {
    color: #0c4a6e;
}

/* Formularios adaptados */
.lead-form-capture,
.contact-form,
form {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 30px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
}

input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-size: 1rem;
    color: var(--text-main);
    background-color: #ffffff;
    box-sizing: border-box;
    transition: border-color 0.2s;
    margin-bottom: 15px;
}

input:focus,
select:focus,
textarea:focus {
    border-color: #0284c7;
    outline: none;
}

.btn-default {
    background-color: #0284c7;
    color: #ffffff;
    border-radius: 6px;
    padding: 12px 24px;
    font-weight: 700;
    text-decoration: none;
    display: inline-block;
    transition: background-color 0.2s;
}

.btn-default:hover {
    background-color: #0c4a6e;
}

/* Imagen con thumbnail */
.img-thumbnail {
    padding: 4px;
    line-height: 1.42857143;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    max-width: 100%;
    height: auto;
}

.left_img_gb {}

.arrows_list {
    list-style: none;
    padding: 0;
}

.arrows_list li {
    margin-bottom: 12px;
}

.arrows_list li a {
    color: var(--text-main);
    text-decoration: none;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color 0.2s;
}

.arrows_list li a:hover {
    color: #0284c7;
}

/* Encabezados divisores */
.dividerHeading {
    margin: 40px 0 20px 0;
}

.dividerHeading h4 {
    font-size: 1.5rem;
    color: #0c4a6e;
    font-weight: 700;
    border-bottom: 2px solid var(--border-color);
    padding-bottom: 10px;
}

.dividerHeading h4 span {
    border-bottom: 2px solid #f59e0b;
    padding-bottom: 10px;
    display: inline-block;
    margin-bottom: -12px;
}

/* Listas con check y círculos */
ul.list_style {
    list-style: none;
    padding-left: 0;
}

ul.list_style li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 12px;
    font-size: 1rem;
    line-height: 1.6;
}

ul.list_style li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #10b981;
    font-weight: bold;
}

/* Tablas de Precios */
.row {
    margin-right: -15px;
    margin-left: -15px;
}

.row::after,
.who::after,
.pricingBlock::after,
.rs_box::after,
.clearfix::after,
.container::after {
    content: "";
    display: table;
    clear: both;
}

[class*="col-"] {
    position: relative;
    float: left;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
    box-sizing: border-box;
}

@media (min-width: 769px) {

    .col-lg-12,
    .col-md-12,
    .col-sm-12 {
        width: 100%;
    }

    .col-lg-9,
    .col-md-9 {
        width: 75%;
    }

    .col-lg-8,
    .col-md-8 {
        width: 66.666667%;
    }

    .col-lg-6,
    .col-md-6 {
        width: 50%;
    }

    .col-lg-4,
    .col-md-4 {
        width: 33.333333%;
    }

    .col-lg-3,
    .col-md-3,
    .col-sm-3 {
        width: 25%;
    }

    .col-lg-2,
    .col-md-2 {
        width: 16.666667%;
    }
}

@media (max-width: 768px) {
    [class*="col-"] {
        float: none !important;
        width: 100% !important;
        padding-right: 0;
        padding-left: 0;
        margin-bottom: 24px;
    }
}

.pricingBlock {
    margin-top: 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

@media (min-width: 769px) {
    .pricingBlock>[class*="col-"] {
        flex: 0 0 calc(25% - 16px) !important;
        max-width: calc(25% - 16px) !important;
        width: calc(25% - 16px) !important;
        float: none !important;
        display: flex !important;
        flex-direction: column !important;
    }
}

.pricingTable {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 30px 20px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.pricingTable:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
    border-color: #0284c7;
}

.pricingTable-header {
    margin-bottom: 20px;
}

.pricingTable-header .heading {
    display: block;
    font-size: 1.4rem;
    font-weight: 800;
    color: #0c4a6e;
    margin-bottom: 15px;
}

.price-value {
    display: block;
    font-size: 0.9rem;
    color: var(--text-muted);
    font-weight: 500;
    margin-bottom: 12px;
    border-bottom: 1px dashed var(--border-color);
    padding-bottom: 8px;
}

.price-value span {
    font-size: 1.8rem;
    font-weight: 800;
    color: #0284c7;
}

.price-value .mo {
    font-size: 0.95rem;
    color: var(--text-muted);
}

.pricingContent ul {
    list-style: none;
    padding: 0;
    margin: 20px 0;
    text-align: left;
}

.pricingContent ul li {
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.95rem;
}

.pricingContent ul li strong {
    color: #0c4a6e;
}

/* Formularios adaptados */
.lead-form-capture,
.contact-form,
form {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 30px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
}

input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-size: 1rem;
    color: var(--text-main);
    background-color: #ffffff;
    box-sizing: border-box;
    transition: border-color 0.2s;
    margin-bottom: 15px;
}

input:focus,
select:focus,
textarea:focus {
    border-color: #0284c7;
    outline: none;
}

.btn-default {
    background-color: #0284c7;
    color: #ffffff;
    border-radius: 6px;
    padding: 12px 24px;
    font-weight: 700;
    text-decoration: none;
    display: inline-block;
    transition: background-color 0.2s;
}

.btn-default:hover {
    background-color: #0c4a6e;
}

/* Imagen con thumbnail */
.img-thumbnail {
    padding: 4px;
    line-height: 1.42857143;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    max-width: 100%;
    height: auto;
}

.left_img_gb {
    float: left;
    margin-right: 20px;
    margin-bottom: 15px;
}

.right_img_gb {
    float: right;
    margin-left: 20px;
    margin-bottom: 15px;
}

/* Evitar duplicidad de estilos cuando main-footer esté anidado (como en index.html) */
.main-footer .main-footer {
    padding: 0 !important;
    border: none !important;
    background-color: transparent !important;
    margin: 0 !important;
}

/* Evitar desbordamiento horizontal en dispositivos móviles por menús desplegables fuera de pantalla */
@media screen and (max-width: 768px) {

    html,
    body {
        overflow-x: hidden;
        width: 100%;
    }
}

/* Forzar tipografía moderna en todos los elementos para evitar que hereden Tahoma de estilos antiguos */
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
span,
a,
input,
select,
textarea,
button {
    font-family: var(--font-family) !important;
}

/* Forzar que los links del Header y navegación no tengan subrayado y tengan color correcto */
.main-header a,
.main-header a:link,
.main-header a:visited,
.logo-link,
.logo-link:link,
.logo-link:visited,
.nav-item,
.nav-item:link,
.nav-item:visited,
.btn-secondary-action,
.btn-secondary-action:link,
.btn-secondary-action:visited,
.btn-primary-action,
.btn-primary-action:link,
.btn-primary-action:visited,
.top-bar-link,
.top-bar-link:link,
.top-bar-link:visited {
    text-decoration: none !important;
    border-bottom: none !important;
}

.btn-primary-action,
.btn-primary-action:link,
.btn-primary-action:visited {
    font-weight: 700 !important;
}

.btn-secondary-action,
.btn-secondary-action:link,
.btn-secondary-action:visited {
    font-weight: 600 !important;
}

.nav-item,
.nav-item:link,
.nav-item:visited {
    font-weight: 600 !important;
}

.top-bar-link,
.top-bar-link:link,
.top-bar-link:visited {
    font-weight: 600 !important;
}

.logo-link {
    color: inherit !important;
}

/* Eliminar subrayados de botones y enlaces de llamada a la acción en todo el sitio */
.btn,
.btn:link,
.btn:visited,
.btn-cta,
.btn-cta:link,
.btn-cta:visited,
.btn-secondary,
.btn-secondary:link,
.btn-secondary:visited,
button,
input[type="submit"] {
    text-decoration: none !important;
}

.module-link,
.module-link:link,
.module-link:visited,
.powered-link,
.powered-link:link,
.powered-link:visited,
a.read,
a.read:link,
a.read:visited {
    text-decoration: none !important;
    border-bottom: none !important;
}

/* ==========================================================================
   ESTILOS DE TOP-BAR Y MENÚS DESPLEGABLES (DROPDOWNS)
   ========================================================================== */
.top-bar {
    background-color: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    padding: 8px 0;
    font-size: 0.85rem;
}

.top-bar-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.top-bar-link {
    color: #475569 !important;
    text-decoration: none !important;
    margin-left: 20px;
    font-weight: 600;
    font-size: 9pt;
    transition: color 0.2s;
}

.top-bar-link:hover {
    color: #0284c7 !important;
}

/* Ajustes del header principal para soportar el top bar */
.main-header {
    padding: 0 !important;
    /* El padding se distribuye entre top bar y wrapper */
}

.header-wrapper {
    padding: 14px 0;
}

.wrapper {
    padding-top: 115px !important;
    /* Offset superior debido a la barra extra del top-bar */
}

.hero-section {
    padding: 130px 0 80px 0 !important;
    /* Ajuste para que el hero no quede solapado */
}

/* Comportamiento del Dropdown */
.nav-item-dropdown {
    position: relative;
}

.arrow-down {
    font-size: 0.7rem;
    margin-left: 3px;
    display: inline-block;
    vertical-align: middle;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    list-style: none;
    padding: 8px 0;
    min-width: 250px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
    z-index: 1100;
    pointer-events: none;
}

/* Pseudo-elemento para evitar la pérdida de hover en el espacio entre el link y el submenú (acotado al ancho del link) */
.nav-item-dropdown::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 20px;
    background: transparent;
}

.nav-item-dropdown:hover .dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    display: block !important;
    pointer-events: auto !important;
}

.dropdown-menu li {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.dropdown-menu li a {
    display: block !important;
    padding: 10px 20px !important;
    color: #334155 !important;
    text-decoration: none !important;
    font-size: 9.5pt !important;
    font-weight: 500 !important;
    text-align: left !important;
    transition: background-color 0.2s, color 0.2s;
}

.dropdown-menu li a:hover {
    background-color: #f1f5f9 !important;
    color: #0284c7 !important;
}

/* Adaptación mobile de dropdowns */
@media screen and (max-width: 768px) {
    .top-bar {
        display: block !important;
        background-color: #f1f5f9 !important; /* Color gris premium/limpio acorde al diseño actual, o #72ecff si prefieren cyan */
        border-bottom: 1px solid #e2e8f0 !important;
        padding: 6px 0 !important;
    }

    .top-bar-wrapper {
        display: flex !important;
        justify-content: center !important;
    }

    .top-bar-right {
        display: flex !important;
        justify-content: space-around !important;
        width: 100% !important;
        max-width: 480px !important;
    }

    .top-bar-link {
        margin: 0 !important;
        font-size: 0.8rem !important;
        color: #0f172a !important;
        font-weight: 600 !important;
    }

    .wrapper {
        padding-top: 120px !important;
    }

    .hero-section {
        padding: 120px 0 60px 0 !important;
    }

    .dropdown-menu {
        position: static !important;
        box-shadow: none !important;
        border: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        padding: 0 0 0 15px !important;
        min-width: 100% !important;
        display: none !important;
    }

    .nav-item-dropdown:hover .dropdown-menu {
        display: block !important;
    }

    .dropdown-menu li a {
        padding: 8px 15px !important;
        font-size: 11pt !important;
        border-bottom: 1px solid #f1f5f9 !important;
    }
}

/* Layout columns alignment for .who in Prestaciones & Industrias */
.who {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    clear: both !important;
}

.who::after {
    content: " " !important;
    display: table !important;
    clear: both !important;
}

@media (min-width: 769px) {

    .who>.col-lg-8,
    .who>.col-md-8,
    .who>.col-sm-8 {
        flex: 0 0 66.666667% !important;
        max-width: 66.666667% !important;
        width: 66.666667% !important;
    }

    .who>.col-lg-4,
    .who>.col-md-4,
    .who>.col-sm-4 {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
        width: 33.333333% !important;
    }

    .sidebar {
        width: 100% !important;
        display: block !important;
    }

    .sidebar .widget {
        width: 100% !important;
        display: block !important;
    }
}

@media (max-width: 768px) {
    .who {
        display: block !important;
    }

    .who>[class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
    }

    .sidebar {
        display: flow-root !important;
    }
}

/* LIGHTBOX MODAL SYSTEM */
.lightbox-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.lightbox-modal.active {
    opacity: 1;
    visibility: visible;
}

.lightbox-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(15, 23, 42, 0.85);
    /* Modern slate overlay */
    backdrop-filter: blur(5px);
}

.lightbox-content {
    position: relative;
    max-width: 90%;
    max-height: 90%;
    z-index: 100001;
    transform: scale(0.9);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.lightbox-modal.active .lightbox-content {
    transform: scale(1);
}

.lightbox-img {
    display: block;
    max-width: 100%;
    max-height: 85vh;
    border-radius: 8px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    border: 3px solid #ffffff;
}

.lightbox-close {
    position: absolute;
    top: -50px;
    right: 0;
    font-size: 36px;
    color: #ffffff;
    cursor: pointer;
    font-weight: bold;
    transition: color 0.2s;
    user-select: none;
}

.lightbox-close:hover {
    color: #f59e0b;
    /* Amber accent color on hover */
}

/* Corrección de maquetación: Evitar que los pseudo-elementos clearfix de Bootstrap actúen como ítems de CSS Grid */
.hero-grid::before,
.hero-grid::after,
.split-grid::before,
.split-grid::after,
.metrics-grid::before,
.metrics-grid::after,
.cards-grid::before,
.cards-grid::after,
.modules-grid::before,
.modules-grid::after,
.ops-grid::before,
.ops-grid::after {
    display: none !important;
    content: none !important;
}

h2,
.h2 {
    font-size: 1.5em;
}

h1 {
    margin-top: 0;
}

/* SEO Features List - Elegant list layout optimized for search engine keyword recognition */
ul.seo-features-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 20px 0 !important;
}

ul.seo-features-list li {
    position: relative !important;
    padding-left: 28px !important;
    margin-bottom: 14px !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: #334155 !important;
    transition: transform 0.2s ease !important;
    list-style-type: none !important;
}

ul.seo-features-list li:hover {
    transform: translateX(4px) !important;
}

ul.seo-features-list li::before {
    content: "✓" !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    color: #0284c7 !important;
    /* Azul premium */
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    line-height: 1.2 !important;
}

ul.seo-features-list li strong {
    color: #0c4a6e !important;
    font-weight: 700 !important;
}

/* ==========================================================================
   ACORDEÓN DE PREGUNTAS FRECUENTES (FAQS) ESTILO ORIGINAL CON COLORES MODERNOS
   ========================================================================== */
.accordion {
    margin-top: 30px !important;
}

.accordion .panel-default {
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    margin-bottom: 12px !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

.accordion .panel-heading {
    background-color: #f8fafc !important;
    /* Fondo gris claro refinado, estilo original pero limpio */
    padding: 0 !important;
    border-bottom: 1px solid #e2e8f0 !important;
}

.accordion .panel-title {
    margin: 0 !important;
    font-size: 0.98rem !important;
    /* Tamaño más fino/chico */
    display: flex !important;
    align-items: center !important;
    /* Centrado vertical exacto */
    padding: 0 20px !important;
    /* Padding lateral */
}

.accordion .panel-title a {
    display: block !important;
    flex: 1 !important;
    padding: 16px 0 !important;
    /* Spacing vertical prolijo */
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    color: #0c4a6e !important;
    font-weight: 500 !important;
    /* Más fino (Medium) */
    text-decoration: none !important;
    transition: color 0.2s !important;
}

.accordion .panel-title a:hover {
    color: #0284c7 !important;
}

/* Icono a la izquierda, centrado verticalmente en la mitad */
.accordion .accordian-icon {
    display: inline-flex !important;
    align-items: center !important;
    margin-right: 12px !important;
    color: #94a3b8 !important;
    font-size: 1rem !important;
    transition: color 0.3s !important;
    flex-shrink: 0 !important;
}

.accordion .panel-title a:not(.collapsed) .accordian-icon {
    color: #0284c7 !important;
}

.accordion .panel-body {
    padding: 20px !important;
    font-size: 0.95rem !important;
    line-height: 1.65 !important;
    color: #475569 !important;
    border-top: none !important;
    background-color: #ffffff !important;
}

/* ==========================================================================
   PORTAL Y ASISTENTE VIRTUAL - DISEÑO SPLIT Y MOCKUPS
   ========================================================================== */
.options-split-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 40px;
}

.option-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.2s, box-shadow 0.2s;
}

.option-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

.option-card.featured {
    border-color: var(--accent-color);
    box-shadow: 0 4px 20px rgba(245, 158, 11, 0.1);
}

.option-card.featured:hover {
    box-shadow: 0 10px 30px rgba(245, 158, 11, 0.15);
}

.option-badge {
    align-self: flex-start;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 700;
    margin-bottom: 15px;
}

.option-badge.standard {
    background-color: #e0f2fe;
    color: #0369a1;
}

.option-badge.new {
    background-color: #fef3c7;
    color: #d97706;
}

.option-card h3 {
    margin-bottom: 12px;
    font-size: 1.4rem;
    color: #0c4a6e !important;
}

.option-card p {
    color: var(--text-muted) !important;
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
    margin-bottom: 20px;
}

.option-features {
    list-style: none;
    margin-bottom: 25px;
    padding: 0;
}

.option-features li {
    font-size: 0.9rem;
    color: var(--text-main);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
}

.option-features li i {
    color: #10b981;
    margin-right: 8px;
}

.option-card .btn {
    align-self: flex-start;
    margin-top: auto;
}

/* Chat Mockup Styling */
.chat-mockup-container {
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden;
    margin-top: 20px;
    font-family: var(--font-family);
}

.chat-mockup-header {
    background: #0c4a6e;
    color: #ffffff;
    padding: 10px 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.85rem;
    font-weight: 600;
}

.chat-mockup-header .status-indicator {
    display: inline-block;
    width: 8px;
    height: 8px;
    background: #10b981;
    border-radius: 50%;
    margin-right: 5px;
}

.chat-mockup-body {
    padding: 15px;
    height: 180px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #ffffff;
}

.chat-bubble {
    max-width: 80%;
    padding: 8px 12px;
    border-radius: 12px;
    font-size: 0.85rem;
    line-height: 1.4;
}

.chat-bubble.bot {
    background: #f1f5f9;
    color: #1e293b;
    align-self: flex-start;
    border-top-left-radius: 2px;
}

.chat-bubble.user {
    background: #0284c7;
    color: #ffffff;
    align-self: flex-end;
    border-top-right-radius: 2px;
}

.chat-mockup-input {
    border-top: 1px solid var(--border-color);
    padding: 10px;
    background: #f8fafc;
    display: flex;
    gap: 8px;
}

.chat-mockup-input span {
    flex: 1;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 6px 12px;
    font-size: 0.8rem;
    color: #94a3b8;
}

.chat-mockup-input .send-btn {
    background: #0284c7;
    color: white;
    width: 28px;
    height: 28px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
}

/* Home split mockup styles */
.home-split-mockup {
    position: relative;
    width: 100%;
    height: auto;
}

.widget-mini-mockup {
    position: absolute;
    bottom: -20px;
    right: -20px;
    width: 220px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    z-index: 10;
    overflow: hidden;
    font-family: var(--font-family);
    animation: fadeIn 0.5s ease;
}

@media(max-width: 768px) {
    .options-split-grid {
        grid-template-columns: 1fr;
    }

    .widget-mini-mockup {
        position: static;
        width: 100%;
        margin-top: 20px;
    }
}