/*
 * "Skip to main content": la scorciatoia che permette di saltare header, menu e tutto
 * cio' che si ripete identico a ogni cambio di pagina, e arrivare al contenuto.
 *
 * PERCHE' SERVE. Chi naviga da tastiera o con uno screen reader non puo' "guardare in
 * mezzo alla pagina e cliccare": parte dall'inizio del documento e tabula. Senza questa
 * scorciatoia, ogni cambio di pagina costringe a ripercorrere logo, menu principale,
 * lingua, notifiche e menu utente prima di raggiungere il contenuto vero -- decine di
 * fermate identiche, ogni volta.
 * Audit TxDOT §2.2 (DGWGEOWORK-9109): WCAG 2.4.1 Bypass Blocks (livello A), rilevata
 * come "non esiste alcun metodo per saltare la navigazione ripetuta" (finding 2.4.1.a/b/c/d).
 *
 * PERCHE' STA IN Common/Styles.
 * Stesso motivo di focusVisible.css: questa cartella e' l'unica pescata sia da
 * `app.min.css` (applicazione e shell menuless) sia da `common.min.css` (pagine
 * frontend prima del login), tramite GetCssInFolder("~/Common/Styles") in
 * App_Start/Bundling/AppBundleConfig.cs e CommonBundleConfig.cs. Il file viene quindi
 * incluso senza toccare bundles.json, che e' RIGENERATO a ogni avvio da
 * BundleObject.UpdateBundleConfig() e non va editato a mano.
 *
 * IL PUNTO DELICATO: nascosto ma raggiungibile.
 * Il link non deve vedersi finche' non serve, ma deve restare nell'ordine di
 * tabulazione e nell'accessibility tree. Quindi NON si puo' usare `display: none` ne'
 * `visibility: hidden`: entrambi tolgono l'elemento anche alla tastiera e alle AT,
 * cioe' lo cancellano proprio per chi dovrebbe usarlo. Si usa il posizionamento fuori
 * schermo, che lascia l'elemento vivo a tutti gli effetti.
 * Al focus deve tornare VISIBILE (2.4.1.c), non solo focalizzabile.
 */

.gw-skip-link {
    position: absolute;
    /* Fuori dall'area visibile ma ancora renderizzato: resta focalizzabile e leggibile
       dalle AT. `top` negativo invece di `left: -9999px` perche' in RTL (dir="rtl") un
       offset orizzontale puo' allargare il documento e generare scroll. */
    top: -100px;
    left: 0;
    /* Sopra a tutto: l'header e' navbar-fixed-top (z-index 1030 di Bootstrap) e il link
       compare mentre l'header e' ancora li'. */
    z-index: 10500;
    padding: 12px 20px;
    background-color: #ffffff;
    color: #101820;
    font-weight: 600;
    text-decoration: underline;
    border: 1px solid #101820;
    border-radius: 0 0 3px 0;
    /* Nessuna transizione sull'apparizione: un link che sfuma mentre l'utente sta gia'
       premendo Invio e' peggio di uno che compare secco. */
}

.gw-skip-link:focus,
.gw-skip-link:focus-visible {
    top: 0;
    /* L'anello di focus arriva da focusVisible.css, che vale per :focus-visible su
       qualunque elemento: qui non si ridefinisce nulla. */
}

.gw-skip-link:hover,
.gw-skip-link:focus {
    color: #101820;
    text-decoration: underline;
}
