/**
 * Focus visibile AGID / Bootstrap Italia (WCAG 2.1 AA — criterio 2.4.7).
 * Contorno arancione su click e Tab (come siti PA di riferimento).
 *
 * @see https://designers.italia.it/
 */

:root {
	--apsp-focus-color: #ff9900;
	--apsp-focus-inner: #ffffff;
	--apsp-focus-width: 3px;
	--apsp-focus-offset: 2px;
	--apsp-focus-ring: 0 0 0 2px var(--apsp-focus-inner), 0 0 0 5px var(--apsp-focus-color);
}

/* Anello arancione rettangolare — click (:focus) e tastiera (:focus-visible) */
main a:focus,
main a:focus-visible,
.apsp-comuni-page a:focus,
.apsp-comuni-page a:focus-visible,
.apsp-comuni-page .entry-content a:focus,
.apsp-comuni-page .entry-content a:focus-visible,
.apsp-comuni-page .entry-content p a:focus,
.breadcrumb a:focus,
.breadcrumb a:focus-visible,
.apsp-section-card__link:focus,
.apsp-section-card__link:focus-visible,
.card a:focus,
.card a:focus-visible,
.it-card a:focus,
.it-card a:focus-visible,
.link-list a:focus,
.link-list a:focus-visible,
.link-list-wrapper a:focus,
.link-list-wrapper a:focus-visible,
.list-item:focus,
.list-item:focus-visible,
.nav-link:focus,
.nav-link:focus-visible,
.it-searchbar a:focus,
.it-searchbar a:focus-visible,
.apsp-at-comuni-nav .link-list-wrapper ul li a:focus,
.apsp-at-comuni-nav .link-list-wrapper ul li a:focus-visible,
.apsp-at-comuni-nav .accordion-button:focus,
.apsp-at-comuni-nav .accordion-button:focus-visible,
main button:focus,
main button:focus-visible,
.apsp-comuni-page button:focus,
.apsp-comuni-page button:focus-visible,
.btn:focus,
.btn:focus-visible,
summary:focus,
summary:focus-visible,
[role="button"]:focus,
[role="button"]:focus-visible,
[tabindex]:not([tabindex="-1"]):focus,
[tabindex]:not([tabindex="-1"]):focus-visible,
.apsp-forms-form a:focus,
.apsp-forms-form a:focus-visible,
.apsp-forms-form button:focus,
.apsp-forms-form button:focus-visible,
.apsp-albo-comuni a:focus,
.apsp-albo-comuni a:focus-visible,
body.apsp-albo-page a:focus,
body.apsp-albo-page a:focus-visible,
.albo-pretorio-container a:focus,
.albo-pretorio-container a:focus-visible {
	outline: var(--apsp-focus-width) solid var(--apsp-focus-color) !important;
	outline-offset: var(--apsp-focus-offset) !important;
	box-shadow: none !important;
}

/* Campi form */
input[type="search"]:focus,
input[type="search"]:focus-visible,
input[type="text"]:focus,
input[type="text"]:focus-visible,
input[type="email"]:focus,
input[type="email"]:focus-visible,
input[type="tel"]:focus,
input[type="tel"]:focus-visible,
input[type="url"]:focus,
input[type="url"]:focus-visible,
input[type="number"]:focus,
input[type="number"]:focus-visible,
input[type="date"]:focus,
input[type="date"]:focus-visible,
input[type="password"]:focus,
input[type="password"]:focus-visible,
select:focus,
select:focus-visible,
textarea:focus,
textarea:focus-visible,
.form-control:focus,
.form-control:focus-visible,
.form-select:focus,
.form-select:focus-visible,
.form-check-input:focus,
.form-check-input:focus-visible,
.apsp-forms-form .form-control:focus,
.apsp-forms-form .form-control:focus-visible,
.apsp-forms-form .form-select:focus,
.apsp-forms-form .form-select:focus-visible,
.apsp-forms-form textarea:focus,
.apsp-forms-form textarea:focus-visible,
.apsp-forms-check__input:focus,
.apsp-forms-check__input:focus-visible,
.apsp-at-menu-search .form-control:focus,
.apsp-at-menu-search .form-control:focus-visible,
.apsp-albo-comuni input:focus,
.apsp-albo-comuni input:focus-visible,
.apsp-albo-comuni select:focus,
.apsp-albo-comuni select:focus-visible {
	outline: var(--apsp-focus-width) solid var(--apsp-focus-color) !important;
	outline-offset: var(--apsp-focus-offset) !important;
	border-color: #0066cc !important;
	box-shadow: none !important;
}

