/* =========================================================
   VENECOM · Portal empresarial - Estilos compartidos
   ========================================================= */
:root{
    --default-font: "Roboto", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --brand:#149ed4;
    --brand-dark:#0d6fa0;
    --brand-light:#5cc2ec;
    --ink:#0a2038;
    --ink-2:#102e49;
    --paper:#f5f9fc;
    --highlight:#f2a93b;  /* acento cálido para CTAs y foco de atención */
    --mint:#22c99a;       /* acento de estado "completado / éxito" */
    --gray-600:#5b7182;
    --color-message-error-text: #cc1f1a;
    --radius:16px;
    --shadow-soft:0 10px 30px -12px rgba(10,32,56,.18);
    --shadow-lift:0 20px 45px -16px rgba(10,32,56,.28);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
section[id], header[id]{ scroll-margin-top: 130px; }
body{
    font-family: var(--default-font);
    color:var(--ink);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.display-font{ font-family: var(--default-font); letter-spacing:-.01em; }
.font-mono{ font-family:'JetBrains Mono',monospace; }
a{ text-decoration:none; }
.text-brand{ color:var(--brand) !important; }
.bg-brand{ background-color:var(--brand) !important; }
.text-highlight{ color:var(--highlight) !important; }
.eyebrow{
    display:inline-flex;align-items:center;gap:.5rem;
    font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
    color:var(--brand-dark);
    background:rgba(20,158,212,.08);
    border:1px solid rgba(20,158,212,.25);
    padding:.35rem .85rem; border-radius:50px;
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--highlight);display:inline-block;}
.eyebrow.on-dark{ color:#cfe9f7; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); }
.error-message {
    color: var(--color-message-error-text);
    font-size: .85rem;
}
/* ===== Topbar ===== */
#topbar{ font-size:.85rem; letter-spacing:.02em; }
#topbar a:hover{ color:var(--brand-light) !important; }

/* ===== Navbar ===== */
#mainNav{
    background:#fff; padding-top:.9rem; padding-bottom:.9rem; transition:all .3s ease;
    border-bottom:1px solid rgba(10,32,56,.06);
}
#mainNav.scrolled{ padding-top:.55rem; padding-bottom:.55rem; box-shadow:0 6px 24px -10px rgba(10,32,56,.15); }
#mainNav .navbar-brand{ font-family: var(--default-font); font-weight:700; font-size:1.4rem; color:var(--ink); display:flex; align-items:center; gap:.5rem; }
#mainNav .navbar-brand span{ color:var(--brand); }
#mainNav .brand-mark{
    width:34px;height:34px;border-radius:9px;background:var(--ink);color:var(--brand-light);
    display:flex;align-items:center;justify-content:center;font-family: var(--default-font);font-size:.95rem;font-weight:500;
}
#mainNav .nav-link{ font-weight:600; color:var(--ink-2); margin:0 .3rem; position:relative; font-size:.95rem; }
#mainNav .nav-link::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:2px;
    background:var(--brand); transition:width .25s ease;
}
#mainNav .nav-link:hover::after, #mainNav .nav-link.active::after{ width:100%; }
#mainNav .nav-link:hover, #mainNav .nav-link.active{ color:var(--brand-dark); }
.btn-brand{
    background:var(--brand); border:none; color:#fff; font-weight:600;
    padding:.62rem 1.4rem; border-radius:50px; box-shadow:0 8px 18px -6px rgba(20,158,212,.55);
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn-brand:hover{ background:var(--brand-dark); color:#fff; transform:translateY(-2px); box-shadow:0 12px 22px -6px rgba(20,158,212,.6); }
.btn-highlight{
    background:var(--highlight); border:none; color:var(--ink); font-weight:700; border-radius:50px;
    padding:.62rem 1.4rem; transition:transform .2s ease, box-shadow .2s ease;
    box-shadow:0 10px 20px -8px rgba(242,169,59,.6);
}
.btn-highlight:hover{ transform:translateY(-2px); color:var(--ink); }
.page-hero .btn-highlight:hover{ border:1.5px solid var(--brand); transform:translateY(-2px); color: #fff; }
.btn-outline-brand{
    border:1.5px solid var(--brand); color:var(--brand-dark); font-weight:600; border-radius:50px; padding:.57rem 1.3rem;
    transition:all .2s ease;
}
.btn-outline-brand:hover{ background:var(--brand); color:#fff; }
.btn-outline-light-soft{
    border:1.5px solid rgba(255,255,255,.4); color:#fff; font-weight:600; border-radius:50px; padding:.57rem 1.3rem;
    transition:all .2s ease;
}
.btn-outline-light-soft:hover{ background:rgba(255,255,255,.12); color:#fff; border-color:#fff; }

/*--------------------------------------------------------------
# Preloader
--------------------------------------------------------------*/
#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff; /* Fondo blanco, puedes usar #149ed4 si prefieres */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2000; /* encima de todo */
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

#preloader.hidden {
    opacity: 0;
    visibility: hidden;
}

/* Animación del logo */
#preloader .logo {
    width: 125px; /* Ajusta el tamaño */
    height: 35px;
}
.preloader-logo {
    width: 125px; /* Ajusta el tamaño */
    height: 35px;
    animation: pulse 1s infinite ease-in-out;
}

@keyframes pulse {
    0%   { transform: scale(1); opacity: 1; }
    50%  { transform: scale(1.1); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}

/* Offcanvas mobile menu */
@media (max-width: 991.98px){
    .offcanvas-lg{ background:var(--ink); color:#fff; }
    #mainNav .offcanvas-lg .navbar-nav .nav-link{ color:rgba(255,255,255,.85); font-size:1.1rem; padding:.6rem 0; }
    #mainNav .offcanvas-lg .navbar-nav .nav-link:hover,
    #mainNav .offcanvas-lg .navbar-nav .nav-link.active{ color:#fff; }
    #mainNav .offcanvas-lg .navbar-nav .nav-link::after{ background:var(--highlight); }
    .offcanvas-lg .btn-close{ filter:invert(1); }
    .offcanvas-lg hr{ border-color:rgba(255,255,255,.15); }
}

/* ===== Submenú "Servicios": acordeón (móvil) / dropdown (desktop) ===== */
.nav-item.has-dropdown{ position:relative; }
.offcanvas-accordion-header{ background:none; border:none; cursor:pointer; }
.offcanvas-accordion-header i{ font-size:.75rem; transition:transform .25s ease; }
.offcanvas-accordion-header[aria-expanded="true"] i{ transform:rotate(180deg); }

.offcanvas-accordion-content{
    max-height:0; overflow:hidden; transition:max-height .3s ease;
}
.offcanvas-accordion-content.open{ max-height:420px; }
.offcanvas-accordion-content li{ list-style:none; }
.offcanvas-accordion-content .dropdown-item{
    display:block; color:rgba(255,255,255,.7); font-size:.95rem; font-weight:500;
    padding:.45rem 0; background:none; border:none; transition:color .2s ease;
}
.offcanvas-accordion-content .dropdown-item:hover,
.offcanvas-accordion-content .dropdown-item.active{ color:#fff; }

@media (min-width: 992px){
    .offcanvas-accordion-content{
        position:absolute; top:calc(100% + 10px); left:0; margin-top:0; min-width:250px;
        background:#fff; border-radius:12px; box-shadow:var(--shadow-soft); border:1px solid rgba(10,32,56,.08);
        padding:.6rem; max-height:none; overflow:visible; display:none; z-index:1030;
    }
    .offcanvas-accordion-content.open,
    .nav-item.has-dropdown { display:block; }
    .offcanvas-accordion-content .dropdown-item{
        color:var(--ink-2); font-weight:600; font-size:.9rem; padding:.55rem .8rem; border-radius:8px;
    }
    .offcanvas-accordion-content .dropdown-item:hover{ background:rgba(20,158,212,.08); color:var(--brand-dark); }
    .offcanvas-accordion-content .dropdown-item.active{ background:rgba(20,158,212,.1); color:var(--brand-dark); }
}

/* ===== Hero (home) ===== */
.hero{
    position:relative; overflow:hidden;
    background:
        radial-gradient(1100px 480px at 88% -8%, rgba(20,158,212,.2), transparent 60%),
        radial-gradient(700px 400px at 5% 110%, rgba(242,169,59,.12), transparent 60%),
        linear-gradient(180deg,#ffffff 0%, var(--paper) 100%);
    padding-top:5.5rem; padding-bottom:5rem;
}
.hero h1{ font-size:clamp(2.2rem,4.4vw,3.5rem); font-weight:700; line-height:1.12; }
.hero .lead{ color:var(--gray-600); font-size:1.15rem; max-width:560px; }
.hero-stats{ display:flex; gap:2.2rem; flex-wrap:wrap; margin-top:2.2rem; }
.hero-stats .num{ font-family:'Space Grotesk',sans-serif; font-size:1.8rem; font-weight:700; color:var(--ink); }
.hero-stats .lbl{ font-size:.82rem; color:var(--gray-600); }

/* ===== Hero interno (páginas de servicio) ===== */
.page-hero{
    position:relative; overflow:hidden;
    background:linear-gradient(125deg,var(--ink) 0%, var(--ink-2) 55%, #0d4066 100%);
    color:#fff; padding-top:4.5rem; padding-bottom:4.5rem;
}
.page-hero::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(900px 420px at 90% -10%, rgba(20,158,212,.35), transparent 60%);
}
.page-hero .breadcrumb-nav{ position:relative; z-index:1; font-size:.85rem; color:rgba(255,255,255,.6); }
.page-hero .breadcrumb-nav a{ color:rgba(255,255,255,.75); }
.page-hero .breadcrumb-nav a:hover{ color:#fff; }
.page-hero h1{ position:relative; z-index:1; font-size:clamp(2rem,4vw,3rem); font-weight:700; }
.page-hero p.lead{ position:relative; z-index:1; color:rgba(255,255,255,.78); max-width:640px; font-size:1.1rem; }
.page-hero .hero-badges{ position:relative; z-index:1; }

/* Código / terminal (elemento distintivo hero home) */
.code-window{
    position:relative; z-index:2; background:var(--ink); border-radius:18px; box-shadow:var(--shadow-lift);
    overflow:hidden; border:1px solid rgba(255,255,255,.08);
}
.code-window-bar{
    display:flex; align-items:center; gap:.5rem; padding:.8rem 1rem; background:rgba(255,255,255,.04);
    border-bottom:1px solid rgba(255,255,255,.08);
}
.code-window-bar .dot{ width:11px;height:11px;border-radius:50%; }
.code-window-bar .dot.red{ background:#ff5f57; }
.code-window-bar .dot.yellow{ background:#febc2e; }
.code-window-bar .dot.green{ background:#28c840; }
.code-window-title{ margin-left:.6rem; font-size:.78rem; color:rgba(255,255,255,.55); }
.code-window-body{ padding:1.4rem 1.3rem; min-height:230px; }
.code-window-body pre{
    margin:0; font-family: var(--default-font); font-size:.86rem; line-height:1.85; color:#d7e6f0; white-space:pre-wrap;
}
.code-window-body .ok{ color:var(--mint); }
.code-window-body .cmt{ color:#7c93a6; }
.code-window-body .accent{ color:var(--brand-light); }
.caret{ display:inline-block; width:8px; background:var(--highlight); animation:blink 1s steps(1) infinite; margin-left:2px; }
@keyframes blink{ 50%{ opacity:0; } }
.float-chip{
    position:absolute; background:#fff; border-radius:12px; box-shadow:var(--shadow-soft); padding:.7rem .95rem;
    display:flex; align-items:center; gap:.6rem; font-size:.82rem; font-weight:600; color:var(--ink); z-index:3;
}
.float-chip i{ color:var(--mint); font-size:1.1rem; }
.chip-1{ top:-18px; left:-14px; }
.chip-2{ bottom:-18px; right:-10px; }
@media (max-width: 991.98px){ .float-chip{ display:none; } }

/* ===== Trust strip ===== */
.trust-strip{ background:#fff; border-top:1px solid rgba(10,32,56,.06); border-bottom:1px solid rgba(10,32,56,.06); }
.trust-strip .item{ color:var(--gray-600); font-weight:600; letter-spacing:.03em; font-size:.9rem; }

/* ===== Secciones generales ===== */
.section{ padding:.5rem 0; }
.section-title{ font-size:clamp(1.8rem,3vw,2.5rem); font-weight:700; }
.section-sub{ color:var(--gray-600); max-width:940px; }

/* ===== Servicios / módulos (tarjetas) ===== */
.service-card{
    background:#fff; border-radius:var(--radius); padding:2rem 1.7rem;
    border:1px solid rgba(10,32,56,.07); height:100%;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    position:relative; overflow:hidden;
}
.service-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-soft); border-color:transparent; }
.service-card .icon-wrap{
    width:54px;height:54px; border-radius:14px; display:flex; align-items:center; justify-content:center;
    background:rgba(20,158,212,.1); color:var(--brand-dark); font-size:1.5rem; margin-bottom:1.1rem;
}
.service-card h3{ font-size:1.15rem; font-weight:700; margin-bottom:.6rem; }
.service-card p{ color:var(--gray-600); font-size:.95rem; margin-bottom:0; }
.service-card .num-mark{
    position:absolute; top:1.2rem; right:1.4rem; font-family: var(--default-font); font-size:.78rem;
    color:rgba(10,32,56,.25); font-weight:500;
}
.service-card .card-link{ display:inline-flex; align-items:center; gap:.35rem; font-size:.85rem; font-weight:700; color:var(--brand-dark); margin-top:.9rem; }
.service-card .card-link i{ transition:transform .2s ease; }
.service-card:hover .card-link i{ transform:translateX(3px); }

/* ===== Proceso / Timeline (elemento distintivo, reutilizable) ===== */
.timeline{ position:relative; }
.timeline::before{
    content:""; position:absolute; left:24px; top:0; bottom:0; width:2px;
    background:linear-gradient(180deg, var(--brand) 0%, var(--brand) 60%, rgba(20,158,212,.15) 100%);
}
@media (min-width: 992px){ .timeline::before{ left:50%; transform:translateX(-1px); } }
.tl-item{ position:relative; padding-left:70px; margin-bottom:2.6rem; }
.tl-item:last-child{ margin-bottom:0; }
.tl-marker{
    position:absolute; left:0; top:0; width:50px; height:50px; border-radius:50%;
    background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center;
    font-family: var(--default-font); font-weight:700; border:4px solid var(--paper); box-shadow:0 0 0 2px var(--brand);
    z-index:2;
}
.tl-card{ background:#fff; border-radius:14px; padding:1.5rem 1.6rem; border:1px solid rgba(10,32,56,.07); box-shadow:var(--shadow-soft); }
.tl-card h4{ font-size:1.08rem; font-weight:700; margin-bottom:.4rem; }
.tl-card p{ color:var(--gray-600); font-size:.92rem; margin:0; }
.tl-card .tl-tag{ font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--brand-dark); margin-bottom:.4rem; display:block; }
@media (min-width: 992px){
    .tl-item{ padding-left:0; width:50%; }
    .tl-item:nth-child(odd){ padding-right:3.5rem; text-align:right; margin-left:0; }
    .tl-item:nth-child(even){ padding-left:3.5rem; margin-left:50%; }
    .tl-item:nth-child(odd) .tl-marker{ right:-25px; left:auto; }
    .tl-item:nth-child(even) .tl-marker{ left:-25px; }
}

/* ===== Stats band ===== */
.stats-band{ background:linear-gradient(120deg,var(--ink) 0%, var(--ink-2) 100%); color:#fff; }
.stats-band .num{ font-family: var(--default-font); font-weight:700; font-size:2.3rem; }
.stats-band .lbl{ font-size:.85rem; opacity:.85; }

/* ===== Nosotros / valores ===== */
.value-card{ background:#fff; border-radius:14px; padding:1.4rem; border:1px solid rgba(10,32,56,.07); height:100%; }
.value-card i{ font-size:1.6rem; }

/* ===== Testimonios ===== */
.testi-card{ background:#fff; border-radius:var(--radius); padding:1.9rem; border:1px solid rgba(10,32,56,.07); height:100%; box-shadow:var(--shadow-soft); }
.testi-card .stars{ color:var(--highlight); font-size:.85rem; margin-bottom:.8rem; }
.testi-card p.quote{ color:var(--ink-2); font-size:.98rem; }
.testi-author{ display:flex; align-items:center; gap:.7rem; margin-top:1.2rem; }
.testi-avatar{ width:42px;height:42px;border-radius:50%; background:var(--brand); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-family:'Space Grotesk',sans-serif; }

/* ===== CTA ===== */
.cta-box{
    background:linear-gradient(120deg,var(--brand) 0%, var(--brand-dark) 100%);
    border-radius:26px; color:#fff; padding:3.2rem; position:relative; overflow:hidden;
}
.cta-box::after{ content:""; position:absolute; width:340px; height:340px; border-radius:50%; background:rgba(255,255,255,.08); right:-90px; top:-120px; }
.cta-box.dark{ background:linear-gradient(120deg,var(--ink) 0%, var(--ink-2) 100%); }

/* ===== Contacto ===== */
.contact-card{ background:#fff; border-radius:var(--radius); padding:2.2rem; box-shadow:var(--shadow-soft); border:1px solid rgba(10,32,56,.06); }
.form-control, .form-select{ border-radius:10px; border:1.5px solid rgba(10,32,56,.14); padding:.7rem .9rem; }
.form-control:focus, .form-select:focus{ border-color:var(--brand); box-shadow:0 0 0 .2rem rgba(20,158,212,.18); }
.contact-info-item{ display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.4rem; }
.contact-info-item i{
    width:44px;height:44px;min-width:44px; border-radius:12px; background:rgba(20,158,212,.1); color:var(--brand-dark);
    display:flex; align-items:center; justify-content:center; font-size:1.1rem;
}

/* ===== Planes / pricing (software estándar) ===== */
.plan-card{
    background:#fff; border-radius:var(--radius); border:1px solid rgba(10,32,56,.08); padding:2.2rem 1.9rem; height:100%;
    position:relative; transition:transform .25s ease, box-shadow .25s ease;
}
.plan-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-soft); }
.plan-card.featured{ border-color:var(--brand); box-shadow:var(--shadow-lift); transform:translateY(-10px); }
.plan-card.featured:hover{ transform:translateY(-14px); }
.plan-badge{
    position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--highlight); color:var(--ink);
    font-size:.7rem; font-weight:700; padding:.35rem .95rem; border-radius:50px; letter-spacing:.05em; text-transform:uppercase;
    white-space:nowrap;
}
.plan-name{ font-weight:700; font-size:1.1rem; }
.plan-price{ font-family: var(--default-font); font-size:2.1rem; font-weight:700; margin:.4rem 0; }
.plan-price small{ font-size:.9rem; font-weight:500; color:var(--gray-600); }
.plan-list{ list-style:none; padding:0; margin:1.3rem 0; }
.plan-list li{ padding:.5rem 0; border-bottom:1px dashed rgba(10,32,56,.1); font-size:.9rem; color:var(--gray-600); display:flex; gap:.6rem; align-items:flex-start; }
.plan-list li:last-child{ border-bottom:none; }
.plan-list li i{ color:var(--mint); margin-top:.15rem; }

/* ===== Módulos (grid con imagen/icono grande) ===== */
.module-card{
    background:#fff; border-radius:var(--radius); border:1px solid rgba(10,32,56,.07); overflow:hidden; height:100%;
    transition:transform .25s ease, box-shadow .25s ease;
}
.module-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-soft); }
.module-card .module-top{
    background:linear-gradient(135deg, rgba(20,158,212,.12), rgba(20,158,212,.03));
    padding:1.6rem; display:flex; align-items:center; justify-content:space-between;
}
.module-card .module-top i{ font-size:1.8rem; color:var(--brand-dark); }
.module-card .module-body{ padding:1.4rem 1.5rem 1.6rem; }
.module-card h3{ font-size:1.05rem; font-weight:700; margin-bottom:.5rem; }
.module-card p{ color:var(--gray-600); font-size:.9rem; }
.module-tags{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.8rem; }
.module-tags span{ font-size:.7rem; font-weight:600; background:rgba(10,32,56,.06); color:var(--ink-2); padding:.25rem .6rem; border-radius:50px; }
.module-card .card-link{ display:inline-flex; align-items:center; gap:.35rem; font-size:.85rem; font-weight:700; color:var(--brand-dark); margin-top:1rem; }
.module-card .card-link i{ transition:transform .2s ease; }
.module-card:hover .card-link i{ transform:translateX(3px); }

/* ===== Página de detalle de módulo ===== */
.feature-row{ display:flex; gap:1rem; align-items:flex-start; padding:1.1rem 0; border-bottom:1px solid rgba(10,32,56,.07); }
.feature-row:last-child{ border-bottom:none; }
.feature-row .icon-wrap{ width:46px;height:46px;min-width:46px; border-radius:12px; background:rgba(20,158,212,.1); color:var(--brand-dark); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.feature-row h4{ font-size:1rem; font-weight:700; margin-bottom:.25rem; }
.feature-row p{ color:var(--gray-600); font-size:.9rem; margin:0; }
.module-icon-badge{ width:64px;height:64px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#fff; }

.quick-cta-card{
    background:linear-gradient(160deg,var(--ink) 0%, var(--ink-2) 100%); color:#fff; border-radius:var(--radius);
    padding:1.8rem 1.5rem; position:sticky; top:110px; box-shadow:var(--shadow-lift);
}
.quick-cta-card .quick-price{ font-family: var(--default-font); font-weight:700; font-size:1.7rem; }
.quick-cta-card .quick-price small{ font-size:.8rem; font-weight:500; opacity:.7; }
.quick-cta-card ul{ list-style:none; padding:0; margin:1.1rem 0; }
.quick-cta-card ul li{ display:flex; gap:.55rem; align-items:flex-start; font-size:.86rem; padding:.4rem 0; color:rgba(255,255,255,.85); }
.quick-cta-card ul li i{ color:var(--mint); margin-top:.15rem; }
.quick-cta-card .btn-highlight{ width:100%; text-align:center; }
.quick-cta-card .btn-whats-inline{
    display:flex; align-items:center; justify-content:center; gap:.5rem; margin-top:.7rem; width:100%;
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:#fff; border-radius:50px;
    padding:.55rem 1rem; font-size:.85rem; font-weight:600; transition:background .2s ease;
}
.quick-cta-card .btn-whats-inline:hover{ background:rgba(255,255,255,.16); color:#fff; }
@media (max-width: 991.98px){ .quick-cta-card{ position:static; margin-top:2rem; } }

/* ===== Tabla comparativa ===== */
.compare-table-wrap{ background:#fff; border-radius:var(--radius); overflow-x:auto; box-shadow:var(--shadow-soft); border:1px solid rgba(10,32,56,.06); -webkit-overflow-scrolling:touch; }
.compare-table{ width:100%; min-width:520px; border-collapse:collapse; margin:0; }
.compare-table th, .compare-table td{ padding:1rem 1.3rem; border-bottom:1px solid rgba(10,32,56,.06); text-align:left; font-size:.92rem; }
.compare-table thead th{ background:var(--ink); color:#fff; font-family: var(--default-font); font-weight:600; }
.compare-table tbody tr:last-child td{ border-bottom:none; }
.compare-table tbody tr:hover{ background:rgba(20,158,212,.04); }
.compare-table td i.bi-check-circle-fill{ color:var(--mint); font-size:1.05rem; }
.compare-table td i.bi-dash-circle{ color:#c2cdd6; font-size:1.05rem; }
.compare-table td.col-highlight{ background:rgba(20,158,212,.04); font-weight:600; }

/* ===== Sectores / industrias (software a medida) ===== */
.industry-card{
    background:#fff; border-radius:14px; padding:1.5rem; border:1px solid rgba(10,32,56,.07); text-align:center; height:100%;
    transition:transform .2s ease, box-shadow .2s ease;
}
.industry-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-soft); }
.industry-card i{ font-size:1.9rem; color:var(--brand-dark); margin-bottom:.7rem; display:block; }
.industry-card span{ font-size:.87rem; font-weight:600; color:var(--ink-2); }

/* ===== Stack tecnológico ===== */
.tech-pill{
    display:inline-flex; align-items:center; gap:.5rem; background:#fff; border:1px solid rgba(10,32,56,.08);
    border-radius:50px; padding:.5rem 1.1rem; font-size:.85rem; font-weight:600; color:var(--ink-2);
    box-shadow:0 4px 12px -6px rgba(10,32,56,.12);
}
.tech-pill i{ color:var(--brand); }

/* ===== Acordeón FAQ ===== */
.accordion-item{ border:1px solid rgba(10,32,56,.08) !important; border-radius:12px !important; overflow:hidden; margin-bottom:.8rem; }
.accordion-button{ font-weight:600; font-family: var(--default-font); }
.accordion-button:not(.collapsed){ color:var(--brand-dark); background:rgba(20,158,212,.06); box-shadow:none; }
.accordion-button:focus{ box-shadow:none; border-color:rgba(20,158,212,.25); }

/* ===== Footer ===== */
footer{ background:var(--ink); color:rgba(255,255,255,.78); }
footer h5{ color:#fff; font-family: var(--default-font); font-weight:700; }
footer a{ color:rgba(255,255,255,.68); }
footer a:hover{ color:var(--brand-light); }
footer .social a{
    width:36px;height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
    display:inline-flex; align-items:center; justify-content:center; margin-right:.5rem; transition:all .2s ease;
}
footer .social a:hover{ background:var(--brand); border-color:var(--brand); color:#fff; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); font-size:.85rem; }

/* ===== Botones flotantes ===== */
.floating-actions{ position:fixed; right:1.2rem; bottom:1.2rem; z-index:1050; display:flex; flex-direction:column; align-items:center; gap:.7rem; }
.btn-whats{
    width:52px;height:52px; border-radius:50%; background:#25D366; color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:1.5rem;
    box-shadow:0 10px 22px -6px rgba(37,211,102,.6); transition:transform .2s ease;
}
.btn-whats:hover{ transform:scale(1.08); color:#fff; }
.btn-to-top{
    width:46px;height:46px; border-radius:50%; background:var(--ink); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:1.1rem; border:none;
    opacity:0; visibility:hidden; transform:translateY(10px); transition:all .3s ease; cursor:pointer;
}
.btn-to-top.active{ opacity:1; visibility:visible; transform:translateY(0); }
.btn-to-top:hover{ background:var(--brand); }

/* ===== Responsive ===== */
@media (max-width: 991.98px){
    .hero{ padding-top:2rem; text-align:center; }
    .hero .lead{ margin-left:auto; margin-right:auto; }
    .hero-stats{ justify-content:center; }
    .code-window{ margin-top:2.5rem; }
    .page-hero{ text-align:center; padding-top:7.5rem; }
    .page-hero p.lead{ margin-left:auto; margin-right:auto; }
}
@media (max-width: 575.98px){
    .section{ padding:3.5rem 0; }
    .cta-box{ padding:2.2rem 1.4rem; text-align:center; }
    .floating-actions{ right:.8rem; bottom:.8rem; }
}
