/*
 * Accessibilità — WI #1183: link riconoscibili solo dal colore (F73, 1.4.1)
 * e indicatore di focus assente o invisibile (F78/G195, criteri 1.4.11 e
 * 2.4.7).
 *
 * Foglio accodato per ultimo da enqueue_theme_accessibility_css() in
 * functions.php (priorità 12 su wp_enqueue_scripts): il padre italiawp2
 * carica lo style.css del child PRIMA di tema.css e adjustments.css
 * (vedi inc/enqueue.php, priorità 11), quindi il child perde la cascata a
 * parità di specificità. Qui si vince senza aggiungere altri !important.
 */

/* ------------------------------------------------------------------ *
 * Link nel testo (1.4.1, F73)
 *
 * .testolungo è il contenitore di the_content() in tutti i template che
 * pubblicano prosa (pagina, post, scheda dati, scoping review, richiesta
 * dati): vedi template-parts/*-loop.php e page-loop-nosidebar.php. Il
 * colore blu del link (ereditato da italiawp2) non basta da solo: serve
 * la sottolineatura anche a riposo, non solo su :hover.
 *
 * Restano esclusi i link già distinguibili per conto loro — pulsanti,
 * chip, i pulsanti a blocco di Gutenberg (.wp-block-button__link) e i
 * link di download WPFD (.wpfd_downloadlink, verificato in style.css:
 * colore bianco su sfondo colorato) — per non introdurre una
 * sottolineatura dove non serve, se uno di questi finisse dentro il
 * corpo di una pagina o di un post.
 * ------------------------------------------------------------------ */
.testolungo a:not(.btn, .badge, .wp-block-button__link, .wpfd_downloadlink) {
    text-decoration: underline;
}

/* ------------------------------------------------------------------ *
 * Anello di focus (1.4.11, 2.4.7 — F78, G195)
 *
 * Bootstrap Italia ha già un proprio meccanismo (JS che marca il focus da
 * mouse, più una regola universale con box-shadow arancione !important)
 * e su gran parte degli elementi già funziona — verificato a tastiera su
 * logo, menu, pulsanti e sul campo di ricerca in header. Ma è un
 * meccanismo di terze parti, non una garanzia del tema: alcune regole
 * puntuali (es. #wp-calendar a:focus in adjustments.css, oggi dormiente
 * perché il widget Calendario non è in uso, ma pronta a riattivarsi se lo
 * diventa) tolgono l'outline nativo con un semplice `outline: 0` senza
 * passare da quel meccanismo. :focus-visible qui è la base esplicita che
 * non dipende dal JS del padre, a copertura di quei casi e di eventuali
 * altri non ancora incontrati.
 *
 * !important necessario: `.btn.focus, .btn:focus` (bootstrap-italia)
 * arriva a specificità (0,2,0), più alta di una regola per tipo come
 * `button:focus-visible` (0,1,1). Senza !important l'outline qui sotto
 * perderebbe su ogni elemento con classe .btn.
 * ------------------------------------------------------------------ */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
    outline: 2px solid #FF8C00 !important;
    outline-offset: 2px !important;
}

/* ------------------------------------------------------------------
 * Link di salto (2.4.7): il contenitore .skiplink è .sr-only e non si
 * mostrava nemmeno col focus su uno dei suoi link, tre Tab a vuoto a
 * inizio pagina. Con il focus dentro torna nel flusso, sopra l'header.
 * ------------------------------------------------------------------ */
.skiplink.sr-only:focus-within {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

.skiplink ul {
    margin: 0;
    padding: 8px 16px;
    list-style: none;
}

.skiplink li {
    display: inline-block;
    margin-right: 24px;
}

/* ------------------------------------------------------------------
 * Header fisso: a pagina scorsa #mainheader resta in alto, alto 60px, e
 * tornando indietro col Tab l'elemento con il focus ci finiva sotto.
 * Il margine vale anche per i salti alle ancore.
 * ------------------------------------------------------------------ */
html {
    scroll-padding-top: 76px;
}

/* ------------------------------------------------------------------
 * Tabella dei download WPFD (WI #1187): il nome del file diventa un
 * th di riga (wpfd.js), ma deve restare identico al td.file_title di
 * WPFD, che ha font-size 20px e nessun grassetto.
 * ------------------------------------------------------------------ */
.wpfd-content-table .wpfd-table tbody th.file_title[scope="row"] {
    font-size: 20px;
    font-weight: inherit;
}