.apsp-forms-check:focus-within,
.apsp-forms-check:focus-within:has(:focus) {
	border-color: var(--apsp-focus-color) !important;
	box-shadow: var(--apsp-focus-ring) !important;
}

/* Header / footer scuri — doppio bordo bianco + arancione */
.it-header-slim-wrapper a:focus,
.it-header-slim-wrapper a:focus-visible,
.it-header-slim-wrapper button:focus,
.it-header-slim-wrapper button:focus-visible,
.it-header-center-wrapper a:focus,
.it-header-center-wrapper a:focus-visible,
.it-header-navbar-wrapper a:focus,
.it-header-navbar-wrapper a:focus-visible,
.it-header-navbar-wrapper button:focus,
.it-header-navbar-wrapper button:focus-visible,
.it-header-navbar-wrapper .nav-link:focus,
.it-header-navbar-wrapper .nav-link:focus-visible,
.it-header-navbar-wrapper .list-item:focus,
.it-header-navbar-wrapper .list-item:focus-visible,
.it-header-navbar-wrapper .logo-hamburger:focus,
.it-header-navbar-wrapper .logo-hamburger:focus-visible,
.it-header-navbar-wrapper .close-menu:focus,
.it-header-navbar-wrapper .close-menu:focus-visible,
.it-footer a:focus,
.it-footer a:focus-visible,
.it-footer button:focus,
.it-footer button:focus-visible,
.it-footer .list-item:focus,
.it-footer .list-item:focus-visible,
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-outline-primary:focus,
.btn-outline-primary:focus-visible,
.apsp-albo-comuni .albo-view-btn:focus,
.apsp-albo-comuni .albo-view-btn:focus-visible,
.apsp-albo-comuni .albo-modal-close:focus,
.apsp-albo-comuni .albo-modal-close:focus-visible,
body.apsp-albo-page .albo-view-btn:focus,
body.apsp-albo-page .albo-view-btn:focus-visible,
body.apsp-albo-page .albo-modal-close:focus,
body.apsp-albo-page .albo-modal-close:focus-visible,
.apsp-albo-comuni .btn-primary:focus,
.apsp-albo-comuni .btn-primary:focus-visible,
.apsp-albo-comuni .albo-view-details-btn:focus,
.apsp-albo-comuni .albo-view-details-btn:focus-visible,
body.apsp-albo-page .btn-primary:focus,
body.apsp-albo-page .btn-primary:focus-visible {
	outline: none !important;
	box-shadow: var(--apsp-focus-ring) !important;
}

@media (max-width: 991.98px) {
	.it-header-navbar-wrapper .navbar-collapsable .nav-link:focus,
	.it-header-navbar-wrapper .navbar-collapsable .nav-link:focus-visible,
	.it-header-navbar-wrapper .navbar-collapsable .list-item:focus,
	.it-header-navbar-wrapper .navbar-collapsable .list-item:focus-visible {
		outline: var(--apsp-focus-width) solid var(--apsp-focus-color) !important;
		outline-offset: var(--apsp-focus-offset) !important;
		box-shadow: none !important;
	}
}

/* Card hub sezioni */
.apsp-section-card__link:focus,
.apsp-section-card__link:focus-visible {
	border-color: var(--apsp-focus-color) !important;
	box-shadow: 0 0 0 2px var(--apsp-focus-color), 0 4px 12px rgba(15, 23, 42, 0.1) !important;
}

/* Sovrascrive Bootstrap Italia / tema che azzerano outline su :focus */
.btn:focus,
.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.nav-link:focus,
a:focus,
button:focus {
	outline-color: var(--apsp-focus-color) !important;
}

/* Skip link */
.apsp-albo-comuni .albo-skip-link:focus,
.apsp-albo-comuni .albo-skip-link:focus-visible,
.skip-link:focus,
.skip-link:focus-visible,
a.skip-link:focus,
a.skip-link:focus-visible {
	outline: var(--apsp-focus-width) solid var(--apsp-focus-color) !important;
	outline-offset: var(--apsp-focus-offset) !important;
}

@media (prefers-contrast: more) {
	:root {
		--apsp-focus-color: #e67300;
		--apsp-focus-width: 4px;
		--apsp-focus-ring: 0 0 0 3px var(--apsp-focus-inner), 0 0 0 7px var(--apsp-focus-color);
	}
}
