  :root{
    /* Modern "tech" palette (cool blues, high-contrast navy) */
    --brand:#3B5BFF;
    --brand-2:#8AA3FF;

    
    /* Tech-cool non-black gradient system */
    --tech-dark-1:#1e3a8a;
    --tech-dark-2:#1e40af;
    --tech-dark-3:#312e81;
    --tech-glow-1:rgba(99,102,241,0.25);
    --tech-glow-2:rgba(56,189,248,0.18);
    --tech-dark-grad:
      radial-gradient(circle at 20% 20%, var(--tech-glow-1), transparent 45%),
      radial-gradient(circle at 80% 80%, var(--tech-glow-2), transparent 50%),
      linear-gradient(180deg, var(--tech-dark-1) 0%, var(--tech-dark-2) 45%, var(--tech-dark-3) 100%);
--neutral-950:#1f2a5a;
    --neutral-900:#22306b;
    --neutral-800:#2b3b7a;
    --neutral-100:#F2F6FF;

    --text:#142a54;
    --muted:#475569;

    --surface:#ffffff;
    --surface-2:#F6F8FF;

    --nav-bg:rgba(248,250,255,.72);
    --nav-border:rgba(30,58,138,.12);
    --nav-shadow:0 10px 30px rgba(30,58,138,.10);

    --footer-bg:var(--tech-dark-grad);
    --footer-fg:#ffffff;
    --pane-bg:rgba(255,255,255,.03);
    --pane-border:rgba(255,255,255,.10);

    --container:1200px;
    --gap:22px;
    --radius-sm:10px;
    --radius-md:16px;

    --modal-overlay:rgba(30,58,138,0.55);
    --modal-bg:#ffffff;
    --modal-text:#142a54;
  }

  *{box-sizing:border-box;margin:0;padding:0}
  body{
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    color:var(--text);
    background: linear-gradient(180deg, var(--neutral-100), #ffffff 38%);
    line-height:1.55;
  }

  /* ===== NAVBAR ===== */
  .navbar{ background:var(--nav-bg); backdrop-filter:saturate(160%) blur(10px); border-bottom:1px solid var(--nav-border); box-shadow:var(--nav-shadow); width:100%; z-index:1000; }
  .navbar.sticky{ position:sticky; top:0; }
  .nav-inner{
    max-width:var(--container); margin:0 auto; padding:.5rem 1rem;
    display:flex; align-items:center; justify-content:flex-start; gap:1rem;
  }
  .logo img{ height:40px; width:auto; display:block; }
  .menu{
    margin-left:auto;
    display:flex; align-items:center; gap:1.25rem; list-style:none;
    overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .menu::-webkit-scrollbar{ display:none; }
  .menu li{ position:relative; white-space:nowrap; }
  .menu a{
    position:relative; text-decoration:none; color:var(--text);
    font-weight:600; padding:.5rem .25rem;
  }
  .menu a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:3px; background:var(--brand); transition:width .28s cubic-bezier(.2,.8,.2,1);
  }
  .menu a:hover::after, .menu a:focus::after{ width:100%; }

  .nav-toggle{ display:none; background:transparent; border:0; padding:.5rem; cursor:pointer; }
  .nav-toggle span{ display:block; width:24px; height:2px; background:var(--text); position:relative; }
  .nav-toggle span::before,.nav-toggle span::after{
    content:""; position:absolute; left:0; right:0; height:2px; background:var(--text);
  }
  .nav-toggle span::before{ top:-7px; } .nav-toggle span::after{ top:7px; }

  @media (max-width:768px){
    .nav-toggle{ display:inline-flex; }
    .menu{
      position:fixed; right:0; left:0; top:56px; background:var(--brand);
      flex-direction:column; padding:.75rem 1rem; gap:.25rem; border-top:1px solid rgba(0,0,0,.08);
      max-height:0; overflow:hidden; transition:max-height .25s ease;
    }
    .menu{
      background:rgba(248,250,255,.96);
      backdrop-filter:saturate(160%) blur(12px);
    }
    .menu.open{ max-height:70vh; overflow:auto; }
    .menu a{ padding:.75rem .25rem; width:100%; display:block; color:var(--text); }
  }

  /* ===== HERO / HOME ===== */
  .hero{
    position:relative;
    padding: clamp(2rem, 4vw + 1rem, 4rem) 1rem;
    background:
      radial-gradient(900px 520px at 76% -10%, rgba(59,91,255,.18), transparent 62%),
      radial-gradient(700px 520px at 10% 14%, rgba(138,163,255,.18), transparent 60%),
      linear-gradient(135deg, #ffffff 0%, #F3F7FF 48%, #EEF3FF 100%);
    overflow:hidden;
  }
  .hero__wrap{
    max-width: var(--container);
    margin: 0 auto;
    display:grid; gap:28px;
    grid-template-columns: 1.05fr .95fr; align-items:center;
  }
  @media (max-width: 980px){
    .hero__wrap{ grid-template-columns: 1fr; }
  }
  .hero__content .eyebrow{
    display:inline-flex; align-items:center; gap:.5rem;
    font-weight:850; letter-spacing:.10em; text-transform:uppercase;
    font-size:.74rem; color:rgba(30,58,138,.90);
    background: rgba(59,91,255,.10); border:1px solid rgba(59,91,255,.22);
    padding:.38rem .65rem; border-radius:999px;
    margin-bottom:.85rem;
  }
  .hero__content h1{
    font-size: clamp(2rem, 1.4rem + 2.2vw, 3rem);
    line-height:1.12;
    margin:0 0 .6rem 0;
  }
  .hero__content .highlight{
    background: linear-gradient(90deg, var(--brand), var(--brand-2));
    -webkit-background-clip: text;
    background-clip:text;
    color: transparent;
  }
  .hero__content .subtitle{
    color:rgba(11,15,20,.78); max-width: 62ch; margin-bottom: .25rem;
  }
  .hero__cta{
    display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:.25rem 0 1rem;
  }
  .btn-secondary{
    display:inline-flex; align-items:center; gap:.4rem;
    padding:.8rem 1.1rem;
    background:#fff; color:var(--text); border:1.5px solid rgba(59,91,255,.18); border-radius:12px;
    font-weight:800; text-decoration:none;
    transition:transform .1s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .btn-secondary:hover{ transform:translateY(-1px); box-shadow:0 10px 22px rgba(30,58,138,.12); border-color:rgba(59,91,255,.28); }
  .hero__trust{
    display:flex; flex-wrap:wrap; gap:14px; list-style:none; padding:0; margin:.25rem 0 0;
    color:#2a2a2a; font-size:.95rem;
  }
  .hero__trust li{ display:flex; align-items:center; gap:.45rem; }
  .hero__trust i{ color:var(--text); opacity:.85; }
  .hero__media{
    position:relative; display:flex; justify-content:center;
  }
  .hero__media img{
    width: min(560px, 100%);
    height:auto; border-radius:18px;
    box-shadow: 0 20px 60px rgba(0,0,0,.15), 0 2px 0 rgba(0,0,0,.04) inset;
    outline: 1px solid rgba(0,0,0,.06);
    background:#fff;
  }
  .hero__marquee{
    position:absolute; left:0; right:0; bottom:0;
    display:flex; gap:28px; white-space:nowrap;
    color: rgba(0,0,0,.28); font-weight:800;
    padding:10px 0; overflow:hidden; user-select:none;
  }
  .hero__marquee span{ padding-inline: 2rem; animation: hero-marquee 20s linear infinite; }
  @keyframes hero-marquee{
    0%{ transform: translateX(0); }
    100%{ transform: translateX(-50%); }
  }
  .scroll-cue{
    position:absolute; left:50%; transform:translateX(-50%);
    bottom:14px;
    width:42px; height:42px; border-radius:50%;
    border:1.5px solid rgba(0,0,0,.15);
    background:#ffffffc9; backdrop-filter: blur(6px);
    display:grid; place-items:center; cursor:pointer;
    box-shadow:0 8px 24px rgba(0,0,0,.08);
  }
  .scroll-cue i{ font-size:.95rem; color:var(--text); }
  .scroll-cue:hover{ transform:translateX(-50%) translateY(-2px); }
  @media (max-width:640px){ .back-home{ bottom: 72px; } }

  /* ===== CONTENT (otras secciones base) ===== */
  main{ padding:2rem 1rem; max-width:var(--container); margin:0 auto; min-height:120vh; }
  section{ scroll-margin-top:72px; }
  .spacer{ height:50vh; background:linear-gradient(#fff,#f6f6f6); border-radius:12px; }

  /* ===== SOLUCIONES ===== */
  .solutions{ padding:3.5rem 1rem; background:var(--tech-dark-grad); color:#fff; }
  .solutions__wrap{ max-width:1200px; margin:0 auto; }
  .solutions__head{ text-align:center; max-width:80ch; margin:0 auto 1.75rem; }
  .solutions__head h2{ font-size:2rem; margin-bottom:.4rem; }
  .solutions__head p{ color:rgba(255,255,255,.72); }
  .solutions__grid{ display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); grid-auto-rows:220px; grid-auto-flow:dense; align-items:stretch; }
  @media (min-width: 980px){
    /* Mosaic layout */
    .solutions__grid .card:nth-child(1){ grid-column: span 2; grid-row: span 2; }
    .solutions__grid .card:nth-child(4){ grid-row: span 2; }
    .solutions__grid .card:nth-child(6){ grid-column: span 2; }
  }
  @media (max-width: 640px){
    .solutions__grid{ grid-auto-rows:auto; }
    .solutions__grid .card{ grid-column:auto; grid-row:auto; }
  }

  @media (max-width:980px){ .solutions__grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:640px){ .solutions__grid{ grid-template-columns:1fr; } }
  .solutions .card{
    background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); border-radius:16px;
    padding:20px; box-shadow:0 18px 40px rgba(0,0,0,.25);
    display:flex; flex-direction:column; gap:.6rem;
    transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s cubic-bezier(.2,.8,.2,1), border-color .18s ease;
  }
  .solutions .card:hover{ transform:translateY(-3px); box-shadow:0 26px 60px rgba(0,0,0,.32); border-color:rgba(138,163,255,.28); }
  .solutions .card .icon{
    width:44px; height:44px; border-radius:14px; display:grid; place-items:center;
    background:rgba(59,91,255,.10); border:1px solid rgba(59,91,255,.22);
    color:#fff; font-size:1.2rem;
  }
  .solutions .card h3{ font-size:1.05rem; margin-top:.25rem; }
  .solutions .card p{ color:rgba(255,255,255,.70); }
  .solutions .card .bullets{ margin:.25rem 0 0 1rem; color:rgba(255,255,255,.80); }
  .solutions .card .bullets li{ margin:.25rem 0; }
  .solutions__cta{ margin-top:20px; text-align:center; display:flex; flex-direction:column; gap:.4rem; align-items:center; }
  .solutions .btn-primary{ display:inline-flex; align-items:center; justify-content:center; background:#E01A59; color:#ffffff; font-weight:800; padding:12px 22px; border-radius:999px; text-decoration:none; border:none; box-shadow:0 12px 30px rgba(0,0,0,.22); transition: transform .15s ease, filter .15s ease; }.btn-primary:hover{ filter:brightness(1.05); transform:translateY(-1px); }

  /* ===== FOOTER (floating & responsive) ===== */
  footer{ background:var(--footer-bg); color:var(--footer-fg); padding:24px 16px; }
  .footer-wrap{
    max-width:var(--container); margin:0 auto;
    display:grid; gap:var(--gap);
    grid-template-columns:auto 1fr;
    grid-template-areas:"brand center";
    align-items:start;
  }
  .footer-brand{ grid-area:brand; display:flex; align-items:center; gap:16px; min-width:160px; }
  .footer-brand img{ height:64px; width:auto; border-radius:50%; display:block; }
  .social{ display:flex; gap:14px; flex-wrap:wrap; }
  .social a{ color:#fff; font-size:1.15rem; opacity:.9; transition:opacity .2s; }
  .social a:hover{ opacity:1; }

  .footer-center{
    grid-area:center;
    display:grid; gap:var(--gap);
    grid-template-columns:1fr 1.2fr;     /* Legal | Suscripción (desktop) */
    grid-template-areas:"legal sub";
    align-items:start;
  }
  .legal-card{
    grid-area:legal;
    background:var(--pane-bg);
    border:1px solid var(--pane-border);
    border-radius:var(--radius-sm);
    padding:12px 14px;
  }
  .legal-card h4{ margin:0 0 .5rem 0; font-size:.95rem; font-weight:800; }
  #footer-legal-text{
    white-space:pre-line; line-height:1.35; font-size:.9rem;
    overflow:hidden; text-wrap:pretty;   /* sin scrollbars */
  }

  .sub-block{ grid-area:sub; display:flex; flex-direction:column; gap:12px; min-width:260px; }
  .sub-head{
    background:linear-gradient(90deg, var(--brand), var(--brand-2)); color:#fff; font-weight:800;
    padding:14px 16px;
    border-radius:var(--radius-md);
    text-align:center;
    box-shadow:0 4px 18px rgba(0,0,0,.25);
  }
  .sub-form{
    display:flex; align-items:center; background:#fff; border-radius:999px; padding:4px; gap:8px;
  }
  .sub-form input{
    flex:1; border:none; background:transparent; outline:none;
    font-size:.95rem; padding:.8rem 1rem; color:var(--text); min-width:0;
  }
  .sub-form button{
    border:none; background:var(--brand); color:#fff;
    width:44px; height:44px; border-radius:50%; cursor:pointer;
    display:grid; place-items:center; font-size:1rem; transition:transform .15s ease;
  }
  .sub-form button:hover{ transform:translateY(-1px); }

  @media (max-width:1100px){
    .footer-center{ grid-template-columns:1fr; grid-template-areas:"legal" "sub"; }
  }
  @media (max-width:720px){
    .footer-wrap{
      grid-template-columns:1fr;
      grid-template-areas:"brand" "center";
      align-items:center;
    }
    .footer-brand img{ height:56px; }
    .sub-head{ font-size:.95rem; padding:12px 14px; }
    .sub-form input{ padding:.75rem 1rem; }
  }
  @media (max-width:480px){
    .social{ gap:12px; }
    .sub-head{ font-size:.9rem; }
    .sub-form button{ width:42px; height:42px; }
  }

  /* ===== Back-to-Home Button ===== */
  .back-home{
    position:fixed; right:calc(16px + env(safe-area-inset-right));
    bottom:calc(16px + env(safe-area-inset-bottom));
    z-index:1500;
    width:48px; height:48px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--brand); color:#fff; border:2px solid rgba(255,255,255,.85);
    box-shadow:0 10px 28px rgba(0,0,0,.35);
    cursor:pointer;
    opacity:0; pointer-events:none; transform:translateY(8px);
    transition:opacity .25s ease, transform .25s ease;
  }
  .back-home.show{ opacity:1; pointer-events:auto; transform:translateY(0); }
  .back-home i{ font-size:1.1rem; }

  /* ===== CONTACT MODAL ===== */
  .overlay{ position:fixed; inset:0; background:var(--modal-overlay); display:none; z-index:2000; }
  .contact-modal{
    position:fixed; inset:0; display:none; z-index:2001;
    align-items:center; justify-content:center; padding:24px;
  }
  .contact-dialog{
    background:var(--modal-bg); color:var(--modal-text);
    max-width:900px; width:100%; max-height:86vh;
    border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.35);
    display:grid; grid-template-columns:1fr .8fr; gap:0; overflow:hidden;
  }
  .contact-dialog__left{ padding:18px; overflow:auto; }
  .contact-dialog__right{ background:#f7f9fa; padding:16px; overflow:auto; border-left:1px solid #e9eef2; }
  .contact-dialog__head{
    display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem;
  }
  .contact-title{ font-weight:800; font-size:1.25rem; }
  .contact-close{ border:none; background:transparent; font-size:1.2rem; cursor:pointer; padding:.25rem .4rem; border-radius:8px; }
  .contact-close:hover{ background:#f1f1f1; }

  @media (max-width:920px){
    .contact-dialog{ grid-template-columns:1fr; max-width:720px; }
    .contact-dialog__right{ border-left:none; border-top:1px solid #e9eef2; }
  }
  @media (max-width:520px){
    .contact-dialog{ padding:0; border-radius:14px; }
  }

  /* ===== CONTACT FORM ===== */
  .contact-form .row{
    display:grid; gap:16px; grid-template-columns:1fr 1fr; margin-bottom:14px;
  }
  .contact-form .row .full{ grid-column:1 / -1; }
  @media (max-width:720px){ .contact-form .row{ grid-template-columns:1fr; } }

  .contact-form label{ display:block; font-weight:700; font-size:.9rem; margin-bottom:.4rem; }
  .contact-form input,
  .contact-form select,
  .contact-form textarea{
    width:100%; border:1px solid #e9eef2; border-radius:12px; padding:.8rem .9rem;
    font:inherit; color:var(--text); background:#fff; outline:none;
    transition:border-color .2s, box-shadow .2s;
  }
  .contact-form textarea{ resize:vertical; min-height:140px; }
  .contact-form input:focus,
  .contact-form select:focus,
  .contact-form textarea:focus{
    border-color:var(--brand); box-shadow:0 0 0 3px rgba(59,91,255,.18);
  }
  .contact-form .chk{ display:flex; align-items:flex-start; gap:.6rem; font-size:.9rem; line-height:1.35; }
  .contact-form .chk input{ transform:translateY(.2rem); }

  .btn-primary{
    display:inline-flex; align-items:center; gap:.5rem;
    padding:.8rem 1.1rem; background:var(--brand); color:#fff; border:none; border-radius:12px;
    font-weight:800; cursor:pointer; box-shadow:0 10px 22px rgba(59,91,255,.22);
    transition:transform .1s ease, box-shadow .2s ease;
  }
  .btn-primary:hover{ transform:translateY(-1px); box-shadow:0 14px 28px rgba(59,91,255,.26); }
  .error{ display:block; color:#b00020; font-size:.8rem; margin-top:.35rem; }
  .is-invalid{ border-color:#b00020 !important; box-shadow:0 0 0 3px rgba(176,0,32,.15) !important; }

  /* ===== CONTACT INFO (derecha) ===== */
  .contact-info .card{ background:#ffffff; border:1px solid #e9eef2; border-radius:12px; padding:14px; margin-bottom:12px; }
  .contact-info h3{ margin:0 0 .5rem 0; font-size:1.05rem; }
  .contact-info ul{ list-style:none; padding:0; margin:0; }
  .contact-info li{ display:flex; align-items:center; gap:.6rem; margin:.25rem 0; }
  .contact-info i{ width:18px; text-align:center; color:#1f1f1f; }
  .contact-info a{ color:#1f1f1f; text-decoration:none; border-bottom:1px dotted transparent; }
  .contact-info a:hover{ border-bottom-color:#1f1f1f; }

  /* ===== PRIVACY MODAL ===== */
  .modal-overlay{ position:fixed; inset:0; background:var(--modal-overlay); display:none; z-index:3000; }
  .modal{ position:fixed; inset:0; display:none; z-index:3001; align-items:center; justify-content:center; padding:24px; }
  .modal__dialog{
    background:var(--modal-bg); color:var(--modal-text);
    max-width:800px; width:100%; max-height:80vh;
    border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.35);
    display:flex; flex-direction:column; overflow:hidden;
  }
  .modal__header{ display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid #eaeaea; }
  .modal__title{ font-weight:700; font-size:1.05rem; }
  .modal__close{ appearance:none; border:none; background:transparent; cursor:pointer; font-size:1.25rem; line-height:1; padding:6px; border-radius:8px; }
  .modal__close:hover{ background:#f4f4f4; }
  .modal__body{ padding:16px 20px; overflow:auto; line-height:1.45; }

  body.modal-open{ overflow:hidden; }

/* Small helpers */
.hero a{ text-decoration:none; }

/* === Solution cards: image + hover overlay === */
.solutions .card-image{
  padding:0; overflow:hidden; border-radius:14px;
}
.card-figure{ position:relative; margin:0; line-height:0; }
  .solutions__grid .card{ height:100%; }
  .card-image .card-figure{ height:100%; }
  .card-image .card-figure img{ width:100%; height:100%; object-fit:cover; }
  .card-image h3{ color:#fff; margin:12px 0 0; font-size:1rem; }

.card-figure img{
  display:block; width:100%; height:auto; object-fit:cover;
  transition: transform .45s ease, filter .45s ease;
}
.card-overlay{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:12px; padding:18px; background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.36)); opacity:0; transition: opacity .25s ease; }
  .card-title{ font-weight:900; font-size:1.08rem; text-align:center; padding:10px 14px; border-radius:14px; max-width:92%; line-height:1.15; background: var(--overlay-pill-bg, rgba(255,255,255,.78)); color: var(--overlay-title-color, #455A64); box-shadow: 0 10px 28px rgba(0,0,0,.18); }

.solutions .card-image:hover .card-figure img{ transform:scale(1.05); filter:saturate(1.05); }
.solutions .card-image:hover .card-overlay{ opacity:1; }

/* Title below image */
.solutions .card-image h3{
  font-size:1rem; padding:12px 14px 14px; margin:0; color:var(--text);
}

/* Card shadow and border */
.solutions .card-image{
  border:1px solid #e0e0e0;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
  transition: box-shadow .3s ease, transform .3s ease;
}
.solutions .card-image:hover{
  box-shadow:0 8px 20px rgba(30,58,138,.14);
  transform:translateY(-2px);
}

/* Ver más button */
.btn-viewmore{ display:inline-flex; align-items:center; justify-content:center; background:#E01A59; color:#ffffff; font-weight:800; padding:9px 16px; border-radius:999px; text-decoration:none; border:none; box-shadow: 0 10px 26px rgba(0,0,0,.18); transition: transform .15s ease, filter .15s ease; }.btn-viewmore:hover{ filter: brightness(1.05); transform: translateY(-1px); }
.btn-viewmore:hover{
  background:#2F4BFF;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(59,91,255,.22);
}
.card-overlay{
  grid-auto-rows:min-content;
  align-content:center;
  gap:10px;
}

/* Solutions card overlay button placement */
.card-overlay{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:center;
  padding:16px;
  gap:12px;
}
.card-title{ margin-bottom:auto; }
.btn-viewmore{ margin-top:auto; }

/* Soluciones - Botón Solicitar demo (inherits .btn-primary) */

/* ===== QUIÉNES SOMOS (Redesign) ===== */
section.about{ padding:3rem 1rem; background:var(--surface-2); color:var(--text); }
.about__wrap{
  max-width:var(--container); margin:0 auto;
  display:grid; gap:28px; grid-template-columns:1.15fr .85fr; align-items:stretch;
}
@media (max-width:980px){ .about__wrap{ grid-template-columns:1fr; } }

.about__content h2{ font-size:2rem; margin-bottom:.5rem; }
.about__lead{
  color:var(--muted); font-size:1.05rem; margin-bottom:1rem;
  max-width:70ch;
}
.about__subtitle{ font-size:1.05rem; margin:.5rem 0 .35rem; color:var(--text); }

.about__values{
  list-style:none; padding:0; margin:0 0 1rem 0; display:grid; gap:.5rem;
}
.about__values li{
  display:flex; align-items:flex-start; gap:.6rem;
  position:relative; padding-left:1.5rem;
}
.about__values li::before{
  content:""; width:10px; height:10px; border-radius:50%;
  background:var(--brand); position:absolute; left:0; top:.4rem;
  box-shadow:0 0 0 4px rgba(59,91,255,.15);
}

.about__stats{
  margin-top:.5rem; display:grid; gap:14px;
  grid-template-columns:repeat(4, minmax(110px,1fr));
}
@media (max-width:720px){ .about__stats{ grid-template-columns:repeat(2,1fr); } }
.about__stats .stat{
  background:#fff; border:1px solid #e9eef2; border-radius:14px;
  padding:14px; text-align:center; box-shadow:0 8px 18px rgba(0,0,0,.04);
}
.about__stats .stat strong{ display:block; font-size:1.4rem; line-height:1.15; }
.about__stats .stat small{ color:#555; }

.about__visual{
  position:relative;
  border-radius:16px; overflow:hidden;
  background: radial-gradient(600px 300px at 80% -20%, rgba(59,91,255,.20), transparent 55%),
              linear-gradient(180deg, #ffffff, #eef5ff);
  border:1px solid #dde6f0;
  box-shadow:0 18px 40px rgba(30,58,138,.08);
  display:flex; align-items:flex-end; justify-content:flex-start;
  min-height:320px;
}
.about__quote{
  background:#3B5BFF; color:#fff; font-weight:800;
  padding:12px 16px; margin:16px; border-radius:12px;
  box-shadow:0 10px 22px rgba(30,58,138,.14);
}

.about__visual img{
  display:block; width:100%; height:auto; object-fit:cover;
}

/* Responsive adjustments for Quienes Somos visual */
.about__visual img{
  display:block;
  width:100%;
  height:auto;
  max-width:500px;
  margin:0 auto;
}
@media (max-width:720px){
  .about__visual{
    display:flex;
    justify-content:center;
    align-items:center;
    padding:1rem 0;
  }
  .about__visual img{
    max-width:90%;
  }
}

/* Remove frame and set background for Quienes Somos */
section.about{
  padding:3rem 1rem;
  background:#F8F9FB !important;
  color:var(--text);
  border:none !important;
  box-shadow:none !important;
}
.about__visual{
  border:none !important;
  box-shadow:none !important;
  background:none !important;
}

/* Ensure Quienes Somos background spans screen-wide */
section.about{
  width:100%;
  background-color:#F8F9FB !important;
  margin:0;
  padding:3rem 1rem;
  color:var(--text);
}
/* Make contact modal fully scrollable on small screens */
@media (max-width: 640px) {
  .contact-dialog {
    max-height: 100vh;       /* use the full viewport height */
    height: 100%;            /* fill the available space */
    overflow-y: auto;        /* enable vertical scrolling */
    border-radius: 0;        /* remove rounded corners for full screen */
  }

  .contact-dialog__left,
  .contact-dialog__right {
    max-height: none;        /* remove per-panel height restrictions */
    overflow: visible;       /* let the parent container handle scrolling */
  }
}



/* ===== NAV ACTIONS ===== */
.nav-actions{ margin-left:auto; display:flex; align-items:center; gap:10px; }
.btn-nav{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.6rem .95rem; border-radius:999px;
  background:var(--text); color:#fff; text-decoration:none;
  font-weight:700; letter-spacing:.01em;
  transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s cubic-bezier(.2,.8,.2,1), background .18s ease;
  box-shadow:0 10px 20px rgba(30,58,138,.14);
  white-space:nowrap;
}
.btn-nav:hover, .btn-nav:focus{ transform:translateY(-2px); box-shadow:0 16px 30px rgba(30,58,138,.18); background:#1e3a8a; }
@media (max-width: 860px){
  .nav-actions{ display:none; }
}

/* ===== TYPOGRAPHY TUNING ===== */
h1,h2,h3{ letter-spacing:-.02em; }
.section-head{ text-align:center; max-width:84ch; margin:0 auto 1.75rem; }
.section-head p{ color:rgba(255,255,255,.72); }
.proof{ margin-top:.65rem; color:var(--muted); font-weight:650; letter-spacing:.02em; }


/* ===== PLATFORM SECTION ===== */
.platform{
  padding:3.75rem 1rem;
  background:
    radial-gradient(900px 520px at 85% 0%, rgba(59,91,255,.10), transparent 60%),
    radial-gradient(900px 520px at 15% 10%, rgba(138,163,255,.12), transparent 60%),
    linear-gradient(180deg, #1e3a8a, #1e40af);
  color:#fff;
}
.platform__wrap{ max-width:var(--container); margin:0 auto; }
.platform .section-head h2{ font-size:clamp(1.7rem, 1.2rem + 1.6vw, 2.4rem); margin-bottom:.5rem; }
.platform .section-head p{ color:rgba(255,255,255,.72); }

.platform__grid{
  display:grid; gap:18px;
  grid-template-columns:repeat(3,1fr);
  margin-top:1.25rem;
}
@media (max-width:980px){ .platform__grid{ grid-template-columns:1fr; } }

.pcard{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  padding:22px;
  box-shadow:0 18px 46px rgba(0,0,0,.28);
  transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s cubic-bezier(.2,.8,.2,1), border-color .18s ease;
}
.pcard:hover{ transform:translateY(-3px); box-shadow:0 26px 70px rgba(0,0,0,.35); border-color:rgba(138,163,255,.28); }

.picon{
  width:46px; height:46px; border-radius:16px;
  display:grid; place-items:center;
  background:rgba(59,91,255,.10);
  border:1px solid rgba(59,91,255,.22);
  margin-bottom:.9rem;
  font-size:1.25rem;
}
.pcard h3{ margin-bottom:.35rem; font-size:1.1rem; }
.pcard p{ color:rgba(255,255,255,.72); }

.trust-strip{
  margin-top:18px;
  display:flex; gap:14px; flex-wrap:wrap; align-items:center; justify-content:center;
  padding:16px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
}
.trust-item{
  display:flex; align-items:center; gap:.55rem;
  color:rgba(255,255,255,.85);
  font-weight:650;
  padding:.2rem .4rem;
}
.trust-item i{ color:rgba(138,163,255,.95); }


/* ===== FOOTER TAGLINE ===== */
.footer__tagline{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:14px 14px 18px 14px;
  border-bottom:1px solid rgba(255,255,255,.10);
  margin-bottom:14px;
}
.footer__tagline p{ color:rgba(255,255,255,.78); margin:0; max-width:70ch; }
.footer__tagline strong{ color:#fff; }
@media (max-width:760px){
  .footer__tagline{ flex-direction:column; align-items:flex-start; border-radius:14px; }
}

/* ===== Scroll progress bar styles (moved from inline) ===== */
  :root{
    --navbar-h: 56px;   /* altura del navbar; se ajusta vía JS */
    --progress-h: 3px;  /* grosor de la barra */
  }
  .progress-host{
    position: fixed;
    left: 0;
    top: var(--navbar-h);
    width: 100%;
    height: var(--progress-h);
    z-index: 9999; /* por encima del navbar */
    pointer-events: none;
    background: rgba(0,0,0,.08); /* pista visible aun con 0% */
    backdrop-filter: saturate(120%);
  }
  .progress-bar{
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #3b82f6, #60a5fa); /* azul degradado */
    transition: width .08s linear;
    will-change: width;
    box-shadow: 0 0 6px rgba(59,130,246,0.7); /* sombra luminosa azul */
  }


/* ===== Detalle ampliado de soluciones ===== */
.solution-deep{
  padding:3.5rem 1rem;
  background:linear-gradient(180deg,#ffffff 0%,#f6f8ff 100%);
  border-radius:22px;
  margin:2rem 0;
}
.solution-deep__wrap{max-width:1200px;margin:0 auto;}
.solution-deep__head{text-align:center;max-width:86ch;margin:0 auto 1.8rem;}
.solution-deep__head h2{font-size:clamp(1.7rem,1.2rem + 1.4vw,2.3rem);margin-bottom:.55rem;}
.solution-deep__head p{color:var(--muted);font-size:1.02rem;}
.solution-deep__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.solution-panel{background:#fff;border:1px solid rgba(59,91,255,.14);border-radius:18px;padding:1.25rem;box-shadow:0 12px 34px rgba(30,58,138,.08);}
.solution-panel h3{display:flex;align-items:center;gap:.55rem;margin-bottom:.65rem;color:var(--text);}
.solution-panel ul{padding-left:1.1rem;color:var(--muted);}
.solution-panel li{margin:.45rem 0;}
.solution-flow{margin-top:22px;background:var(--tech-dark-grad);color:#fff;border-radius:20px;padding:1.4rem;}
.solution-flow h3{margin-bottom:1rem;}
.solution-flow__steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.solution-step{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:1rem;}
.solution-step strong{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:999px;background:#fff;color:var(--text);margin-bottom:.55rem;}
.solution-step p{color:rgba(255,255,255,.82);font-size:.96rem;}
@media(max-width:900px){.solution-deep__grid,.solution-flow__steps{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.solution-deep__grid,.solution-flow__steps{grid-template-columns:1fr;}.solution-deep{padding:2.25rem 1rem;}}
