/* TTU accessibility layer: skip links, focus, keyboard menus, voice navigation UI.
   Loaded after the page styles; uses the TTU brand colours (green #006400, gold #D4AF37). */

/* ---- Visually hidden, still read by screen readers ---- */
.sr-only {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0; border: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

/* ---- Skip links: first tab stops on every page ---- */
.skip-links { position: absolute; top: 0; left: 0; z-index: 100000; }
.skip-link {
    position: absolute;
    left: -9999px;
    top: 8px;
    background: #004d00;
    color: #fff;
    padding: 12px 18px;
    border: 3px solid #D4AF37;
    border-radius: 6px;
    font: 600 1rem/1.2 'Poppins', Arial, sans-serif;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
}
.skip-link:focus { left: 8px; }

/* ---- Always-visible keyboard focus (some page styles remove outlines) ---- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
    outline: 3px solid #D4AF37 !important;
    outline-offset: 2px !important;
}
.top-bar a:focus-visible, .top-bar button:focus-visible { outline-color: #fff !important; }
#main-content:focus, #mainNav:focus { outline: none; }

/* ---- Keyboard-operable dropdown menus (desktop) ---- */
@media (min-width: 901px) {
    .dropdown:focus-within .dropdown-content { display: block; }
}
.dropdown.dd-closed .dropdown-content { display: none !important; }

/* ---- Search toggle is now a real button ---- */
button.search-icon { font: inherit; font-size: 1.2rem; padding: 0; }

/* ---- Voice navigation control in the top bar ---- */
.voice-toggle {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 20px;
    padding: 3px 12px;
    font: 500 0.85rem 'Poppins', Arial, sans-serif;
    cursor: pointer;
}
.voice-toggle:hover { border-color: #D4AF37; color: #D4AF37; }
.voice-toggle[aria-pressed="true"] { background: #D4AF37; color: #004d00; border-color: #D4AF37; }
.voice-toggle[hidden], .skip-link[hidden] { display: none; }

/* ---- Voice navigation: consent dialog ---- */
.ttu-voice-backdrop {
    position: fixed; inset: 0; z-index: 100002;
    background: rgba(10, 20, 10, 0.75);
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
}
.ttu-voice-dialog {
    background: #fff; color: #222;
    max-width: 520px; width: 100%;
    border-top: 6px solid #D4AF37;
    border-radius: 10px;
    padding: 24px;
    font-family: 'Poppins', Arial, sans-serif;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
}
.ttu-voice-dialog h2 { margin: 0 0 12px; color: #006400; font-size: 1.4rem; }
.ttu-voice-dialog p { margin: 0 0 12px; line-height: 1.55; font-size: 1rem; }
.ttu-voice-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.ttu-voice-btn {
    font: 600 1rem 'Poppins', Arial, sans-serif;
    padding: 12px 22px; border-radius: 30px; cursor: pointer;
    border: 2px solid #006400;
}
.ttu-voice-btn.primary { background: #006400; color: #fff; }
.ttu-voice-btn.secondary { background: #fff; color: #006400; }

/* ---- Voice navigation: stop button and resume banner ---- */
.ttu-voice-stop {
    position: fixed; top: 12px; right: 12px; z-index: 100001;
    background: #b02a37; color: #fff;
    border: 3px solid #fff; border-radius: 30px;
    padding: 10px 20px;
    font: 700 1rem 'Poppins', Arial, sans-serif;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}
.ttu-voice-resume {
    position: fixed; left: 0; right: 0; top: 0; z-index: 100001;
    background: #004d00; color: #fff;
    border-bottom: 4px solid #D4AF37;
    padding: 14px 20px;
    display: flex; gap: 14px; align-items: center; justify-content: center; flex-wrap: wrap;
    font: 500 1rem 'Poppins', Arial, sans-serif;
}
.ttu-voice-resume .ttu-voice-btn { padding: 8px 18px; border-color: #D4AF37; }
.ttu-voice-resume .ttu-voice-btn.primary { background: #D4AF37; color: #004d00; }
.ttu-voice-resume .ttu-voice-btn.secondary { background: transparent; color: #fff; }

@media (prefers-reduced-motion: reduce) {
    * { scroll-behavior: auto !important; }
}
