/* ══════════════════════════════════════════════════════
   RANKING PAGES - CSS3 Moderno + Responsive
   Paleta: Azul profundo / Dorado / Blanco
   ══════════════════════════════════════════════════════ */

:root {
  --blue-deep:   #0a1f44;
  --blue-mid:    #1a3a6b;
  --blue-vivid:  #1757c2;
  --blue-bright: #2d7ef0;
  --blue-light:  #e8f1fd;
  --gold:        #e8a020;
  --gold-light:  #fef3dc;
  --white:       #ffffff;
  --gray-bg:     #f4f6fb;
  --gray-text:   #5a6a82;
  --text-dark:   #0d1b35;
  --radius:      10px;
  --shadow:      0 8px 32px rgba(10,31,68,.12);
  --shadow-hover:0 16px 48px rgba(10,31,68,.2);
  --transition:  .25s ease;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--text-dark);background:var(--white);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}

/* ── FONTS ── */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@300;400;500;600&display=swap');

/* ── NAVBAR ── */
.rk-nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:64px;background:rgba(10,31,68,.97);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid rgba(255,255,255,.07);transition:box-shadow .3s}
.rk-nav.scrolled{box-shadow:0 4px 24px rgba(0,0,0,.4)}
.rk-logo{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.4rem;color:var(--white);letter-spacing:.04em}
.rk-logo span{color:var(--gold)}
.rk-nav-links{display:flex;gap:1.8rem;list-style:none}
.rk-nav-links a{color:rgba(255,255,255,.75);font-size:.85rem;font-weight:500;letter-spacing:.03em;transition:color var(--transition)}
.rk-nav-links a:hover{color:var(--gold)}
.rk-nav-cta{background:var(--blue-bright)!important;color:var(--white)!important;padding:.4rem 1rem;border-radius:6px;transition:background var(--transition)!important}
.rk-nav-cta:hover{background:var(--gold)!important;color:var(--blue-deep)!important}
.rk-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.rk-burger span{display:block;width:22px;height:2px;background:var(--white);border-radius:2px;transition:.3s}
.rk-mob-nav{display:none;position:fixed;inset:0;z-index:999;background:var(--blue-deep);flex-direction:column;align-items:center;justify-content:center;gap:2rem}
.rk-mob-nav.open{display:flex}
.rk-mob-nav a{font-family:'Barlow Condensed',sans-serif;font-size:1.9rem;font-weight:700;color:var(--white);text-transform:uppercase}
.rk-mob-close{position:absolute;top:1.5rem;right:2rem;background:none;border:none;color:var(--white);font-size:2rem;cursor:pointer}

/* ── HERO ── */
.rk-hero{min-height:52vh;background:linear-gradient(135deg,var(--blue-deep) 0%,var(--blue-mid) 60%,#0e3a6b 100%);display:flex;align-items:flex-end;padding:100px 5vw 3rem;position:relative;overflow:hidden}
.rk-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 90% 40%,rgba(45,126,240,.15),transparent 70%)}
.rk-hero-inner{position:relative;max-width:800px}
.rk-breadcrumb{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem;font-size:.78rem;color:rgba(255,255,255,.55)}
.rk-breadcrumb a{color:rgba(255,255,255,.55);transition:color var(--transition)}
.rk-breadcrumb a:hover{color:var(--gold)}
.rk-breadcrumb span{color:rgba(255,255,255,.3)}
.rk-hero-label{display:inline-block;background:rgba(232,160,32,.15);border:1px solid rgba(232,160,32,.4);color:var(--gold);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .8rem;border-radius:100px;margin-bottom:1rem}
.rk-hero h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(2.2rem,5vw,3.8rem);font-weight:800;color:var(--white);line-height:1.05;text-transform:uppercase;letter-spacing:.02em;margin-bottom:1rem}
.rk-hero h1 em{color:var(--blue-bright);font-style:normal}
.rk-hero-desc{font-size:.98rem;color:rgba(255,255,255,.7);max-width:620px;line-height:1.7}

/* ── LAYOUT ── */
.rk-container{max-width:1160px;margin:0 auto;padding:0 5vw}
.rk-section{padding:70px 0}
.rk-section-alt{background:var(--gray-bg)}
.rk-section-dark{background:var(--blue-deep);color:var(--white)}

.rk-section-head{text-align:center;margin-bottom:3rem}
.rk-section-label{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-bright);margin-bottom:.6rem}
.rk-section-dark .rk-section-label{color:var(--gold)}
.rk-section-title{font-family:'Barlow Condensed',sans-serif;font-size:clamp(1.7rem,3.5vw,2.5rem);font-weight:800;text-transform:uppercase;color:var(--blue-deep);line-height:1.1}
.rk-section-dark .rk-section-title{color:var(--white)}
.rk-section-sub{font-size:.95rem;color:var(--gray-text);max-width:600px;margin:.8rem auto 0;line-height:1.7}
.rk-section-dark .rk-section-sub{color:rgba(255,255,255,.65)}

