/* Skip link accesibilidad */
  .skip-link{
    position:absolute;
    left:-9999px;
    top:0;
    z-index:100000;
    background:var(--gold);
    color:var(--teal-deep);
    font-weight:800;
    font-size:16px;
    padding:14px 20px;
    border-radius:0 0 12px 0;
    text-decoration:none;
  }
  .skip-link:focus{
    left:0;
    outline:3px solid var(--teal-deep);
    outline-offset:2px;
  }
  .video-transcript{
    margin-top:12px;
    font-size:15px;
    color:#2a3a38;
    line-height:1.5;
    max-width:62ch;
  }
  .video-transcript summary{
    cursor:pointer;
    font-weight:700;
    color:var(--teal-deep);
    padding:8px 0;
  }

  :root{
    --bg: #F6F4EE;
    --bg-soft: #EFEBE0;
    --ink: #1F2E2C;
    --teal: #1E5F5B;
    --teal-deep: #123936;
    --gold: #E8A83B;
    --gold-deep: #C4841F;
    --coral: #D65F45;
    --paper: #FFFDF9;
    --line: rgba(31,46,44,0.14);
    --radius: 22px;
    --shadow: 0 14px 34px rgba(18,57,54,0.14);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}

  /* Resolución de diseño: 1080px de ancho */
    body{
    max-width:100%;
    overflow-x:hidden;
  }
  .container,
  .nav-wrap{
    max-width:1080px;
    width:100%;
  }
  /* En pantallas >= 1080 el contenido queda centrado a 1080 */
  @media (min-width:1080px){
    .container,
    .nav-wrap{
      max-width:1080px;
    }
  }

  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Public Sans', system-ui, sans-serif;
    font-size:19px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Fraunces', Georgia, serif;
    line-height:1.12;
    margin:0;
    color:var(--teal-deep);
  }
  p{margin:0;}
  a{color:inherit;}
  img,svg{display:block;max-width:100%;}
  button{font-family:inherit;cursor:pointer;}

  :focus-visible{
    outline:3px solid var(--gold-deep);
    outline-offset:3px;
    border-radius:6px;
  }

  .container{
    max-width:1080px;
    margin:0 auto;
    padding:0 28px;
  }

  /* ---------- HEADER ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    background:var(--teal-deep);
    color:var(--paper);
  }
  .nav-wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 28px;
    max-width:1080px;
    margin:0 auto;
    gap: 28px;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:12px;
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:19px;
    color:var(--paper);
    text-decoration:none;
    flex-shrink:0;
    line-height:1.18;
  }
  .brand-mark{
    width:46px;height:46px;flex-shrink:0;
    border-radius:50%;
    background:var(--paper);
    padding:4px;
    object-fit:contain;
  }
  .brand span{display:block;font-family:'Public Sans',sans-serif;font-weight:600;font-size:12.5px;color:var(--gold);letter-spacing:.03em;text-transform:uppercase;}
  nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
  nav a{
    text-decoration:none;
    color:var(--paper);
    font-weight:600;
    font-size:17px;
    padding:10px 16px;
    border-radius:10px;
    transition:background .15s ease;
    white-space:nowrap;
  }
  nav a:hover{background:rgba(255,255,255,0.12);}
  .nav-cta{
    background:var(--gold);
    color:var(--teal-deep) !important;
    padding:12px 20px !important;
    border-radius:999px !important;
    font-weight:800 !important;
  }
  .nav-cta:hover{background:#f0b654 !important;}
  .nav-toggle{display:none;}

  @media (max-width:880px){
    /* reglas base; el bloque "Menú aireado" detalla el comportamiento */
    .nav-toggle{display:flex;}
  }


  /* Menú horizontal más aireado + móvil sin tapar contenido */
  .nav-wrap{
    position:relative;
    flex-wrap:nowrap;
    column-gap:24px;
    row-gap:12px;
  }
  .nav-wrap .brand{
    margin-right:8px;
    padding-right:8px;
  }
  .voice-nav-btn{
    margin-left:4px;
    margin-right:12px;
    flex-shrink:0;
  }
  /* Desktop: menú horizontal */
  @media (min-width:881px){
    .nav-links{
      display:flex !important;
      align-items:center;
      flex-wrap:wrap;
      gap:6px 10px;
      margin-left:auto;
      position:static;
      width:auto;
      background:transparent;
      padding:0;
      max-height:none;
      overflow:visible;
    }
    .nav-links a{
      padding:10px 14px;
      letter-spacing:0.01em;
    }
    .nav-links a.is-active{
      background:rgba(255,255,255,0.16);
    }
    .nav-toggle{display:none !important;}
  }
  @media (min-width:881px) and (max-width:1100px){
    .nav-links a{padding:9px 11px;font-size:15.5px;}
    .voice-nav-btn{padding:9px 12px;font-size:14px;}
    .nav-wrap{column-gap:16px;padding-left:20px;padding-right:20px;}
  }
  /* Móvil: menú oculto; solo se abre con el botón */
  @media (max-width:880px){
    header{
      position:sticky;
      top:0;
      z-index:300;
      overflow:visible;
    }
    .nav-wrap{
      flex-wrap:wrap;
      row-gap:8px;
      column-gap:10px;
      padding:12px 16px;
      align-items:center;
      overflow:visible;
      position:relative;
      z-index:301;
    }
    .brand{order:1; min-width:0; flex:1 1 auto;}
    .voice-nav-btn{
      order:2;
      margin-left:0;
      margin-right:6px;
      flex-shrink:0;
    }
    .nav-toggle{
      order:3;
      display:flex !important;
      flex-shrink:0;
      position:relative;
      z-index:320;
      pointer-events:auto;
      min-width:48px;
      padding:10px 14px;
      background:rgba(255,255,255,0.14);
      border:2px solid rgba(255,253,249,0.45);
      color:var(--paper);
      border-radius:12px;
      font-weight:800;
      font-size:16px;
      font-family:inherit;
      cursor:pointer;
    }
    .nav-links{
      display:none !important;
      order:4;
      width:100%;
      margin-left:0;
      flex-direction:column;
      align-items:stretch;
      gap:6px;
      position:absolute;
      top:100%;
      left:0;
      right:0;
      background:var(--teal-deep);
      padding:12px 16px 18px;
      border-top:1px solid rgba(255,255,255,0.12);
      box-shadow:0 12px 28px rgba(0,0,0,0.25);
      z-index:330;
      max-height:min(70vh, 480px);
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
      pointer-events:auto;
    }
    .nav-links.open{
      display:flex !important;
    }
    .nav-links a{
      padding:14px 16px;
      font-size:17px;
      border-radius:12px;
    }
    /* El contenido no queda bajo el header al saltar a anclas */
    main section,
    .module-card,
    #c2-modulos,
    #c3-modulos,
    #modulos{
      scroll-margin-top:90px;
    }
    /* Cuando el menú está abierto, oscurecer un poco el fondo (opcional via body class) */
    body.nav-open::after{
      content:"";
      position:fixed;
      inset:0;
      background:rgba(0,0,0,0.35);
      z-index:250;
      pointer-events:none;
    }
    body.nav-open header{z-index:300;}
  }

  /* ---------- HERO ---------- */
  .hero{
    padding:60px 0 88px;
    position:relative;
    overflow:hidden;
  }
  .hero .container{
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:56px;
    align-items:center;
  }
  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:var(--bg-soft);
    border:1.5px solid var(--line);
    color:var(--teal-deep);
    font-weight:700;
    font-size:15px;
    letter-spacing:.02em;
    padding:8px 16px;
    border-radius:999px;
    margin-bottom:22px;
  }
  .hero h1{
    font-size:clamp(36px,4.6vw,54px);
    font-weight:700;
    letter-spacing:-0.01em;
  }
  .hero h1 em{
    font-style:normal;
    color:var(--coral);
  }
  .hero-sub{
    margin-top:22px;
    font-size:21px;
    line-height:1.55;
    color:#3a4a47;
    max-width:52ch;
  }
  .hero-actions{
    margin-top:34px;
    display:flex;
    gap:16px;
    flex-wrap:wrap;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:17px 30px;
    border-radius:999px;
    font-weight:800;
    font-size:18px;
    text-decoration:none;
    border:none;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{
    background:var(--coral);
    color:var(--paper);
    box-shadow:0 10px 24px rgba(214,95,69,0.35);
  }
  .btn-primary:hover{box-shadow:0 14px 30px rgba(214,95,69,0.42);}
  .btn-ghost{
    background:transparent;
    border:2px solid var(--teal-deep);
    color:var(--teal-deep);
  }
  .btn-ghost:hover{background:var(--teal-deep);color:var(--paper);}

  .hero-stats{
    margin-top:38px;
    display:flex;
    gap:30px;
    flex-wrap:wrap;
  }
  .hero-stat b{
    display:block;
    font-family:'Fraunces',serif;
    font-size:30px;
    color:var(--teal-deep);
  }
  .hero-stat span{font-size:15px;color:#5a6663;font-weight:600;}

  .hero-art{position:relative;}
  .hero-photo-frame{
    position:relative;
    border-radius:28px;
    overflow:hidden;
    box-shadow:var(--shadow);
    border:6px solid var(--paper);
    transform:rotate(1.4deg);
  }
  .hero-photo-frame img{width:100%;height:460px;object-fit:cover;display:block;}
  .hero-stamp{
    position:absolute;
    top:-18px;
    right:-18px;
    width:96px;height:96px;
    border-radius:50%;
    background:var(--paper);
    box-shadow:var(--shadow);
    display:flex;
    align-items:center;
    justify-content:center;
    transform:rotate(-10deg);
  }
  .hero-badge{
    position:absolute;
    bottom:-26px;
    left:-26px;
    width:118px;
    background:var(--paper);
    border-radius:18px;
    box-shadow:var(--shadow);
    padding:8px;
    transform:rotate(-6deg);
  }
  .hero-badge img{width:100%;height:84px;object-fit:cover;border-radius:12px;}
  .hero-badge span{
    display:block;
    text-align:center;
    font-size:11.5px;
    font-weight:800;
    color:var(--teal-deep);
    margin-top:6px;
    letter-spacing:.02em;
  }

  /* ---------- VOZ / NOMBRE ---------- */
  .voice-name-box{
    margin-top:30px;
    background:var(--paper);
    border:1.5px solid var(--line);
    border-radius:18px;
    padding:18px 20px;
    max-width:480px;
    box-shadow:var(--shadow);
  }
  .voice-name-box label{
    display:block;
    font-weight:700;
    font-size:16px;
    margin-bottom:10px;
    color:var(--teal-deep);
  }
  .voice-name-row{display:flex;gap:10px;flex-wrap:wrap;}
  .voice-name-row input{
    flex:1;
    min-width:160px;
    padding:13px 14px;
    border-radius:12px;
    border:1.5px solid var(--line);
    font-size:16px;
    font-family:inherit;
    background:var(--bg);
    color:var(--ink);
  }
  .voice-name-row button{
    padding:13px 20px;
    font-size:16px;
  }
  .voice-hint{
    font-size:13.5px;
    color:#6b7673;
    margin-top:10px;
  }

  .complete-btn{
    margin-top:22px;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    background:var(--teal);
    color:var(--paper);
    border:none;
    padding:15px;
    border-radius:12px;
    font-weight:800;
    font-size:16.5px;
    transition:background .15s ease;
  }
  .complete-btn:hover{background:var(--teal-deep);}
  .complete-btn.done{
    background:var(--gold);
    color:var(--teal-deep);
    cursor:default;
  }

  /* ---------- SECTION HEADERS ---------- */
  .section{padding:86px 0;}
  .section-alt{background:var(--paper);}
  .section-head{
    max-width:700px;
    margin-bottom:52px;
  }
  .section-tag{
    color:var(--coral);
    font-weight:800;
    font-size:15px;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-bottom:12px;
    display:block;
  }
  .section-head h2{
    font-size:clamp(30px,3.6vw,42px);
    font-weight:700;
  }
  .section-head p{
    margin-top:16px;
    font-size:19px;
    color:#3a4a47;
  }

  /* ---------- SOBRE EL CURSO ---------- */
  .info-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
  }
  .info-card{
    background:var(--paper);
    border:1.5px solid var(--line);
    border-radius:var(--radius);
    padding:28px 22px;
    text-align:left;
  }
  .info-card .icon-badge{margin-bottom:16px;}
  .info-card h3{font-size:19px;font-weight:700;margin-bottom:6px;}
  .info-card p{font-size:16px;color:#556360;}

  .about-flex{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
    align-items:start;
    margin-top:56px;
  }
  .about-copy h3{font-size:24px;margin-bottom:14px;}
  .about-copy p{color:#3a4a47;font-size:18px;margin-bottom:18px;}
  .checklist{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-direction:column;gap:14px;}
  .checklist li{
    display:flex;
    gap:12px;
    align-items:flex-start;
    font-size:17px;
    color:var(--ink);
  }
  .checklist svg{flex-shrink:0;margin-top:2px;}

  .gallery{
    position:relative;
    height:340px;
  }
  .gallery img{
    position:absolute;
    border-radius:18px;
    border:6px solid var(--paper);
    box-shadow:var(--shadow);
    object-fit:cover;
  }
  .gallery .g1{width:64%;height:280px;top:0;left:0;transform:rotate(-3deg);z-index:2;}
  .gallery .g2{width:52%;height:230px;bottom:0;right:0;transform:rotate(4deg);z-index:1;}

  /* ---------- MODULOS ---------- */
  .modules-wrap{display:flex;flex-direction:column;gap:26px;}
  .module-card{
    background:var(--paper);
    border-radius:var(--radius);
    border:1.5px solid var(--line);
    box-shadow:var(--shadow);
    padding:0;
    display:grid;
    grid-template-columns:280px 1fr;
    overflow:hidden;
    align-items:start;
  }
  .module-photo{
    position:relative;
    width:100%;
    height:300px;
    min-height:300px;
    max-height:300px;
    overflow:hidden;
    background:var(--bg-soft);
    align-self:start;
  }
  .module-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    display:block;
  }
  .module-photo-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(18,57,54,0) 40%, rgba(18,57,54,0.82) 100%);
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:20px;
  }
  .module-num{
    font-family:'Fraunces',serif;
    font-size:14px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:700;
    margin-bottom:6px;
  }
  .module-photo-overlay h3{
    color:var(--paper);
    font-size:21px;
    font-weight:700;
  }
  .stamp-mini{
    position:absolute;
    top:16px;right:16px;
    width:52px;height:52px;
    border-radius:50%;
    background:rgba(255,253,249,0.92);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 6px 14px rgba(0,0,0,0.18);
  }
  .module-body{
    padding:32px 34px;
  }
  .module-goal{
    font-size:18px;
    color:#3a4a47;
    padding-bottom:20px;
    margin-bottom:20px;
    border-bottom:1.5px dashed var(--line);
  }
  .module-goal b{color:var(--teal-deep);}
  .module-content-list{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px 26px;
  }
  .module-content-list li{
    display:flex;
    gap:10px;
    font-size:16.5px;
    color:var(--ink);
    align-items:flex-start;
  }
  .module-content-list li::before{
    content:"";
    width:8px;height:8px;
    border-radius:50%;
    background:var(--coral);
    margin-top:9px;
    flex-shrink:0;
  }

  @media (max-width:760px){
    .module-card{grid-template-columns:1fr;}
    .module-photo{
      height:220px;
      min-height:220px;
      max-height:220px;
      width:100%;
    }
    .module-photo img{
      object-position:center center;
    }
    .module-content-list{grid-template-columns:1fr;}
  }

  /* ---------- CTA BAND ---------- */
  .cta-band{
    background:var(--gold);
    padding:64px 0;
    position:relative;
    overflow:hidden;
  }
  .cta-band .container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    flex-wrap:wrap;
  }
  .cta-band h2{
    font-size:clamp(26px,3.2vw,36px);
    max-width:520px;
    color:var(--teal-deep);
  }
  .cta-band .btn-primary{
    background:var(--teal-deep);
    box-shadow:0 10px 24px rgba(18,57,54,0.35);
  }

  /* ---------- CONTACTO ---------- */
  .contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
  }
  .contact-info{display:flex;flex-direction:column;gap:22px;}
  .contact-item{
    display:flex;
    gap:16px;
    align-items:flex-start;
    background:var(--bg-soft);
    padding:20px;
    border-radius:16px;
  }
  .contact-item h3{font-size:18px;margin-bottom:4px;}
  .contact-item p{color:#3a4a47;font-size:16.5px;}
  .contact-item a{color:var(--teal-deep);font-weight:700;text-decoration:underline;}

  form{
    background:var(--paper);
    border:1.5px solid var(--line);
    border-radius:var(--radius);
    padding:34px;
    box-shadow:var(--shadow);
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .field label{
    display:block;
    font-weight:700;
    margin-bottom:8px;
    font-size:16.5px;
  }
  .field input, .field select{
    width:100%;
    padding:14px 16px;
    border-radius:12px;
    border:1.5px solid var(--line);
    font-size:17px;
    font-family:inherit;
    background:var(--bg);
    color:var(--ink);
  }
  .field input:focus, .field select:focus{
    border-color:var(--teal);
  }
  .submit-btn{
    background:var(--coral);
    color:var(--paper);
    border:none;
    padding:17px;
    border-radius:12px;
    font-weight:800;
    font-size:18px;
    margin-top:6px;
  }
  .submit-btn:hover{background:#c14e35;}
  .form-note{font-size:14.5px;color:#6b7673;text-align:center;}

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--teal-deep);
    color:rgba(255,253,249,0.85);
    padding:40px 0 26px;
  }
  .footer-flex{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:18px;
    padding-bottom:26px;
    border-bottom:1px solid rgba(255,255,255,0.14);
  }
  footer .brand{color:var(--paper);}
  footer p{font-size:15px;margin-top:18px;color:rgba(255,253,249,0.6);}

  @media (max-width:960px){
    .hero .container{grid-template-columns:1fr;}
    .hero-art{order:-1;max-width:420px;margin:26px auto 0;}
    .info-grid{grid-template-columns:1fr 1fr;}
    .about-flex{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    .gallery{margin-top:40px;}
  }
  @media (max-width:560px){
    body{font-size:17px;}
    .info-grid{grid-template-columns:1fr;}
    .hero-actions{flex-direction:column;align-items:stretch;}
    .btn{justify-content:center;}
  }

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important;transition:none !important;}
  }

  /* ---------- QUIÉNES SOMOS / MISIÓN / BLOG ---------- */
  .about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
  }
  .about-card{
    background:var(--paper);
    border:1.5px solid var(--line);
    border-radius:var(--radius);
    padding:28px 24px;
    box-shadow:var(--shadow);
  }
  .about-card h3{font-size:22px;margin-bottom:12px;}
  .about-card p{color:#3a4a47;font-size:17px;margin-bottom:12px;}
  .values-list{
    list-style:none;padding:0;margin:32px 0 0;
    display:grid;grid-template-columns:1fr 1fr;gap:16px;
  }
  .values-list li{
    background:var(--bg-soft);
    border:1.5px solid var(--line);
    border-radius:16px;
    padding:18px;
  }
  .values-list li strong{
    display:block;
    font-family:'Fraunces',serif;
    font-size:18px;
    color:var(--teal-deep);
    margin-bottom:6px;
  }
  .values-list li span{font-size:15.5px;color:#556360;}
  .pillars{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    margin-top:28px;
  }
  .pillar{
    background:var(--paper);
    border:1.5px solid var(--line);
    border-radius:var(--radius);
    padding:24px 20px;
  }
  .pillar .num{
    font-family:'Fraunces',serif;
    font-size:13px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--coral);
    font-weight:700;
    margin-bottom:8px;
  }
  .pillar h3{font-size:19px;margin-bottom:8px;}
  .pillar p{font-size:16px;color:#556360;}
  .mission-highlight{
    background:var(--gold);
    border-radius:var(--radius);
    padding:32px 28px;
    margin-top:36px;
  }
  .mission-highlight h3{color:var(--teal-deep);font-size:24px;margin-bottom:10px;}
  .mission-highlight p{color:var(--teal-deep);font-size:17.5px;max-width:58ch;}
  .blog-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
  }
  .post-card{
    background:var(--paper);
    border:1.5px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  .post-card .post-top{
    background:var(--bg-soft);
    padding:18px 20px 14px;
    border-bottom:1.5px solid var(--line);
  }
  .post-card .date{
    font-size:13px;
    font-weight:800;
    color:var(--coral);
    letter-spacing:.04em;
    text-transform:uppercase;
    margin-bottom:6px;
  }
  .post-card h3{font-size:20px;}
  .post-card .post-body{padding:18px 20px 22px;flex:1;display:flex;flex-direction:column;}
  .post-card p{font-size:16px;color:#3a4a47;margin-bottom:14px;flex:1;}
  .post-card .read-more{
    font-weight:800;
    font-size:15px;
    color:var(--teal);
    text-decoration:none;
  }
  .post-card .read-more:hover{color:var(--coral);}
  .post-card.featured{grid-column:1 / -1;}
  .post-card.featured .post-top{background:var(--teal-deep);}
  .post-card.featured .date{color:var(--gold);}
  .post-card.featured h3{color:var(--paper);}
  @media (max-width:760px){
    .about-grid,.values-list,.pillars,.blog-grid{grid-template-columns:1fr;}
  }


  section.section, .cta-band { content-visibility: auto; contain-intrinsic-size: 800px; }


  /* ---------- BOTONES ESCUCHAR (adultos mayores) ---------- */
  .listen-btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:18px;
    background:var(--teal);
    color:var(--paper);
    border:none;
    padding:14px 22px;
    border-radius:999px;
    font-weight:800;
    font-size:17px;
    box-shadow:0 8px 18px rgba(30,95,91,0.25);
    transition:background .15s ease, transform .15s ease;
  }
  .listen-btn:hover{background:var(--teal-deep);transform:translateY(-1px);}
  .listen-btn:active{transform:translateY(0);}
  .listen-btn.playing{
    background:var(--gold);
    color:var(--teal-deep);
  }
  .listen-btn-ghost{
    background:transparent;
    border:2px solid var(--teal-deep);
    color:var(--teal-deep);
    box-shadow:none;
  }
  .listen-btn-ghost:hover{background:var(--teal-deep);color:var(--paper);}
  .listen-btn-ghost.playing{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--teal-deep);
  }
  .hero-copy .listen-btn{margin-top:20px;}


  /* ---------- INTRO LOGO VIDEO ---------- */
  .intro-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    justify-content:center;
    margin-top:22px;
  }
  .intro-sound{
    background:var(--coral);
    color:var(--paper);
    border:none;
    padding:14px 26px;
    border-radius:999px;
    font-weight:800;
    font-size:17px;
    font-family:inherit;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(214,95,69,0.35);
  }
  .intro-sound:hover{background:#c14e35;}
  .intro-sound.is-on{
    background:var(--gold);
    color:var(--teal-deep);
    box-shadow:0 8px 20px rgba(232,168,59,0.35);
  }
  .intro-overlay .intro-skip{margin-top:0;}

  .intro-overlay{
    position:fixed;
    inset:0;
    z-index:9999;
    background:#e8e8e8;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    transition:opacity .5s ease, visibility .5s ease;
  }
  .intro-overlay.is-hidden{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
  .intro-overlay video{
    width:min(96vw, 960px);
    max-height:78vh;
    height:auto;
    border-radius:16px;
    box-shadow:0 20px 50px rgba(18,57,54,0.22);
    background:#ddd;
    cursor:pointer;
  }
  .intro-overlay:fullscreen,
  .intro-overlay:-webkit-full-screen{
    background:#111;
  }
  .intro-overlay:fullscreen video,
  .intro-overlay:-webkit-full-screen video{
    width:min(96vw, 1100px);
    max-height:82vh;
  }
  .intro-skip{
    margin-top:22px;
    background:var(--teal-deep);
    color:var(--paper);
    border:none;
    padding:14px 28px;
    border-radius:999px;
    font-weight:800;
    font-size:17px;
    font-family:inherit;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(18,57,54,0.25);
  }
  .intro-skip:hover{background:var(--teal);}
  .intro-hint{
    margin-top:12px;
    font-size:14.5px;
    color:#5a6663;
    font-weight:600;
  }
  @media (prefers-reduced-motion: reduce){
    .intro-overlay{display:none !important;}
  }


  /* ---------- MÓVIL / iOS ---------- */
  .intro-overlay{
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  }
  .intro-skip{
    min-height:48px;
    min-width:48px;
    padding:16px 28px;
    font-size:18px;
    -webkit-tap-highlight-color: transparent;
  }
  .listen-btn{
    min-height:48px;
    -webkit-tap-highlight-color: transparent;
  }
  .btn, .submit-btn, .complete-btn, .nav-toggle{
    min-height:48px;
    -webkit-tap-highlight-color: transparent;
  }
  .field input, .field select, .voice-name-row input{
    font-size:16px; /* evita zoom automático en iOS */
    min-height:48px;
  }
  header{
    padding-top: env(safe-area-inset-top);
  }
  @media (max-width:560px){
    .intro-overlay video{
      width:96vw;
      max-height:70vh;
      border-radius:12px;
    }
    .nav-wrap{padding:10px 16px;}
    .container{padding:0 18px;}
    .module-body{padding:22px 18px;}
    .hero-photo-frame img{height:300px;}
  }


  /* ---------- VIDEO CIERRE ---------- */
  .cierre-video-wrap{
    max-width:720px;
    margin:0 auto;
  }
  .cierre-video-wrap video{
    width:100%;
    height:auto;
    border-radius:18px;
    border:6px solid var(--paper);
    box-shadow:var(--shadow);
    background:#111;
    display:block;
  }
  .cierre-play-row{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    justify-content:center;
    margin-top:18px;
  }
  .cierre-play-row .listen-btn{margin-top:0;}


  /* Multi-página: nav activa */
  nav a.is-active{
    background:rgba(255,255,255,0.18);
  }
  .module-audio-row{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
    margin-bottom:4px;
  }
  .module-audio-row .listen-btn{
    margin-top:0;
  }

  .page-hero-mini{
    padding:48px 0 28px;
  }
  .page-hero-mini h1{
    font-size:clamp(28px,3.5vw,40px);
  }

  /* ---------- NAVEGACIÓN POR VOZ ---------- */
  .voice-nav-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:rgba(255,255,255,0.12);
    border:2px solid rgba(255,253,249,0.45);
    color:var(--paper);
    border-radius:999px;
    padding:10px 16px;
    font-weight:800;
    font-size:15px;
    font-family:inherit;
    cursor:pointer;
    white-space:nowrap;
    -webkit-tap-highlight-color: transparent;
  }
  .voice-nav-btn:hover{background:rgba(255,255,255,0.2);}
  .voice-nav-btn.is-listening{
    background:var(--coral);
    border-color:var(--coral);
    animation: voicePulse 1.2s ease-in-out infinite;
  }
  @keyframes voicePulse{
    0%,100%{box-shadow:0 0 0 0 rgba(214,95,69,0.55);}
    50%{box-shadow:0 0 0 10px rgba(214,95,69,0);}
  }
  .voice-nav-status{
    position:fixed;
    bottom:22px;
    left:50%;
    transform:translateX(-50%);
    z-index:10000;
    background:var(--teal-deep);
    color:var(--paper);
    padding:14px 22px;
    border-radius:999px;
    font-weight:700;
    font-size:16px;
    box-shadow:var(--shadow);
    max-width:90vw;
    text-align:center;
    display:none;
  }
  .voice-nav-status.is-visible{display:block;}
  @media (max-width:880px){
    .voice-nav-btn{padding:10px 12px;font-size:14px;}
    .voice-nav-btn .vn-label{display:none;}
  }

  /* ---------- EJERCICIOS DE MÓDULO ---------- */
  .module-exercise{
    margin-top:22px;
    padding:20px 18px;
    background:var(--bg-soft);
    border:1.5px solid var(--line);
    border-radius:16px;
  }
  .module-exercise h4{
    font-family:'Fraunces',serif;
    font-size:18px;
    color:var(--teal-deep);
    margin:0 0 10px;
  }
  .module-exercise .ex-intro{
    font-size:15.5px;
    color:#3a4a47;
    margin-bottom:12px;
  }
  .module-exercise ol{
    margin:0 0 14px 0;
    padding-left:22px;
  }
  .module-exercise ol li{
    font-size:16px;
    margin-bottom:8px;
    color:var(--ink);
  }
  .module-exercise ol li.is-current{
    background:rgba(232,168,59,0.25);
    border-radius:8px;
    padding:4px 8px;
    margin-left:-8px;
  }
  .module-exercise .ex-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
  }
  .module-exercise .ex-step-msg{
    margin-top:12px;
    font-size:15px;
    font-weight:700;
    color:var(--teal-deep);
    min-height:1.3em;
  }

  @media (max-width:700px){
    .about-card[style*="grid-template-columns:1fr 1.2fr"]{
      grid-template-columns:1fr !important;
    }
  }

  .visually-hidden{
    position:absolute !important;
    width:1px;height:1px;
    padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);
    white-space:nowrap;border:0;
  }

  /* ===== NUEVA VERSIÓN AUTOESTUDIO ===== */
  .module-study{
    margin:18px 0 14px;
    padding:16px 18px;
    background:rgba(30,95,91,0.06);
    border-radius:14px;
    border-left:4px solid var(--teal-deep);
  }
  .module-study h4{
    font-family:'Fraunces',serif;
    font-size:18px;
    color:var(--teal-deep);
    margin:0 0 10px;
  }
  .module-study p{
    font-size:16.5px;
    line-height:1.55;
    margin:0 0 10px;
    color:var(--ink);
  }
  .module-study p:last-child{margin-bottom:0;}

  .module-summary{
    margin:14px 0;
    padding:14px 16px;
    background:#fff;
    border:1.5px solid rgba(30,95,91,0.18);
    border-radius:12px;
  }
  .module-summary h4{
    font-size:16px;
    color:var(--teal-deep);
    margin:0 0 8px;
  }
  .module-summary ul{
    margin:0;
    padding-left:20px;
  }
  .module-summary li{
    font-size:15.5px;
    margin-bottom:5px;
    color:var(--ink);
  }

  .module-game, .module-quiz{
    margin:18px 0 14px;
    padding:16px 18px;
    background:rgba(232,168,59,0.08);
    border-radius:14px;
    border:1.5px solid rgba(232,168,59,0.35);
  }
  .module-game h4, .module-quiz h4{
    font-family:'Fraunces',serif;
    font-size:18px;
    color:var(--teal-deep);
    margin:0 0 10px;
  }
  .module-game p, .module-quiz p{
    font-size:15.5px;
    margin:0 0 12px;
    color:#3a4a47;
  }

  .quiz-question{
    margin-bottom:18px;
    padding-bottom:14px;
    border-bottom:1px solid rgba(30,95,91,0.12);
  }
  .quiz-question:last-of-type{border-bottom:none;}
  .quiz-q-text{
    font-size:16.5px;
    font-weight:600;
    color:var(--ink);
    margin:0 0 10px;
  }
  .quiz-options{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .quiz-opt{
    display:block;
    width:100%;
    text-align:left;
    padding:12px 14px;
    font-size:15.5px;
    line-height:1.4;
    background:#fff;
    border:1.5px solid rgba(30,95,91,0.2);
    border-radius:10px;
    color:var(--ink);
    transition:background .15s, border-color .15s;
  }
  .quiz-opt:hover, .quiz-opt:focus{
    background:rgba(30,95,91,0.06);
    border-color:var(--teal-deep);
  }
  .quiz-opt.correct{
    background:rgba(30,95,91,0.15);
    border-color:var(--teal-deep);
    font-weight:600;
  }
  .quiz-opt.incorrect{
    background:rgba(180,60,60,0.1);
    border-color:#b43c3c;
  }
  .quiz-opt:disabled{cursor:default;opacity:0.95;}
  .quiz-feedback{
    margin-top:8px;
    font-size:15px;
    font-weight:600;
    min-height:1.3em;
  }
  .quiz-feedback.ok{color:var(--teal-deep);}
  .quiz-feedback.bad{color:#b43c3c;}
  .quiz-result{
    margin-top:14px;
    padding:12px 14px;
    background:rgba(30,95,91,0.1);
    border-radius:10px;
    font-size:16px;
    font-weight:700;
    color:var(--teal-deep);
    text-align:center;
  }

  .game-options{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .game-opt{
    display:block;
    width:100%;
    text-align:left;
    padding:12px 14px;
    font-size:15.5px;
    background:#fff;
    border:1.5px solid rgba(30,95,91,0.2);
    border-radius:10px;
    color:var(--ink);
  }
  .game-opt:hover{background:rgba(30,95,91,0.06);border-color:var(--teal-deep);}
  .game-opt.selected-correct{background:rgba(30,95,91,0.15);border-color:var(--teal-deep);font-weight:600;}
  .game-opt.selected-wrong{background:rgba(180,60,60,0.1);border-color:#b43c3c;}
  .game-feedback{
    margin-top:10px;
    font-size:15px;
    font-weight:600;
    color:var(--teal-deep);
  }

  /* Mejoras menú móvil */
  @media (max-width:880px){
    .nav-links a{
      padding:14px 18px !important;
      font-size:17px !important;
      min-height:48px;
      display:flex;
      align-items:center;
    }
    .nav-toggle{
      min-width:48px;
      min-height:48px;
      font-size:18px;
    }
    .voice-nav-btn{
      min-height:44px;
    }
  }
  @media (max-width:560px){
    .module-study, .module-summary, .module-game, .module-quiz{
      padding:14px 14px;
    }
    .quiz-opt, .game-opt{
      padding:14px 12px;
      font-size:16px;
    }
  }
