/* ── Page hero ── */
    .rse-hero {
      background: var(--bk);
      padding: 7rem 0 4.5rem;
      text-align: center;
    }
    .rse-hero .sec-eyebrow { color: var(--g); margin-bottom: .75rem; }
    .rse-hero h1 {
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: 700; color: #fff;
      line-height: 1.2; margin: 0 0 1.1rem;
    }
    .rse-hero h1 em { font-style: normal; color: var(--g); }
    .rse-hero p {
      font-size: 1rem; color: rgba(255,255,255,.55);
      max-width: 560px; margin: 0 auto; line-height: 1.7;
    }

    /* ── Secciones genéricas ── */
    .rse-sec {
      padding: 5rem 0;
    }
    .rse-sec.dark { background: var(--bk); }
    .rse-sec.alt  { background: #f7f8f6; }
    .rse-sec.white{ background: #fff; }

    .rse-inner {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 5%;
    }

    .rse-label {
      font-size: .72rem; font-weight: 700; letter-spacing: 1.8px;
      text-transform: uppercase; color: var(--g);
      margin-bottom: .6rem;
    }
    .rse-title {
      font-size: clamp(1.5rem, 2.8vw, 2.1rem);
      font-weight: 700; line-height: 1.25;
      margin: 0 0 .9rem;
    }
    .rse-title.light { color: #fff; }
    .rse-title.dark-txt { color: var(--bk); }
    .rse-sub {
      font-size: .95rem; line-height: 1.7;
      color: var(--muted); max-width: 600px;
      margin-bottom: 2.8rem;
    }
    .rse-sub.light { color: rgba(255,255,255,.52); }

    /* ── Penguin Project layout ── */
    .penguin-grid {
      display: grid;
      grid-template-columns: 1fr 1.6fr;
      gap: 4rem;
      align-items: center;
    }
    .penguin-logo-wrap {
      display: flex; flex-direction: column;
      align-items: center; gap: 1.5rem;
    }
    .penguin-logo-wrap img {
      width: 180px; border-radius: 12px;
    }
    .penguin-tagline {
      font-size: .82rem; color: rgba(255,255,255,.45);
      text-align: center; line-height: 1.6; max-width: 200px;
    }
    .penguin-stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1px;
      background: rgba(255,255,255,.07);
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,.07);
    }
    .ps-card {
      background: rgba(255,255,255,.03);
      padding: 1.6rem 1.5rem;
      transition: background .2s;
    }
    .ps-card:hover { background: rgba(123,191,62,.06); }
    .ps-card-num {
      font-size: 2.2rem; font-weight: 700;
      color: var(--g); line-height: 1; margin-bottom: .4rem;
    }
    .ps-card-title {
      font-size: .85rem; font-weight: 600;
      color: #fff; margin-bottom: .25rem;
    }
    .ps-card-sub {
      font-size: .74rem; color: rgba(255,255,255,.4); line-height: 1.4;
    }

    /* ── Lifechanger / Club Campestre ── */
    .life-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 2rem;
      margin-top: 2.5rem;
    }
    .life-card {
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 1.8rem;
      background: #fff;
      transition: border-color .2s, box-shadow .2s;
    }
    .life-card:hover {
      border-color: var(--g);
      box-shadow: 0 6px 24px rgba(123,191,62,.1);
    }
    .life-card-ico {
      width: 44px; height: 44px;
      border-radius: 10px;
      background: var(--g3);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.25rem; color: var(--g);
      margin-bottom: 1rem;
    }
    .life-card-ico::before { margin-right: 0 !important; }
    .life-card h4 {
      font-size: .95rem; font-weight: 700;
      color: var(--bk); margin: 0 0 .5rem;
    }
    .life-card p {
      font-size: .83rem; color: var(--muted);
      line-height: 1.65; margin: 0;
    }

    /* ── Primeros Empleos ── */
    .emp-wrap {
      display: flex; align-items: center; gap: 4rem;
    }
    .emp-number {
      flex-shrink: 0;
      font-size: 6rem; font-weight: 700;
      color: var(--g); line-height: 1;
    }
    .emp-text h3 {
      font-size: 1.4rem; font-weight: 700;
      color: #fff; margin: 0 0 .75rem;
    }
    .emp-text p {
      font-size: .92rem; color: rgba(255,255,255,.52);
      line-height: 1.7; max-width: 480px; margin: 0;
    }

    /* ── Capital Humano ── */

    /* Ciudades */
    .cities-row {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: .75rem; margin-bottom: .5rem;
    }
    .city-card {
      position: relative; border-radius: 12px; overflow: hidden;
      aspect-ratio: 1326/788;
    }
    .city-card img {
      width: 100%; height: 100%; object-fit: cover; display: block;
    }
    .city-card-label {
      position: absolute; bottom: 0; left: 0; right: 0;
      padding: .55rem .9rem;
      background: linear-gradient(transparent, rgba(0,0,0,.65));
      color: #fff; font-size: .85rem; font-weight: 700;
    }

    /* Barra generacional */
    .gen-track-wrap { position: relative; padding-bottom: 1rem; }
    .gen-track {
      display: flex; border-radius: 12px; overflow: visible;
      height: 48px; gap: 3px;
    }
    .gen-seg {
      position: relative; display: flex;
      align-items: center; justify-content: center;
      border-radius: 0; cursor: default;
      transition: filter .2s, transform .15s;
      overflow: visible;
    }
    .gen-seg:first-child { border-radius: 10px 0 0 10px; }
    .gen-seg:last-child  { border-radius: 0 10px 10px 0; }
    .gen-seg:hover { filter: brightness(1.12); transform: scaleY(1.06); z-index: 5; }
    .gen-seg-label {
      font-size: .73rem; font-weight: 700; color: #fff;
      white-space: nowrap; pointer-events: none;
    }

    /* Popup */
    .gen-popup {
      display: none; position: absolute;
      bottom: calc(100% + 10px); left: 50%;
      transform: translateX(-50%);
      background: var(--bk); color: #fff;
      border-radius: 14px; padding: 1rem 1.2rem;
      width: 230px; z-index: 20;
      box-shadow: 0 10px 30px rgba(0,0,0,.25);
      pointer-events: none;
    }
    .gen-popup::after {
      content: ''; position: absolute;
      top: 100%; left: 50%; transform: translateX(-50%);
      border: 7px solid transparent;
      border-top-color: var(--bk);
    }
    .gen-seg:hover .gen-popup { display: block; }
    .gen-popup-name {
      font-size: .82rem; font-weight: 700; margin-bottom: .3rem;
    }
    .gen-popup-name span {
      font-weight: 400; color: rgba(255,255,255,.5); font-size: .73rem;
    }
    .gen-popup-pct {
      font-size: 1.6rem; font-weight: 700; color: var(--g);
      line-height: 1; margin-bottom: .5rem;
    }
    .gen-popup-desc { font-size: .77rem; color: rgba(255,255,255,.6); line-height: 1.55; }

    /* Diversidad */
    .div-section-title {
      font-size: .78rem; font-weight: 700; letter-spacing: 1px;
      text-transform: uppercase; color: var(--muted);
      margin: 1.5rem 0 .75rem;
    }
    .div-tags {
      display: flex; flex-wrap: wrap; gap: .5rem;
    }
    .div-tag {
      display: flex; align-items: center; gap: .4rem;
      border: 1px solid var(--border); border-radius: 20px;
      padding: .3rem .8rem;
      font-size: .78rem; color: var(--txt);
      transition: border-color .15s, background .15s, color .15s;
    }
    .div-tag:hover { border-color: var(--g); background: var(--g3); color: var(--g); }
    .div-tag-ico { font-size: .85rem; }

    /* Culturas */
    .cult-chips {
      display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.5rem;
    }
    .cult-chip {
      background: var(--g3); border-radius: 20px;
      padding: .25rem .7rem;
      font-size: .75rem; color: var(--g); font-weight: 500;
    }

    /* ── Valores ── */
    .valores-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.2rem;
      margin-top: 2.5rem;
    }
    .valor-card {
      border: 1px solid rgba(255,255,255,.08);
      border-radius: 14px;
      padding: 1.8rem 1.6rem;
      background: rgba(255,255,255,.03);
      transition: border-color .2s, background .2s;
    }
    .valor-card:hover {
      border-color: var(--g);
      background: rgba(123,191,62,.05);
    }
    .valor-ico {
      width: 42px; height: 42px;
      border-radius: 10px;
      background: rgba(123,191,62,.12);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.15rem; color: var(--g);
      margin-bottom: 1rem;
    }
    .valor-ico::before { margin-right: 0 !important; }
    .valor-name {
      font-size: .92rem; font-weight: 700; color: #fff;
      margin-bottom: .45rem;
    }
    .valor-desc {
      font-size: .8rem; color: rgba(255,255,255,.45);
      line-height: 1.6;
    }

    /* ── Sección diversidad ── */
    .div-split {
      display: grid;
      grid-template-columns: 1fr 1.4fr;
      gap: 5rem;
      align-items: center;
    }
    .div-img-wrap {
      position: relative;
    }
    .div-img-wrap img {
      width: 60%;
      max-width: 340px;
      border-radius: 20px;
      display: block;
      margin: 0 auto;
    }
    .div-img-badge {
      position: absolute;
      bottom: -16px; right: -16px;
      background: var(--g);
      color: #fff;
      font-size: .72rem; font-weight: 700;
      letter-spacing: .5px;
      padding: .6rem 1rem;
      border-radius: 10px;
      box-shadow: 0 4px 16px rgba(123,191,62,.35);
    }

    /* Mapa Colombia Leaflet */
    .col-map-wrap {
      display: flex;
      align-items: flex-start;
      gap: 1.5rem;
      margin-top: 1.8rem;
    }
    #colombiaMap {
      flex-shrink: 0;
      width: 220px;
      height: 300px;
      border-radius: 12px;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(0,0,0,.12);
      background: #eef2ee;
    }
    .col-map-legend {
      display: flex; flex-direction: row; flex-wrap: wrap; gap: .5rem 1.2rem;
      margin-top: 1rem; justify-content: center;
    }
    .region-chip {
      display: flex; align-items: center; gap: .55rem;
      font-size: .78rem; font-weight: 600; color: var(--bk);
    }
    .region-dot {
      width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0;
    }
    .rz-caribe { background: #F5A623; }
    .rz-ant    { background: #e85d4a; }
    .rz-norte  { background: #3b9ddd; }
    .rz-boyaca { background: #1abc9c; }
    .rz-occ    { background: #9b59b6; }
    .rz-centro { background: #7BBF3E; }
    .rz-llanos { background: #e67e22; }
    .rz-huila  { background: #2ecc71; }

    @media (max-width: 768px) {
      .penguin-grid, .life-grid, .humano-grid, .valores-grid, .div-split { grid-template-columns: 1fr; }
      .emp-wrap { flex-direction: column; gap: 1.5rem; text-align: center; }
      .emp-number { font-size: 4rem; }
      .valores-grid { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 480px) {
      .valores-grid { grid-template-columns: 1fr; }
    }