/* ── RANKING GRID ── */
.rk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1.6rem}

/* ── COMPANY CARD ── */
.rk-card{background:var(--white);border-radius:var(--radius);overflow:hidden;border:1px solid #e2e8f0;box-shadow:var(--shadow);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);display:flex;flex-direction:column}
.rk-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);border-color:var(--blue-bright)}

.rk-card-rank{position:absolute;top:12px;left:12px;z-index:2;width:36px;height:36px;background:var(--blue-deep);color:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:800}
.rk-card-rank.gold{background:var(--gold);color:var(--blue-deep)}
.rk-card-rank.silver{background:#94a3b8;color:var(--white)}
.rk-card-rank.bronze{background:#cd7f32;color:var(--white)}

.rk-card-map{position:relative;height:200px;overflow:hidden;background:#dde3ee}
.rk-card-map iframe{width:100%;height:100%;border:0}
.rk-card-map img{width:100%;height:100%;object-fit:cover}

.rk-card-body{padding:1.3rem;flex:1;display:flex;flex-direction:column;gap:.6rem}
.rk-card-name{font-family:'Barlow Condensed',sans-serif;font-size:1.15rem;font-weight:700;color:var(--blue-deep);text-transform:uppercase;line-height:1.2}
.rk-card-name a{color:inherit;transition:color var(--transition)}
.rk-card-name a:hover{color:var(--blue-bright)}
.rk-card-desc{font-size:.87rem;color:var(--gray-text);line-height:1.65;flex:1}
.rk-card-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;color:var(--blue-vivid);background:var(--blue-light);padding:.25rem .7rem;border-radius:100px;align-self:flex-start}
.rk-card-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--blue-bright);margin-top:.4rem;transition:color var(--transition)}
.rk-card-link:hover{color:var(--gold)}
.rk-card-link::after{content:'→'}

/* ── INFO SECTION ── */
.rk-info-grid{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:start}
.rk-prose h2{font-family:'Barlow Condensed',sans-serif;font-size:1.8rem;font-weight:800;color:var(--blue-deep);text-transform:uppercase;margin-bottom:1rem}
.rk-prose p{color:var(--gray-text);line-height:1.8;margin-bottom:1rem;font-size:.95rem}
.rk-prose ul{list-style:none;margin:1rem 0;display:flex;flex-direction:column;gap:.55rem}
.rk-prose ul li{display:flex;align-items:flex-start;gap:.7rem;font-size:.9rem;color:var(--text-dark)}
.rk-prose ul li::before{content:'✓';display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--blue-bright);color:var(--white);border-radius:50%;font-size:.65rem;font-weight:700;flex-shrink:0;margin-top:3px}

/* ── SIDEBAR ── */
.rk-sidebar{display:flex;flex-direction:column;gap:1.2rem}
.rk-sidebar-box{background:var(--gray-bg);border-radius:var(--radius);padding:1.5rem;border:1px solid #e2e8f0}
.rk-sidebar-title{font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:800;color:var(--blue-deep);text-transform:uppercase;margin-bottom:1rem;letter-spacing:.04em}
.rk-sidebar-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}
.rk-sidebar-list li a{font-size:.87rem;color:var(--gray-text);display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid #e8edf5;transition:color var(--transition)}
.rk-sidebar-list li:last-child a{border-bottom:none}
.rk-sidebar-list li a::before{content:'›';color:var(--blue-bright);font-weight:700}
.rk-sidebar-list li a:hover{color:var(--blue-bright)}
.rk-sidebar-cta{background:var(--blue-deep);border-radius:var(--radius);padding:1.5rem;text-align:center}
.rk-sidebar-cta p{color:rgba(255,255,255,.7);font-size:.85rem;margin-bottom:1rem}
.rk-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:6px;font-weight:600;font-size:.9rem;transition:background var(--transition),transform .15s;cursor:pointer;text-decoration:none}
.rk-btn-primary{background:var(--blue-bright);color:var(--white)}
.rk-btn-primary:hover{background:var(--gold);color:var(--blue-deep);transform:translateY(-2px)}
.rk-btn-gold{background:var(--gold);color:var(--blue-deep)}
.rk-btn-gold:hover{background:#d4901a;transform:translateY(-2px)}

/* ── STATS BAR ── */
.rk-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--blue-deep);border-radius:var(--radius);overflow:hidden}
.rk-stat{padding:1.5rem;text-align:center;border-right:1px solid rgba(255,255,255,.08)}
.rk-stat:last-child{border-right:none}
.rk-stat-num{font-family:'Barlow Condensed',sans-serif;font-size:2.2rem;font-weight:800;color:var(--gold);line-height:1}
.rk-stat-lbl{font-size:.72rem;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.07em;margin-top:.3rem}

