:root{
    --navy:#21344d;
    --navy-deep:#182740;
    --blue:#3071bd;
    --blue-soft:#eaf2fb;
    --gold-1:#ffd359;
    --gold-2:#fcab31;
    --gray-bg:#f4f6f8;
    --ink:#212529;
    --ink-soft:#484848;
    --muted:#828a90;
    --white:#ffffff;
    --radius:16px;
    --shadow:0 10px 30px rgba(33,52,77,.10);
    --shadow-lg:0 18px 45px rgba(33,52,77,.18);
  }
  main,
  main *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body,
  button,
  input,
  select,
  textarea{
    font-family:'Poppins',sans-serif;
  }
  body{
    color:var(--ink);
    background:var(--white);
    overflow-x:hidden;
    line-height:1.7;
  }
  main img{max-width:100%}

  /* ===== Barra de progreso de lectura ===== */
  #progreso{
    position:fixed;top:0;left:0;height:4px;width:0%;
    background:linear-gradient(to right,var(--gold-1),var(--gold-2));
    z-index:1000;transition:width .1s linear;
  }

  /* ===== Encabezado institucional ===== */
  .topbar{
    background:var(--navy);
    color:#fff;
    padding:14px 5%;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    flex-wrap:wrap;
  }
  .topbar .marca{display:flex;align-items:center;gap:14px}
  .logo-ased{height:54px;width:auto;display:block}
  .chip-area{
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.25);
    padding:6px 16px;border-radius:100px;
    font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;
  }

  /* ===== Hero ===== */
  .hero{
    background-color:#343a40;
    background-image:linear-gradient(rgba(0,0,0,.52),rgba(0,0,0,.52));
    background-position:center;
    background-repeat:no-repeat;
    background-size:cover;
    color:#fff;
    padding:84px 5% 96px;
    position:relative;
  }
  .hero .contenido{max-width:960px;margin:0 auto;text-align:center}
  .etiqueta-capsula{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.22);
    padding:8px 20px;border-radius:100px;
    font-size:.78rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;
    margin-bottom:26px;
  }
  .etiqueta-capsula .punto{width:8px;height:8px;border-radius:50%;background:var(--gold-2);
    box-shadow:0 0 0 4px rgba(252,171,49,.25)}
  .hero h2{
    font-size:clamp(1.9rem,4.5vw,3.1rem);
    font-weight:700;line-height:1.2;margin-bottom:8px;
  }
  .texto-dorado{
    background:linear-gradient(to right,var(--gold-1),var(--gold-2));
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:var(--gold-2);
  }
  .hero p.baja{
    font-weight:300;font-size:1.06rem;max-width:720px;margin:18px auto 0;opacity:.92;
  }
  .hero-datos{
    display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px;
  }
  .dato{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.18);
    border-radius:12px;padding:10px 22px;
    font-size:.85rem;font-weight:300;
  }
  .dato strong{display:block;font-weight:600;font-size:1rem;color:var(--gold-1)}

  /* ===== Estructura de secciones ===== */
  main section{padding:76px 5%}
  main section.alterna{background:var(--gray-bg)}
  .marco{max-width:1060px;margin:0 auto}
  .kicker{
    color:var(--blue);font-weight:600;font-size:.8rem;
    letter-spacing:2px;text-transform:uppercase;margin-bottom:10px;
  }
  h3.titulo{
    color:var(--navy);font-size:clamp(1.5rem,3vw,2.1rem);
    font-weight:700;line-height:1.25;margin-bottom:14px;
  }
  .subrayado{position:relative;display:inline-block}
  .subrayado::after{
    content:"";position:absolute;left:0;right:0;bottom:4px;height:10px;
    background:linear-gradient(to right,var(--gold-1),var(--gold-2));
    opacity:.35;border-radius:4px;z-index:-1;
  }
  p.intro{color:var(--ink-soft);font-weight:300;max-width:800px;margin-bottom:34px}

  /* Animación de aparición */
  .aparece{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
  .aparece.visible{opacity:1;transform:none}

  /* ===== ¿Por qué importa? — tarjetas ===== */
  .grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
  .tarjeta{
    background:var(--white);border-radius:var(--radius);
    padding:30px 26px;box-shadow:var(--shadow);
    border-top:4px solid transparent;
    transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
  }
  .tarjeta:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-top-color:var(--gold-2)}
  .tarjeta .icono{
    width:52px;height:52px;border-radius:14px;
    background:var(--blue-soft);color:var(--blue);
    display:flex;align-items:center;justify-content:center;
    font-size:1.5rem;margin-bottom:16px;
  }
  .tarjeta h4{color:var(--navy);font-size:1.05rem;font-weight:600;margin-bottom:8px}
  .tarjeta p{font-size:.9rem;font-weight:300;color:var(--ink-soft)}

  /* ===== Ciclo vital — línea interactiva ===== */
  .ciclo-nav{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:12px;margin-bottom:26px;
  }
  .etapa-btn{
    font-family:'Poppins',sans-serif;
    background:var(--white);border:2px solid #e2e8f0;border-radius:14px;
    padding:16px 12px;cursor:pointer;text-align:center;
    transition:all .25s ease;position:relative;
  }
  .etapa-btn .num{
    display:inline-flex;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:50%;
    background:var(--gray-bg);color:var(--muted);
    font-weight:700;font-size:.9rem;margin-bottom:8px;
    transition:all .25s ease;
  }
  .etapa-btn span.nombre{display:block;font-weight:600;font-size:.85rem;color:var(--navy)}
  .etapa-btn span.fase{display:block;font-weight:300;font-size:.72rem;color:var(--muted);margin-top:2px}
  .etapa-btn:hover{border-color:var(--blue);transform:translateY(-3px)}
  .etapa-btn.activa{border-color:var(--blue);background:var(--blue-soft);box-shadow:var(--shadow)}
  .etapa-btn.activa .num{background:linear-gradient(135deg,var(--gold-1),var(--gold-2));color:var(--navy)}

  .ciclo-panel{
    background:var(--white);border-radius:var(--radius);
    box-shadow:var(--shadow);padding:36px;
    display:none;animation:fundido .45s ease;
  }
  .ciclo-panel.activa{display:grid;grid-template-columns:1.3fr 1fr;gap:34px;align-items:start}
  @keyframes fundido{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  .ciclo-panel h4{color:var(--navy);font-size:1.25rem;font-weight:700;margin-bottom:4px}
  .ciclo-panel .fase-tag{
    display:inline-block;background:var(--blue-soft);color:var(--blue);
    font-size:.72rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;
    padding:4px 14px;border-radius:100px;margin-bottom:14px;
  }
  .ciclo-panel p{font-size:.93rem;font-weight:300;color:var(--ink-soft);margin-bottom:14px}
  .ciclo-panel ul{list-style:none;margin-top:6px}
  .ciclo-panel ul li{
    font-size:.88rem;font-weight:300;color:var(--ink-soft);
    padding:7px 0 7px 28px;position:relative;
  }
  .ciclo-panel ul li::before{
    content:"✓";position:absolute;left:0;top:7px;
    color:var(--gold-2);font-weight:700;
  }
  .expediente{
    background:linear-gradient(150deg,var(--navy),var(--navy-deep));
    color:#fff;border-radius:14px;padding:26px;position:relative;overflow:hidden;
  }
  .expediente::before{
    content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;
    border-radius:50%;background:rgba(252,171,49,.15);
  }
  .expediente .folio{
    font-size:.7rem;letter-spacing:1.5px;text-transform:uppercase;
    color:var(--gold-1);font-weight:600;margin-bottom:10px;
  }
  .expediente h5{font-size:1rem;font-weight:600;margin-bottom:10px;line-height:1.4}
  .expediente p{font-size:.85rem;font-weight:400;color:#eef2f8;position:relative}
  .expediente .estado{
    display:inline-block;margin-top:14px;
    background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
    padding:5px 14px;border-radius:100px;font-size:.75rem;font-weight:600;
  }

  /* ===== Instrumentos — tarjetas volteables ===== */
  .grid-instrumentos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
  .flip{perspective:1200px;min-height:300px;cursor:pointer}
  .flip-inner{
    position:relative;width:100%;height:100%;min-height:300px;
    transition:transform .7s cubic-bezier(.4,.2,.2,1);
    transform-style:preserve-3d;
  }
  .flip.volteada .flip-inner{transform:rotateY(180deg)}
  .cara{
    position:absolute;inset:0;border-radius:var(--radius);
    backface-visibility:hidden;-webkit-backface-visibility:hidden;
    padding:28px 24px;display:flex;flex-direction:column;
  }
  .cara.frente{
    background:var(--white);box-shadow:var(--shadow);
    align-items:flex-start;justify-content:flex-end;
    border-bottom:4px solid var(--gold-2);
  }
  .cara.frente .icono-inst{
    width:56px;height:56px;border-radius:16px;
    background:linear-gradient(135deg,var(--gold-1),var(--gold-2));
    display:flex;align-items:center;justify-content:center;
    font-size:1.6rem;margin-bottom:auto;
  }
  .cara.frente .siglas{color:var(--blue);font-weight:700;font-size:.78rem;letter-spacing:2px;margin-bottom:6px}
  .cara.frente h4{color:var(--navy);font-size:1.02rem;font-weight:600;line-height:1.35}
  .cara.frente .pista{
    margin-top:12px;font-size:.72rem;color:var(--muted);font-weight:300;
    display:flex;align-items:center;gap:6px;
  }
  .cara.reverso{
    background:linear-gradient(150deg,var(--navy),var(--navy-deep));
    color:#fff;transform:rotateY(180deg);justify-content:center;
  }
  .cara.reverso h4{font-size:.95rem;font-weight:600;color:var(--gold-1);margin-bottom:10px}
  .cara.reverso p{font-size:.82rem;font-weight:400;color:#eef2f8;line-height:1.6}

  /* ===== Valores documentales ===== */
  .valores{display:grid;grid-template-columns:1fr 1fr;gap:22px}
  .bloque-valor{
    background:var(--white);border-radius:var(--radius);
    box-shadow:var(--shadow);padding:32px;
  }
  .bloque-valor.primarios{border-left:5px solid var(--blue)}
  .bloque-valor.secundarios{border-left:5px solid var(--gold-2)}
  .bloque-valor h4{color:var(--navy);font-size:1.05rem;font-weight:700;margin-bottom:4px}
  .bloque-valor .cuando{font-size:.78rem;color:var(--muted);font-weight:300;margin-bottom:16px}
  .pastillas{display:flex;flex-wrap:wrap;gap:10px}
  .pastilla{
    background:var(--gray-bg);border-radius:100px;
    padding:8px 18px;font-size:.83rem;font-weight:600;color:var(--navy);
  }
  .bloque-valor p.nota{font-size:.85rem;font-weight:300;color:var(--ink-soft);margin-top:16px}

  /* ===== Quiz ===== */
  .quiz{
    background:var(--white);border-radius:var(--radius);
    box-shadow:var(--shadow-lg);padding:40px;max-width:760px;margin:0 auto;
  }
  .quiz .contador{
    font-size:.78rem;font-weight:600;color:var(--blue);
    letter-spacing:1.5px;text-transform:uppercase;margin-bottom:14px;
  }
  .quiz h4.pregunta{color:var(--navy);font-size:1.15rem;font-weight:600;margin-bottom:22px;line-height:1.45}
  .opcion{
    display:block;width:100%;text-align:left;
    font-family:'Poppins',sans-serif;font-size:.92rem;font-weight:300;color:var(--ink);
    background:var(--gray-bg);border:2px solid transparent;border-radius:12px;
    padding:14px 18px;margin-bottom:12px;cursor:pointer;
    transition:all .2s ease;
  }
  .opcion:hover{border-color:var(--blue);background:var(--blue-soft)}
  .opcion.correcta{border-color:#2e9e5b;background:#e8f6ee;font-weight:600}
  .opcion.incorrecta{border-color:#c0392b;background:#fdecea}
  .opcion:disabled{cursor:default}
  .retro{
    display:none;margin-top:6px;padding:16px 18px;border-radius:12px;
    font-size:.87rem;font-weight:300;
  }
  .retro.visible{display:block;animation:fundido .4s ease}
  .retro.bien{background:#e8f6ee;color:#1e6b3d}
  .retro.mal{background:#fdecea;color:#8c2b20}
  .quiz .acciones{margin-top:22px;text-align:right}
  .btn-ased{
    font-family:'Poppins',sans-serif;
    background:var(--blue);color:#fff;border:none;border-radius:100px;
    padding:12px 32px;font-size:.9rem;font-weight:600;cursor:pointer;
    transition:all .25s ease;box-shadow:0 8px 20px rgba(48,113,189,.3);
  }
  .btn-ased:hover{background:var(--navy);transform:translateY(-2px)}
  .btn-ased:disabled{opacity:.4;cursor:default;transform:none}
  .resultado{text-align:center;display:none}
  .resultado.visible{display:block;animation:fundido .5s ease}
  .resultado .puntaje{
    font-size:3rem;font-weight:700;
    background:linear-gradient(to right,var(--gold-1),var(--gold-2));
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  }
  .resultado h4{color:var(--navy);font-weight:700;font-size:1.3rem;margin:6px 0 10px}
  .resultado p{font-weight:300;color:var(--ink-soft);font-size:.95rem;max-width:520px;margin:0 auto 24px}

  /* ===== Cierre / recomendaciones ===== */
  .cierre{
    background:var(--white);
    color:var(--ink);border:1px solid #e2e8f0;border-radius:22px;padding:52px 6%;
    box-shadow:var(--shadow);max-width:1060px;margin:0 auto;
  }
  .cierre h3{color:var(--navy);font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;margin-bottom:26px}
  .lista-cierre{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
  .paso-cierre{background:var(--gray-bg);border:1px solid #e2e8f0;
    border-radius:14px;padding:22px}
  .paso-cierre .n{
    font-weight:700;font-size:.85rem;color:var(--navy);
    background:linear-gradient(135deg,var(--gold-1),var(--gold-2));
    width:30px;height:30px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;margin-bottom:12px;
  }
  .paso-cierre p{font-size:.86rem;font-weight:400;color:var(--ink-soft)}
  .paso-cierre strong{font-weight:600;color:var(--navy)}

  @media (max-width:820px){
    .ciclo-panel.activa{grid-template-columns:1fr}
    .valores{grid-template-columns:1fr}
    .quiz{padding:28px 22px}
    main section{padding:56px 5%}
  }
