/* Menú móvil común a toda la web: en pantallas estrechas los enlaces del .tnav se pliegan tras un botón "Menú". */
.tnav-burger { display: none; }
@media (max-width: 960px) {
  .tnav-burger { display: inline-flex; align-items: center; gap: 9px; flex: none; margin-left: auto; height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(46,44,42,.25); background: rgba(250,250,249,.92); color: #2E2C2A; font: 600 13px/1 'Archivo', Helvetica, Arial, sans-serif; cursor: pointer; }
  .tnav-burger i { display: block; width: 16px; height: 2px; background: currentColor; box-shadow: 0 -5px 0 currentColor, 0 5px 0 currentColor; }
  .tnav.is-open .tnav-burger i { background: transparent; box-shadow: none; position: relative; }
  .tnav.is-open .tnav-burger i::before, .tnav.is-open .tnav-burger i::after { content: ""; position: absolute; left: 0; top: 0; width: 16px; height: 2px; background: #2E2C2A; transform: rotate(45deg); }
  .tnav.is-open .tnav-burger i::after { transform: rotate(-45deg); }
  .tnav-links { display: none !important; }
  .tnav.is-open { background: rgba(250,250,249,.98); }
  .tnav.is-open .tnav-links { display: flex !important; flex-direction: column; align-items: flex-start; gap: 4px; position: absolute; left: 0; right: 0; top: 100%; padding: 10px var(--gut, 24px) 22px; background: rgba(250,250,249,.98); border-bottom: 1px solid rgba(46,44,42,.12); box-shadow: 0 18px 40px rgba(0,0,0,.08); }
  .tnav.is-open .tnav-links > a, .tnav.is-open .tnav-drop > a { display: block; font-size: 18px !important; letter-spacing: 0 !important; opacity: 1; padding: 9px 0; }
  .tnav.is-open .tnav-drop { position: static; }
  .tnav-drop-menu { display: none !important; }
}

/* fila fina superior: certificado · espacio alumnos · espacio profesores */
:root { --navh: 100px; }
.tnav { flex-wrap: wrap; row-gap: 0; }
.tnav-util { flex: 1 1 100%; order: -1; display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin: -8px 0 10px; padding-bottom: 7px; border-bottom: 1px solid rgba(46,44,42,.10); font-family: 'Archivo', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 11.5px; font-weight: 400; letter-spacing: .04em; color: rgba(46,44,42,.62); }
.tnav-util a { color: inherit; text-decoration: none; opacity: 1; transition: color .2s; }
.tnav-util a:hover { color: #2E2C2A; }
.tnav-util span { opacity: .5; }
.tnav-app svg { width: 9px; height: 9px; margin-left: 3px; vertical-align: 0; }
.tnav-mini svg { width: 10px; height: 10px; margin-left: 4px; }
.tnav.is-stuck .tnav-util { margin-top: -2px; margin-bottom: 8px; padding-bottom: 5px; }
.tnav-mini { display: none; }
@media (max-width: 960px){
  :root { --navh: 74px; }
  .tnav-util { display: none; }
  .tnav.is-open .tnav-links .tnav-mini { display: block; font-size: 14px !important; color: rgba(46,44,42,.65); padding: 6px 0 !important; }
  .tnav.is-open .tnav-links .tnav-mini:first-of-type { margin-top: 10px; border-top: 1px solid rgba(46,44,42,.12); padding-top: 14px !important; }
}

/* selector de idioma (todas las páginas) */
.tnav-util .tnav-lang { appearance: none; -webkit-appearance: none; border: 1px solid rgba(46,44,42,.28); border-radius: 999px; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%232E2C2A' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 8px center; background-size: 9px; padding: 3px 22px 3px 10px; font: inherit; font-size: 11.5px; letter-spacing: .04em; color: inherit; cursor: pointer; margin-left: 6px; }
.tnav-util .tnav-lang:focus-visible { outline: 2px solid rgb(243,150,58); outline-offset: 2px; }
.tnav-lang--m { display: none; }
@media (max-width: 960px){
  .tnav.is-open .tnav-links .tnav-lang--m { display: block; margin-top: 14px; width: 100%; max-width: 240px; padding: 9px 12px; border: 1px solid rgba(46,44,42,.28); border-radius: 10px; background: #FAFAF9; font: inherit; font-size: 15px; color: #2E2C2A; }
}
/* WhatsApp flotante (todas las páginas) */
.wa-float { position: fixed; right: 18px; bottom: 18px; z-index: 90; width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(0,0,0,.22); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.wa-float:hover { transform: scale(1.06); box-shadow: 0 10px 24px rgba(0,0,0,.26); }
.wa-float svg { width: 30px; height: 30px; fill: currentColor; display: block; }
.wa-float:focus-visible { outline: 3px solid #2E2C2A; outline-offset: 3px; }
@media (max-width: 760px){ .wa-float { width: 52px; height: 52px; right: 14px; bottom: 14px; } .wa-float svg { width: 28px; height: 28px; } }
@media print { .wa-float, .tnav-lang { display: none !important; } }

/* un solo toque: en pantallas táctiles el desplegable de Formaciones no se abre al primer toque, el enlace navega directamente */
.tnav a, .tnav button { touch-action: manipulation; }
@media (hover: none){ .tnav-drop-menu { display: none !important; } .tnav-drop > a::after { display: none !important; } }