/* ── RELATED LINKS ── */
.rk-related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.rk-related-card{background:var(--blue-mid);border-radius:8px;padding:1.2rem 1.4rem;color:var(--white);transition:background var(--transition),transform var(--transition)}
.rk-related-card:hover{background:var(--blue-vivid);transform:translateY(-3px)}
.rk-related-card h4{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:700;text-transform:uppercase;margin-bottom:.3rem}
.rk-related-card p{font-size:.78rem;color:rgba(255,255,255,.6)}

/* ── FOOTER ── */
.rk-footer{background:var(--text-dark);padding:2rem 5vw;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.78rem;color:rgba(255,255,255,.45)}
.rk-footer-logo{font-family:'Barlow Condensed',sans-serif;font-size:1.1rem;font-weight:800;color:var(--white)}
.rk-footer-logo span{color:var(--gold)}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .rk-nav-links{display:none}
  .rk-burger{display:flex}
  .rk-info-grid{grid-template-columns:1fr}
  .rk-stats{grid-template-columns:repeat(2,1fr)}
  .rk-stat{border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}
  .rk-stat:nth-child(odd){border-right:1px solid rgba(255,255,255,.08)}
  .rk-stat:nth-last-child(-n+2){border-bottom:none}
}
@media(max-width:580px){
  .rk-grid{grid-template-columns:1fr}
  .rk-stats{grid-template-columns:1fr 1fr}
  .rk-related-grid{grid-template-columns:1fr 1fr}
  .rk-hero{min-height:45vh;padding:90px 5vw 2.5rem}
}

/* ── ANIMATIONS ── */
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.fade-up.visible{opacity:1;transform:none}

