:root {
      --verde:        #1A6B5A;
      --verde-claro:  #E8F5F0;
      --verde-medio:  #2A8A73;
      --crema:        #F5F0EB;
      --crema-oscuro: #EDE6DC;
      --borde:        #DDD8D0;
      --gris-texto:   #5C5B58;
      --texto:        #2D2D2B;

      /* Colores por perfil */
      --verde-perfil:   #2E7D32;
      --amarillo-perfil:#F59E0B;
      --naranja-perfil: #E07000;
      --rojo-perfil:    #C62828;

      --verde-perfil-bg:   #F1F8E9;
      --amarillo-perfil-bg:#FFFBEB;
      --naranja-perfil-bg: #FFF3E0;
      --rojo-perfil-bg:    #FFEBEE;
    }

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

    body {
      font-family: 'DM Sans', sans-serif;
      background: #FAFAF8;
      color: var(--texto);
      line-height: 1.6;
    }

    .page-hero {
      background: linear-gradient(135deg, var(--verde) 0%, var(--verde-medio) 100%);
      color: white;
      padding: 64px 24px 80px;
      text-align: center;
      position: relative;
      overflow: hidden;
    }
    .page-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background: 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.04'%3E%3Ccircle cx='30' cy='30' r='20'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }
    .page-hero-inner { position: relative; max-width: 720px; margin: 0 auto; }
    .page-hero-badge {
      display: inline-block;
      background: rgba(255,255,255,.15);
      border: 1px solid rgba(255,255,255,.3);
      border-radius: 100px;
      padding: 5px 16px;
      font-size: 13px;
      font-weight: 500;
      letter-spacing: .04em;
      text-transform: uppercase;
      margin-bottom: 20px;
    }
    .page-hero h1 {
      font-family: 'Lora', serif;
      font-size: clamp(2rem, 5vw, 3rem);
      font-weight: 700;
      line-height: 1.2;
      margin-bottom: 16px;
    }
    .page-hero p {
      font-size: 1.1rem;
      opacity: .88;
      max-width: 560px;
      margin: 0 auto;
    }

    .etapas-nav {
      background: white;
      border-bottom: 1px solid var(--borde);
      position: sticky;
      top: 0;
      z-index: 100;
      overflow-x: auto;
      scrollbar-width: none;
    }
    .etapas-nav::-webkit-scrollbar { display: none; }
    .etapas-nav-inner {
      display: flex;
      justify-content: center;
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 16px;
      min-width: max-content;
    }
    .etapa-btn {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 18px 28px;
      font-size: 14px;
      font-weight: 600;
      font-family: 'DM Sans', sans-serif;
      color: var(--gris-texto);
      background: none;
      border: none;
      border-bottom: 3px solid transparent;
      cursor: pointer;
      transition: all .2s;
      white-space: nowrap;
    }
    .etapa-btn:hover { color: var(--verde); }
    .etapa-btn.activa { color: var(--verde); border-bottom-color: var(--verde); }
    .etapa-num {
      width: 26px; height: 26px;
      border-radius: 50%;
      background: var(--crema-oscuro);
      display: flex; align-items: center; justify-content: center;
      font-size: 12px;
      font-weight: 700;
      transition: all .2s;
    }
    .etapa-btn.activa .etapa-num,
    .etapa-btn:hover .etapa-num {
      background: var(--verde);
      color: white;
    }

    .main-wrap {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 24px 80px;
    }

    .flujo-container {
      padding: 56px 0 0;
    }

    .flujo-header {
      text-align: center;
      margin-bottom: 48px;
    }
    .flujo-header h2 {
      font-family: 'Lora', serif;
      font-size: 1.6rem;
      color: var(--texto);
      margin-bottom: 8px;
    }
    .flujo-header p {
      color: var(--gris-texto);
      font-size: .95rem;
    }

    /* Timeline horizontal */
    .timeline-track {
      display: grid;
      grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
      align-items: start;
      gap: 0;
      margin-bottom: 0;
    }

    .flecha-svg {
      display: flex;
      align-items: flex-start;
      padding-top: 36px;
      color: var(--borde);
    }

    /* Tarjeta de etapa */
    .etapa-card {
      background: white;
      border: 1px solid var(--borde);
      border-radius: 20px;
      overflow: hidden;
      transition: transform .2s, box-shadow .2s;
      cursor: pointer;
    }
    .etapa-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 40px rgba(0,0,0,.1);
    }
    .etapa-card.abierta {
      border-color: var(--verde);
      box-shadow: 0 0 0 2px rgba(26,107,90,.15), 0 12px 40px rgba(0,0,0,.1);
    }

    .etapa-card-head {
      padding: 24px 24px 20px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
    }

    .etapa-icon {
      width: 52px; height: 52px;
      border-radius: 14px;
      display: flex; align-items: center; justify-content: center;
      font-size: 24px;
      flex-shrink: 0;
    }

    .etapa-1 .etapa-icon { background: #E8F5F0; }
    .etapa-2 .etapa-icon { background: #FFF8E1; }
    .etapa-3 .etapa-icon { background: #F3E5F5; }
    .etapa-4 .etapa-icon { background: #E3F2FD; }

    .etapa-card-head h3 {
      font-family: 'Lora', serif;
      font-size: 1.15rem;
      font-weight: 700;
      color: var(--texto);
      line-height: 1.3;
    }
    .etapa-card-head .etapa-subtitulo {
      font-size: .82rem;
      color: var(--gris-texto);
      font-weight: 500;
      text-transform: uppercase;
      letter-spacing: .05em;
    }
    .etapa-card-head .etapa-desc {
      font-size: .9rem;
      color: var(--gris-texto);
      line-height: 1.5;
    }

    .etapa-toggle {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: 12px 24px;
      background: var(--crema);
      border: none;
      border-top: 1px solid var(--crema-oscuro);
      font-family: 'DM Sans', sans-serif;
      font-size: 13px;
      font-weight: 600;
      color: var(--verde);
      cursor: pointer;
      transition: background .15s;
    }
    .etapa-toggle:hover { background: var(--crema-oscuro); }
    .etapa-toggle svg { transition: transform .25s; flex-shrink: 0; }
    .etapa-card.abierta .etapa-toggle svg { transform: rotate(180deg); }

    /* Panel expandible */
    .etapa-panel {
      max-height: 0;
      overflow: hidden;
      transition: max-height .35s ease;
    }
    .etapa-panel.visible { max-height: 800px; }
    .etapa-panel-inner { padding: 20px 24px 24px; }

    /* Lista de recursos */
    .recursos-lista {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .recurso-item a {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 14px;
      background: var(--crema);
      border-radius: 10px;
      text-decoration: none;
      font-size: .88rem;
      font-weight: 500;
      color: var(--texto);
      border: 1px solid transparent;
      transition: all .15s;
    }
    .recurso-item a:hover {
      background: var(--verde-claro);
      border-color: rgba(26,107,90,.2);
      color: var(--verde);
    }
    .recurso-item a .r-icon {
      font-size: 16px;
      flex-shrink: 0;
    }

    .perfiles-section {
      margin-top: 72px;
    }
    .perfiles-section > h2 {
      font-family: 'Lora', serif;
      font-size: 1.6rem;
      text-align: center;
      margin-bottom: 8px;
    }
    .perfiles-section > p {
      text-align: center;
      color: var(--gris-texto);
      font-size: .95rem;
      margin-bottom: 40px;
    }

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

    .perfil-card {
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid var(--borde);
    }
    .perfil-card-head {
      padding: 20px 20px 16px;
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .perfil-dot {
      width: 14px; height: 14px;
      border-radius: 50%;
      flex-shrink: 0;
    }
    .perfil-card-head h3 {
      font-family: 'Lora', serif;
      font-size: 1rem;
      font-weight: 700;
    }
    .perfil-card-head .perfil-tag {
      font-size: .75rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: .06em;
      padding: 3px 8px;
      border-radius: 100px;
      margin-left: auto;
    }
    .perfil-card-body {
      padding: 0 20px 20px;
    }
    .perfil-card-body p {
      font-size: .85rem;
      color: var(--gris-texto);
      margin-bottom: 14px;
      line-height: 1.5;
    }
    .perfil-acciones {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .perfil-accion {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: .82rem;
      color: var(--gris-texto);
    }
    .perfil-accion::before {
      content: '→';
      font-weight: 700;
      flex-shrink: 0;
    }
    .perfil-accion a {
      color: inherit;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .perfil-accion a:hover { color: var(--verde); }

    /* Colores por perfil */
    .perfil-verde   { background: var(--verde-perfil-bg); }
    .perfil-amarillo{ background: var(--amarillo-perfil-bg); }
    .perfil-naranja { background: var(--naranja-perfil-bg); }
    .perfil-rojo    { background: var(--rojo-perfil-bg); }

    .perfil-verde   .perfil-dot { background: var(--verde-perfil); }
    .perfil-amarillo.perfil-dot { background: var(--amarillo-perfil); }
    .perfil-naranja .perfil-dot { background: var(--naranja-perfil); }
    .perfil-rojo    .perfil-dot { background: var(--rojo-perfil); }

    .perfil-verde   .perfil-tag { background: #C8E6C9; color: var(--verde-perfil); }
    .perfil-amarillo .perfil-tag{ background: #FEF3C7; color: #92400E; }
    .perfil-naranja .perfil-tag { background: #FFE0B2; color: var(--naranja-perfil); }
    .perfil-rojo    .perfil-tag { background: #FFCDD2; color: var(--rojo-perfil); }

    .perfil-verde   h3 { color: var(--verde-perfil); }
    .perfil-amarillo h3{ color: #92400E; }
    .perfil-naranja h3 { color: var(--naranja-perfil); }
    .perfil-rojo    h3 { color: var(--rojo-perfil); }

    /* Dot color para los perfiles dentro de card-head */
    .perfil-verde   .perfil-card-head .perfil-dot { background: var(--verde-perfil); }
    .perfil-amarillo .perfil-card-head .perfil-dot { background: var(--amarillo-perfil); }
    .perfil-naranja .perfil-card-head .perfil-dot { background: var(--naranja-perfil); }
    .perfil-rojo    .perfil-card-head .perfil-dot { background: var(--rojo-perfil); }

    .cta-central {
      margin-top: 64px;
      background: linear-gradient(135deg, var(--verde) 0%, var(--verde-medio) 100%);
      border-radius: 24px;
      padding: 48px 40px;
      text-align: center;
      color: white;
    }
    .cta-central h2 {
      font-family: 'Lora', serif;
      font-size: 1.7rem;
      margin-bottom: 12px;
    }
    .cta-central p {
      opacity: .88;
      font-size: 1rem;
      max-width: 480px;
      margin: 0 auto 28px;
    }
    .cta-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: white;
      color: var(--verde);
      font-family: 'DM Sans', sans-serif;
      font-size: 1rem;
      font-weight: 700;
      padding: 14px 32px;
      border-radius: 12px;
      text-decoration: none;
      transition: transform .15s, box-shadow .15s;
    }
    .cta-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,.2);
    }

    @media (max-width: 900px) {
      .timeline-track {
        grid-template-columns: 1fr;
        gap: 0;
      }
      .flecha-svg { display: none; }
      .etapa-card { border-radius: 16px; margin-bottom: 12px; }
      .perfiles-grid { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 560px) {
      .page-hero { padding: 48px 20px 60px; }
      .perfiles-grid { grid-template-columns: 1fr; }
      .cta-central { padding: 36px 24px; }
      .etapa-btn { padding: 18px 16px; }
    }