/* ── CARD POSITION RELATIVE ── */
.rk-card-wrap{position:relative}
 *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --blue-deep:   #0a1f44;
      --blue-mid:    #1a3a6b;
      --blue-vivid:  #1757c2;
      --blue-bright: #2d7ef0;
      --blue-light:  #e8f1fd;
      --gold:        #e8a020;
      --white:       #ffffff;
      --gray-light:  #f4f6fb;
      --gray-text:   #5a6a82;
      --text-dark:   #0d1b35;
      --radius:      6px;
      --shadow:      0 8px 40px rgba(10,31,68,.13);
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'DM Sans', sans-serif;
      color: var(--text-dark);
      background: var(--white);
      line-height: 1.65;
      -webkit-font-smoothing: antialiased;
    }

    /* ── NAVBAR ───────────────────────────────────── */
    nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 5vw;
      height: 70px;
      background: rgba(10,31,68,.97);
      backdrop-filter: blur(8px);
      border-bottom: 1px solid rgba(255,255,255,.07);
      transition: box-shadow .3s;
    }
    nav.scrolled { box-shadow: 0 4px 24px rgba(0,0,0,.35); }

    .nav-logo {
      font-family: 'Barlow Condensed', sans-serif;
      font-weight: 800; font-size: 1.55rem;
      color: var(--white); text-decoration: none; letter-spacing: .04em;
    }
    .nav-logo span { color: var(--gold); }

    .nav-links { display: flex; gap: 2rem; list-style: none; }
    .nav-links a {
      color: rgba(255,255,255,.78); text-decoration: none;
      font-size: .88rem; font-weight: 500; letter-spacing: .03em;
      transition: color .2s;
    }
    .nav-links a:hover { color: var(--gold); }

    .nav-cta {
      background: var(--blue-bright); color: var(--white) !important;
      padding: .45rem 1.1rem; border-radius: var(--radius);
      transition: background .2s !important;
    }
    .nav-cta:hover { background: var(--gold) !important; color: var(--blue-deep) !important; }

    .burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
    .burger span { display: block; width: 24px; height: 2px; background: var(--white); border-radius: 2px; transition: .3s; }

    /* ── HERO ─────────────────────────────────────── */
    #hero {
      min-height: 100vh;
      background: linear-gradient(135deg, var(--blue-deep) 0%, var(--blue-mid) 55%, #0e3366 100%);
      display: flex; align-items: center;
      position: relative; overflow: hidden;
      padding: 120px 5vw 80px;
    }
    #hero::before {
      content: '';
      position: absolute; inset: 0;
      background:
        radial-gradient(ellipse 70% 60% at 80% 50%, rgba(45,126,240,.18) 0%, transparent 70%),
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }

    .hero-inner { position: relative; max-width: 680px; }

    .hero-badge {
      display: inline-block;
      background: rgba(232,160,32,.15);
      border: 1px solid rgba(232,160,32,.4);
      color: var(--gold);
      font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
      padding: .35rem .9rem; border-radius: 100px; margin-bottom: 1.5rem;
    }

    .hero-title {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: clamp(2.8rem, 6vw, 5rem);
      font-weight: 800; line-height: 1.05;
      color: var(--white); margin-bottom: 1.4rem;
      text-transform: uppercase; letter-spacing: .02em;
    }
    .hero-title em { color: var(--blue-bright); font-style: normal; }

    .hero-sub {
      font-size: 1.05rem; color: rgba(255,255,255,.72);
      max-width: 520px; margin-bottom: 2.4rem;
    }

    .hero-buttons { display: flex; gap: 1rem; flex-wrap: wrap; }

    .btn-primary {
      display: inline-flex; align-items: center; gap: .5rem;
      background: var(--blue-bright); color: var(--white);
      padding: .85rem 2rem; border-radius: var(--radius);
      font-weight: 600; font-size: .95rem; text-decoration: none;
      transition: background .2s, transform .15s;
    }
    .btn-primary:hover { background: var(--gold); color: var(--blue-deep); transform: translateY(-2px); }

    .btn-outline {
      display: inline-flex; align-items: center; gap: .5rem;
      border: 2px solid rgba(255,255,255,.35); color: var(--white);
      padding: .85rem 2rem; border-radius: var(--radius);
      font-weight: 600; font-size: .95rem; text-decoration: none;
      transition: border-color .2s, background .2s;
    }
    .btn-outline:hover { border-color: var(--white); background: rgba(255,255,255,.08); }

    .hero-stats {
      display: flex; gap: 2.5rem; margin-top: 3.5rem;
      border-top: 1px solid rgba(255,255,255,.1); padding-top: 2rem;
    }
    .hero-stat-num {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 2.2rem; font-weight: 800; color: var(--gold); line-height: 1;
    }
    .hero-stat-lbl { font-size: .78rem; color: rgba(255,255,255,.55); margin-top: .25rem; text-transform: uppercase; letter-spacing: .06em; }

    /* ── SECTION GENERIC ──────────────────────────── */
    section { padding: 90px 5vw; }
    .section-label {
      font-size: .72rem; font-weight: 700; letter-spacing: .14em;
      text-transform: uppercase; color: var(--blue-bright);
      margin-bottom: .7rem;
    }
    .section-title {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: clamp(1.9rem, 4vw, 2.8rem);
      font-weight: 800; line-height: 1.1; color: var(--blue-deep);
      margin-bottom: 1rem; text-transform: uppercase;
    }
    .section-sub { font-size: 1rem; color: var(--gray-text); max-width: 540px; line-height: 1.7; }
    .center-text { text-align: center; }
    .center-text .section-sub { margin: 0 auto; }

    /* ── NOSOTROS ─────────────────────────────────── */
    #nosotros { background: var(--gray-light); }

    .nosotros-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 5rem;
      align-items: center; max-width: 1100px; margin: 0 auto;
    }

    .nosotros-visual {
      position: relative;
    }
    .nosotros-card-big {
      background: var(--blue-mid);
      border-radius: 12px; padding: 3rem 2.5rem;
      color: var(--white);
    }
    .nosotros-card-big h3 {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.5rem; font-weight: 700; margin-bottom: .6rem;
      text-transform: uppercase;
    }
    .nosotros-card-big p { font-size: .9rem; color: rgba(255,255,255,.75); line-height: 1.65; }

    .nosotros-badge {
      position: absolute; bottom: -1.5rem; right: -1.5rem;
      background: var(--gold); color: var(--blue-deep);
      border-radius: 10px; padding: 1rem 1.5rem;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.1rem; font-weight: 800; text-align: center;
      box-shadow: var(--shadow);
    }
    .nosotros-badge span { display: block; font-size: 2.4rem; line-height: 1; }

    .nosotros-content p { color: var(--gray-text); margin-bottom: 1rem; line-height: 1.75; }

    .checkmarks { list-style: none; margin: 1.5rem 0 2rem; display: flex; flex-direction: column; gap: .6rem; }
    .checkmarks li {
      display: flex; align-items: flex-start; gap: .7rem;
      font-size: .93rem; color: var(--text-dark);
    }
    .checkmarks li::before {
      content: '✓'; display: inline-block; width: 20px; height: 20px;
      background: var(--blue-bright); color: var(--white);
      border-radius: 50%; font-size: .7rem; font-weight: 700;
      text-align: center; line-height: 20px; flex-shrink: 0; margin-top: 2px;
    }

    /* ── SERVICIOS ────────────────────────────────── */
    #servicios { background: var(--white); }

    .services-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 1.5rem; margin-top: 3rem;
    }

    .service-card {
      background: var(--gray-light);
      border-radius: 10px; padding: 2rem 1.8rem;
      border: 1px solid transparent;
      transition: border-color .25s, box-shadow .25s, transform .25s;
      text-decoration: none; color: inherit; display: block;
    }
    .service-card:hover {
      border-color: var(--blue-bright);
      box-shadow: 0 12px 40px rgba(23,87,194,.12);
      transform: translateY(-4px);
    }

    .service-icon {
      width: 52px; height: 52px;
      background: var(--blue-light); border-radius: 10px;
      display: flex; align-items: center; justify-content: center;
      margin-bottom: 1.2rem;
      font-size: 1.5rem;
    }

    .service-card h3 {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.2rem; font-weight: 700; margin-bottom: .5rem;
      color: var(--blue-deep); text-transform: uppercase;
    }
    .service-card p { font-size: .88rem; color: var(--gray-text); line-height: 1.65; }

    /* ── MÉTRICAS ─────────────────────────────────── */
    #metricas {
      background: linear-gradient(135deg, var(--blue-deep), var(--blue-mid));
      color: var(--white);
    }
    .metricas-grid {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 2rem; text-align: center;
    }
    .metrica-num {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 3.5rem; font-weight: 800; color: var(--gold);
      line-height: 1;
    }
    .metrica-lbl { font-size: .85rem; color: rgba(255,255,255,.65); margin-top: .4rem; text-transform: uppercase; letter-spacing: .06em; }

    /* ── PROCESO ──────────────────────────────────── */
    #proceso { background: var(--gray-light); }

    .proceso-steps {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 2rem; margin-top: 3rem; position: relative;
    }
    .proceso-steps::before {
      content: '';
      position: absolute; top: 28px; left: calc(12.5% + 1rem); right: calc(12.5% + 1rem);
      height: 2px; background: var(--blue-light); z-index: 0;
    }

    .step { text-align: center; position: relative; z-index: 1; }

    .step-num {
      width: 56px; height: 56px;
      background: var(--blue-deep); color: var(--white);
      border-radius: 50%; display: flex; align-items: center; justify-content: center;
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.4rem; font-weight: 800; margin: 0 auto 1rem;
      box-shadow: 0 0 0 6px var(--gray-light);
    }
    .step h4 {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1rem; font-weight: 700; text-transform: uppercase;
      color: var(--blue-deep); margin-bottom: .4rem;
    }
    .step p { font-size: .84rem; color: var(--gray-text); }

    /* ── CERTIFICACIONES ──────────────────────────── */
    #certificaciones { background: var(--white); }

    .cert-content {
      display: grid; grid-template-columns: 1fr 1fr; gap: 4rem;
      align-items: center; max-width: 1100px; margin: 0 auto;
    }

    .cert-text p { color: var(--gray-text); line-height: 1.8; margin-bottom: 1rem; }

    .cert-badges { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
    .cert-badge {
      background: var(--blue-light); color: var(--blue-vivid);
      padding: .5rem 1.1rem; border-radius: 100px;
      font-size: .8rem; font-weight: 600; letter-spacing: .04em;
    }

    .cert-highlights {
      display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
    }
    .cert-highlight-item {
      background: var(--gray-light); border-radius: 10px; padding: 1.5rem;
      border-left: 4px solid var(--blue-bright);
    }
    .cert-highlight-item h4 {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.05rem; font-weight: 700; color: var(--blue-deep);
      text-transform: uppercase; margin-bottom: .35rem;
    }
    .cert-highlight-item p { font-size: .82rem; color: var(--gray-text); }

    /* ── PAGOS ────────────────────────────────────── */
    #pagos {
      background: var(--blue-deep); color: var(--white);
      text-align: center;
    }
    #pagos .section-title { color: var(--white); }
    #pagos .section-sub { color: rgba(255,255,255,.65); margin: 0 auto 2rem; }

    .pagos-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 1.5rem; }
    .pago-chip {
      background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15);
      color: rgba(255,255,255,.85); padding: .6rem 1.4rem; border-radius: 100px;
      font-size: .85rem; font-weight: 500;
    }

    /* ── CONTACTO ─────────────────────────────────── */
    #contacto { background: var(--gray-light); }

    .contacto-grid {
      display: grid; grid-template-columns: 1fr 1.2fr;
      gap: 4rem; align-items: start;
      max-width: 1100px; margin: 3rem auto 0;
    }

    .contacto-info h3 {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.8rem; font-weight: 800; color: var(--blue-deep);
      text-transform: uppercase; margin-bottom: 1.2rem;
    }
    .contacto-info p { color: var(--gray-text); margin-bottom: .8rem; font-size: .93rem; }

    .info-item { display: flex; gap: .8rem; align-items: flex-start; margin-bottom: 1rem; }
    .info-icon {
      width: 40px; height: 40px; background: var(--blue-light);
      border-radius: 8px; display: flex; align-items: center; justify-content: center;
      font-size: 1rem; flex-shrink: 0;
    }
    .info-item-text strong { display: block; font-size: .82rem; color: var(--blue-vivid); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
    .info-item-text span { font-size: .92rem; color: var(--text-dark); }

    /* ── FORM ─────────────────────────────────────── */
    .contact-form {
      background: var(--white); border-radius: 12px;
      padding: 2.5rem; box-shadow: var(--shadow);
    }
    .contact-form h3 {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.4rem; font-weight: 800; color: var(--blue-deep);
      text-transform: uppercase; margin-bottom: 1.5rem;
    }

    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }

    .form-group { display: flex; flex-direction: column; gap: .4rem; margin-bottom: 1rem; }
    .form-group label { font-size: .8rem; font-weight: 600; color: var(--blue-vivid); text-transform: uppercase; letter-spacing: .06em; }
    .form-group input,
    .form-group textarea,
    .form-group select {
      padding: .75rem 1rem;
      border: 1.5px solid #dce4f0;
      border-radius: var(--radius);
      font-family: 'DM Sans', sans-serif;
      font-size: .92rem; color: var(--text-dark);
      background: var(--gray-light);
      transition: border-color .2s, background .2s;
      outline: none;
    }
    .form-group input:focus,
    .form-group textarea:focus,
    .form-group select:focus {
      border-color: var(--blue-bright);
      background: var(--white);
    }
    .form-group textarea { resize: vertical; min-height: 110px; }

    .captcha-wrap { display: flex; align-items: center; gap: 1rem; }
    .captcha-wrap input { width: 100px; }

    .form-submit {
      width: 100%; padding: .9rem;
      background: var(--blue-vivid); color: var(--white);
      border: none; border-radius: var(--radius);
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.1rem; font-weight: 700; letter-spacing: .06em;
      text-transform: uppercase; cursor: pointer;
      transition: background .2s, transform .15s;
      margin-top: .5rem;
    }
    .form-submit:hover { background: var(--blue-bright); transform: translateY(-1px); }

    .hidden { display: none !important; }

    /* ── FOOTER ───────────────────────────────────── */
    footer {
      background: var(--text-dark); color: rgba(255,255,255,.5);
      padding: 2rem 5vw; display: flex; align-items: center; justify-content: space-between;
      font-size: .8rem; gap: 1rem; flex-wrap: wrap;
    }
    footer .logo-footer {
      font-family: 'Barlow Condensed', sans-serif;
      font-size: 1.2rem; font-weight: 800; color: var(--white);
    }
    footer .logo-footer span { color: var(--gold); }

    /* ── MOBILE MENU ──────────────────────────────── */
    .mobile-nav {
      display: none;
      position: fixed; inset: 0; z-index: 999;
      background: var(--blue-deep);
      flex-direction: column; align-items: center; justify-content: center; gap: 2rem;
    }
    .mobile-nav.open { display: flex; }
    .mobile-nav a { font-family: 'Barlow Condensed', sans-serif; font-size: 2rem; font-weight: 700; color: var(--white); text-decoration: none; text-transform: uppercase; }
    .mobile-nav .close-btn {
      position: absolute; top: 1.5rem; right: 2rem;
      background: none; border: none; color: var(--white);
      font-size: 2rem; cursor: pointer;
    }

    /* ── RESPONSIVE ───────────────────────────────── */
    @media (max-width: 900px) {
      .nav-links { display: none; }
      .burger { display: flex; }
      .nosotros-grid,
      .cert-content,
      .contacto-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      .metricas-grid { grid-template-columns: repeat(2,1fr); }
      .proceso-steps { grid-template-columns: repeat(2,1fr); }
      .proceso-steps::before { display: none; }
      .nosotros-badge { bottom: -.5rem; right: 0; }
      .form-row { grid-template-columns: 1fr; }
    }

    @media (max-width: 580px) {
      .metricas-grid { grid-template-columns: 1fr 1fr; }
      .proceso-steps { grid-template-columns: 1fr 1fr; }
      .hero-stats { flex-wrap: wrap; gap: 1.5rem; }
      .cert-highlights { grid-template-columns: 1fr; }
    }

    /* ── ANIMATIONS ───────────────────────────────── */
    .fade-up {
      opacity: 0; transform: translateY(30px);
      transition: opacity .6s ease, transform .6s ease;
    }
    .fade-up.visible { opacity: 1; transform: none; }
.nav-links .has-mega{position:relative}
.nav-links .has-mega > a{cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}
.nav-links .has-mega > a::after{content:'▾';font-size:.65rem;opacity:.7;transition:transform .25s}
.nav-links .has-mega:hover > a::after,
.nav-links .has-mega:focus-within > a::after{transform:rotate(180deg)}

/* Mega dropdown panel */
.mega-panel{
  position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:640px;max-width:92vw;
  background:#ffffff;color:#0d1b35;
  border-radius:14px;
  box-shadow:0 24px 60px rgba(10,31,68,.22),0 2px 8px rgba(10,31,68,.08);
  padding:1.6rem 1.8rem;
  display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
  z-index:1001;
}
.mega-panel.single{grid-template-columns:1fr;min-width:320px}
.mega-panel::before{
  content:'';position:absolute;top:-8px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:14px;height:14px;background:#fff;border-radius:2px;
  box-shadow:-2px -2px 6px rgba(10,31,68,.06);
}
.has-mega:hover .mega-panel,
.has-mega:focus-within .mega-panel{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.mega-col-title{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:#1757c2;margin-bottom:.85rem;padding-bottom:.55rem;
  border-bottom:1px solid #e8edf5;
}
.mega-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}
.mega-col ul li a{
  display:flex;align-items:center;gap:.55rem;
  padding:.55rem .65rem;border-radius:8px;
  font-size:.86rem;font-weight:500;color:#0d1b35;
  transition:background .18s,color .18s,transform .18s;
}
.mega-col ul li a .ic{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:7px;
  background:#e8f1fd;color:#1757c2;font-size:.85rem;flex-shrink:0;
  transition:background .18s,color .18s;
}
.mega-col ul li a:hover{background:#f4f6fb;color:#1757c2;transform:translateX(3px)}
.mega-col ul li a:hover .ic{background:#1757c2;color:#fff}
.mega-col ul li a .lbl{display:flex;flex-direction:column;line-height:1.25}
.mega-col ul li a .lbl small{font-size:.72rem;font-weight:400;color:#5a6a82}

/* Mobile nav extensions: collapsible groups */
.mobile-nav{overflow-y:auto;padding:5rem 1.5rem 3rem}
.mob-group{width:100%;max-width:420px;margin:0 auto}
.mob-group-title{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:1rem 1.2rem;margin-top:.5rem;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:10px;cursor:pointer;
  font-family:'Barlow Condensed',sans-serif;font-size:1.1rem;font-weight:700;
  color:#fff;text-transform:uppercase;letter-spacing:.04em;
}
.mob-group-title::after{content:'+';font-size:1.4rem;font-weight:300;transition:transform .3s}
.mob-group.open .mob-group-title::after{transform:rotate(45deg)}
.mob-group-items{
  max-height:0;overflow:hidden;transition:max-height .35s ease;
  display:flex;flex-direction:column;
}
.mob-group.open .mob-group-items{max-height:900px}
.mob-group-items a{
  padding:.85rem 1.5rem;font-size:.95rem;font-weight:500;
  color:rgba(255,255,255,.75);text-transform:none;
  border-bottom:1px solid rgba(255,255,255,.06);
  text-align:left;
}
.mob-group-items a:hover{color:#e8a020}
.mob-group-items a:last-child{border-bottom:none}
.mob-simple{
  display:block;width:100%;max-width:420px;margin:.3rem auto;
  padding:1rem 1.2rem;font-family:'Barlow Condensed',sans-serif;
  font-size:1.1rem;font-weight:700;color:#fff;
  text-transform:uppercase;letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.1);border-radius:10px;
  background:rgba(255,255,255,.05);text-align:left;
}
.mob-simple.cta{background:#1757c2;border-color:#1757c2}
.mob-simple:hover{color:#e8a020}

@media(max-width:980px){
  .has-mega{display:none !important}
  .nav-links > li.desktop-only{display:none}
}

/* ── EXTRAS GEO PAGES ─────────────────────── */
.geo-badge{display:inline-flex;align-items:center;gap:.4rem;background:rgba(232,160,32,.12);border:1px solid rgba(232,160,32,.35);color:var(--gold);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .85rem;border-radius:100px;margin-bottom:1.2rem}
.geo-badge::before{content:'📍'}

/* CTA WhatsApp flotante */
.wa-float{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;background:#25d366;color:#fff;display:flex;align-items:center;gap:.6rem;padding:.75rem 1.3rem;border-radius:50px;font-weight:700;font-size:.9rem;box-shadow:0 6px 24px rgba(37,211,102,.45);transition:transform .2s,box-shadow .2s;text-decoration:none}
.wa-float:hover{transform:translateY(-3px);box-shadow:0 10px 32px rgba(37,211,102,.55);color:#fff}
.wa-float svg{width:24px;height:24px;fill:#fff;flex-shrink:0}

/* Sección empresa destacada */
.featured-company{background:linear-gradient(135deg,var(--blue-deep) 0%,var(--blue-mid) 100%);border-radius:12px;padding:2.5rem;color:var(--white);margin-bottom:2.5rem;position:relative;overflow:hidden}
.featured-company::before{content:'#1';position:absolute;right:2rem;top:50%;transform:translateY(-50%);font-family:'Barlow Condensed',sans-serif;font-size:8rem;font-weight:800;color:rgba(255,255,255,.05);line-height:1}
.featured-label{display:inline-block;background:var(--gold);color:var(--blue-deep);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .8rem;border-radius:4px;margin-bottom:1rem}
.featured-company h3{font-family:'Barlow Condensed',sans-serif;font-size:1.8rem;font-weight:800;text-transform:uppercase;color:var(--white);margin-bottom:.8rem}
.featured-company p{color:rgba(255,255,255,.75);font-size:.95rem;line-height:1.75;margin-bottom:1.2rem}
.featured-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.featured-tag{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.85);font-size:.75rem;font-weight:600;padding:.3rem .75rem;border-radius:100px}
.featured-ctas{display:flex;gap:1rem;flex-wrap:wrap}
.btn-wa{display:inline-flex;align-items:center;gap:.5rem;background:#25d366;color:#fff;padding:.75rem 1.5rem;border-radius:8px;font-weight:700;font-size:.9rem;transition:background .2s,transform .15s}
.btn-wa:hover{background:#1ebe5d;transform:translateY(-2px);color:#fff}
.btn-wa svg{width:18px;height:18px;fill:#fff}
.btn-outline-light{display:inline-flex;align-items:center;gap:.5rem;border:2px solid rgba(255,255,255,.35);color:var(--white);padding:.75rem 1.5rem;border-radius:8px;font-weight:600;font-size:.9rem;transition:border-color .2s,background .2s}
.btn-outline-light:hover{border-color:var(--white);background:rgba(255,255,255,.08);color:var(--white)}

/* Services grid */
.geo-services{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem;margin-top:2rem}
.geo-service-card{background:var(--white);border:1.5px solid #e2e8f0;border-radius:10px;padding:1.5rem;transition:border-color .2s,transform .2s,box-shadow .2s}
.geo-service-card:hover{border-color:var(--blue-bright);transform:translateY(-3px);box-shadow:0 8px 28px rgba(23,87,194,.1)}
.geo-service-icon{font-size:2rem;margin-bottom:.8rem;display:block}
.geo-service-card h4{font-family:'Barlow Condensed',sans-serif;font-size:1.1rem;font-weight:700;text-transform:uppercase;color:var(--blue-deep);margin-bottom:.5rem}
.geo-service-card p{font-size:.85rem;color:var(--gray-text);line-height:1.65}

/* FAQ */
.geo-faq{display:flex;flex-direction:column;gap:.8rem}
.faq-item{background:var(--white);border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}
.faq-q{padding:1.1rem 1.3rem;font-weight:600;font-size:.93rem;color:var(--blue-deep);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq-q::after{content:'+';font-size:1.3rem;color:var(--blue-bright);flex-shrink:0;transition:transform .25s}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .3s}
.faq-item.open .faq-a{max-height:400px;padding:0 1.3rem 1.1rem}
.faq-a p{font-size:.88rem;color:var(--gray-text);line-height:1.75}

/* Contact section */
.geo-contact{background:linear-gradient(135deg,var(--blue-deep),#0e3a6b);border-radius:12px;padding:2.5rem;color:var(--white);text-align:center}
.geo-contact h3{font-family:'Barlow Condensed',sans-serif;font-size:1.9rem;font-weight:800;text-transform:uppercase;margin-bottom:.8rem}
.geo-contact p{color:rgba(255,255,255,.7);margin-bottom:1.5rem;font-size:.95rem}
.contact-methods{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}

/* Barrios section */
.barrios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;margin-top:1.2rem}
.barrio-tag{background:var(--blue-light);color:var(--blue-vivid);font-size:.8rem;font-weight:600;padding:.45rem .9rem;border-radius:6px;text-align:center}

/* Testimonials */
.geo-testimonials{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem}
.geo-testi{background:var(--white);border:1px solid #e2e8f0;border-radius:10px;padding:1.5rem;position:relative}
.geo-testi::before{content:'"';font-family:'Barlow Condensed',sans-serif;font-size:4rem;color:var(--blue-light);position:absolute;top:.5rem;left:1rem;line-height:1}
.geo-testi-text{font-size:.88rem;color:var(--gray-text);line-height:1.75;margin-top:1.5rem;margin-bottom:1rem}
.geo-testi-author{font-size:.8rem;font-weight:600;color:var(--blue-vivid)}
.geo-testi-stars{color:var(--gold);font-size:.9rem;margin-bottom:.3rem}

/* Process */
.geo-process{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;position:relative}
.geo-process::before{content:'';position:absolute;top:24px;left:calc(12.5% + 1rem);right:calc(12.5% + 1rem);height:2px;background:var(--blue-light);z-index:0}
.geo-step{text-align:center;position:relative;z-index:1}
.geo-step-num{width:50px;height:50px;background:var(--blue-deep);color:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Barlow Condensed',sans-serif;font-size:1.3rem;font-weight:800;margin:0 auto 1rem;box-shadow:0 0 0 6px var(--gray-bg)}
.rk-section-alt .geo-step-num{box-shadow:0 0 0 6px var(--gray-bg)}
.rk-section .geo-step-num{box-shadow:0 0 0 6px var(--white)}
.geo-step h4{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:700;text-transform:uppercase;color:var(--blue-deep);margin-bottom:.4rem}
.geo-step p{font-size:.82rem;color:var(--gray-text)}

@media(max-width:760px){
  .geo-process{grid-template-columns:1fr 1fr}
  .geo-process::before{display:none}
  .featured-ctas{flex-direction:column}
  .contact-methods{flex-direction:column;align-items:center}
}
@media(max-width:480px){
  .geo-process{grid-template-columns:1fr 1fr}
  .barrios-grid{grid-template-columns:repeat(3,1fr)}
}
