/*
 Theme Name: Cart Theme - Accessibile
 Description:  Cart Theme - Accessibile è una versione modificata del Cart Theme di Link.it Srl, con miglioramenti specifici per l'accessibilità.
 Version: 1.1.3
 Author: Link.it Srl
*/

html, body {
	margin: 0;
	padding: 0;
	font-family: 'Titillium web', sans-serif;
	font-size: 1rem;
	font-weight: 400;
	color: #212121;
	background-color: #F5F5F5;
}

.web-init {
	position:relative;
	border:4px solid #f3f3f3;
	border-top:4px solid #0091EA;
	border-radius:50%; 
	width:40px;
	height:40px;
	min-width: 40px;
	animation:spin 2s linear infinite;
	top:calc(50% - 20px);
	left:calc(50% - 20px);
}

@keyframes spin{
	0%{transform:rotate(0deg)}
	100%{transform:rotate(360deg)}
}

header {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 999;
}

input:focus {
	outline: none;
}

.form-control:focus {
	color: #212121;
	background-color: #FFFFFF;
	border: none;
	border-bottom: 2px solid #0091EA;
	outline: 0;
	box-shadow: none;
}

.form-control {
	display: block;
	width: 100%;
	height: 3rem;
	padding: .375rem 0;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: #212121;
	border: none;
	border-bottom: 1px solid #212121;
	background-color: #FFFFFF;
	border-radius: 0;
	transition: none;
	margin-bottom: 1rem;
}

.form-check-privacy.error a {
	color: #FF0000;
}

.form-control.error {
	border-bottom: 2px solid #FF0000;
}

.separatore {
	border-bottom: 1px solid rgba(33, 33, 33, .2);
}

section {
	padding-top: 3rem;
	padding-bottom: 3rem;
}

.overlap-section {
	margin-top: -3rem;
	padding-top: 6rem;
}

.cover-center {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}

.art-deco {
	width: 68px;
	height: 2px;
	background-color: #EF5350;
	margin-bottom: 1rem;
}

.page-buttons {
	margin-top: -1.75rem;
}

.page-button {
	background-color: #0091EA;
	color: #FFFFFF;
	padding: 1rem;
	line-height: 1;
	width: 56px;
	height: 56px;
	transition: 0.3s;
}

.page-button:hover {
	background-color: #212121;
}

#menuTrigger {
	color: #212121;
	height: 24px;
}

#collapseMenu {
	position: fixed;
	top: 160px;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1;
	overflow-y: auto;
	background-color: #F5F5F5;
}

section.opaque,
section.search,
section.blog {
	background-color: rgba(33, 33, 33, .05);
}

#hrefSearch {
	vertical-align: middle;
	line-height: 1.5rem;
	font-size: 1.5rem;
	color: #212121;
}

#hrefSearch:hover {
	color: #0091EA;
}

h1, h2, h3 {
	line-height: 1.25;
	margin: 0;
}

h1 {
	font-size: 2rem;
}

h2 {
	font-size: 1.5rem;
}

h3 {
	font-size: 1.25rem;
}

p {
	line-height: 1.6;
	margin: 0;
}

a:focus {
	outline: none;
}

.sidebar-menu a:hover,
.sidebar-menu a.active-url:hover,
.btn-dropdown-group a.nav-link:hover,
.btn-switcher:hover,
.lang-item a:hover,
.search h2 > a:hover,
.cart-header h1 > a:hover,
.post-block a:hover,
a {
	color: #0091EA;
	text-decoration: none;
	font-size: inherit;
	transition: 0.3s;
}

.sidebar-menu a,
.search h2 > a,
.cart-header h1 > a,
.post-block a,
a:hover {
	color: #212121;
	text-decoration: none;
	font-size: inherit;
}

img {
	height: auto;
}

.rt-header {
	background-color: #FFFFFF;
	min-height: 48px;
}

.cart-header {
	background-color: #F5F5F5;
}

.rt-header p,
.cart-header h1 {
	font-weight: 600;
}

.cart-header h1 {
	font-size: 1.5rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.collapsing {
	transition: none !important;
}

ul.nav {
	display: block;
}

ul.nav,
ul.nav li {
	padding: 0;
	margin: 0;
}

ul.nav li > a {
	color: #212121;
	font-weight: 600;
	text-decoration: none;
}

ul.nav li > a:hover {
	color: #0091EA;
	font-weight: 600;
	text-decoration: none;
}

.btn-switcher-dropdown-group .nav-link,
ul.nav .nav-link {
	padding: 0;
}

ul.nav .nav-item {
	padding: .75rem 0rem;
}

ul.nav .nav-item:first-child,
ul.nav .nav-item:only-child {
	padding-left: 0;
}

ul.nav .nav-item:last-child:not(:only-child) {
	padding-right: 0;
	margin-bottom: 1.5rem;
}

.cart-button-switcher,
a.cart-button {
	height: 48px;
	color: #FFFFFF;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	text-transform: uppercase;
	padding: .75rem 1rem;
	background-color: #0091EA;
	margin-right: 15px;
}

.cart-button-switcher:hover,
a:hover.cart-button {
	height: 48px;
	color: #FFFFFF;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	text-transform: uppercase;
	padding: .75rem 1rem;
	background-color: #212121;
}

.cart-button-switcher[disabled]:hover,
.cart-button-switcher[disabled],
button.cart-button-switcher[disabled],
button.cart-button-switcher[disabled]:hover,
button.cart-button-switcher[aria-disabled="true"],
button.cart-button-switcher[aria-disabled="true"]:hover {
	background-color: #595959 !important;
	color: #FFFFFF !important;
	cursor: not-allowed;
	opacity: 1;
}

.btn.dropdown-toggle:focus {
	outline: none;
	box-shadow: none;
}

.dropdown-menu.show {
	border: none;
	border-radius: 0;
}

.lang-item {
	display: block;
	width: 100%;
	padding: .25rem 1.5rem;
	font-weight: 400;
	text-align: left;
	white-space: nowrap;
	background-color: transparent;
	border: 0;
}

.lang-item a {
	display: block;
	width: 100%;
	color: #212121;
}

.lang-item.current-lang a {
	color: #0091EA;
	pointer-events: none;
}

.sub-header {
	background-image: url('https://cart.regione.toscana.it/portale/wp-content/themes/cart-theme-accessibile/assets/images/Financial.jpg');
	min-height: 530px;
}

.search-box {
	padding: .5rem 0;
	overflow: hidden;
	border-bottom: 1px solid #F5F5F5;
	width: 24px;
	position: absolute;
	right: 32px;
	transition: all .5s ease;
}

#cartHeaderGroup {
	width: 100%;
	opacity: 1;
	user-select: none;
	transition: all .5s ease .25s;
}

#cartHeaderGroup.hide-group {
	width: 0;
	opacity: 0;
	transition: all .15s ease;
}

#cartHeaderGroup img {
	height: 48px;
}

.search-box.open {
	border-bottom: 1px solid #212121;
	width: calc(100% - 32px);
	z-index: 1;
	transition: all .5s ease;
}

#searchField {
	-webkit-appearance: none;
	border: navajowhite;
	background: transparent;
	background-color: transparent;
	margin: 0 .5rem;
	outline: none;
}

i {
	user-select: none;
}

.search-box i {
	cursor: pointer;
}

.search-box i:hover {
	color: #0091EA;
}

.search-box i.clear {
	color: #0091EA;
}

.cart-search.sub-header,
.cart-blog.sub-header {
	background-color: #F5F5F5;
	background-image: none;
	min-height: auto;
	margin-top: 5rem;
}

/* 1.4.3 — .patch usa uno sfondo OPACO (era rgba(33,33,33,.8)). Mauve/Selenium
   non sa combinare l'alpha con l'immagine sottostante e fa fail al contrasto
   del testo bianco. Con #212121 opaco il contrasto bianco-su-scuro = 16.1:1.
   Il design resta visivamente quasi identico (la differenza tra .8 alpha e
   opaco è impercettibile su questo colore). */
.patch {
	color: #FFFFFF;
	padding: 2rem;
	background-color: #212121;
}

.patch h1 {
	color: #FFFFFF;
	font-size: 2rem;
	font-weight: 600;
	margin: 0 0 2rem 0;
}

.patch p {
	color: #FFFFFF;
	font-size: 1rem;
	font-weight: 400;
	margin: 0;
}

/* 1.4.3 + 1.4.1 — Link dentro .patch (background #212121).
   Usiamo selettore con :not(...) replicato per battere la specificity (0,5,1)
   della regola generale a:not(...){color:#005a91} a riga ~1018. Senza questo
   trick il link "Scopri di più" verrebbe blu (#005a91) su nero -> contrast 2.2:1. */
.patch a:not(.btn):not(.nav-link):not(.cart-button):not(.btn-switcher):not(.cart-button-switcher),
.patch a:not(.btn):not(.nav-link):not(.cart-button):not(.btn-switcher):not(.cart-button-switcher):link,
.patch a:not(.btn):not(.nav-link):not(.cart-button):not(.btn-switcher):not(.cart-button-switcher):visited,
.patch a:not(.btn):not(.nav-link):not(.cart-button):not(.btn-switcher):not(.cart-button-switcher):hover,
.patch a:not(.btn):not(.nav-link):not(.cart-button):not(.btn-switcher):not(.cart-button-switcher):focus-visible {
	color: #FFFFFF !important;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.18em;
	font-weight: 600;
}

.cart-search .patch,
.cart-blog .patch {
	background-color: #FFFFFF;
	outline: 2rem solid #FFF;
	border-top: .5rem solid #FFFFFF;
	border-bottom: .5rem solid #FFFFFF;
	padding: 0;
}

.cart-search .patch h1,
.cart-blog .patch,
.cart-blog .patch h1,
.cart-blog .patch a:hover,
.cart-blog .patch p {
	color: #212121;
}

.cart-search .patch h1 {
	margin: 0;
}

.title {
	font-weight: 400;
	font-size: 1.5rem;
}

.categorie {
	color: rgba(33, 33, 33, .5);
	font-size: 1rem;
	font-weight: 400;
	text-transform: uppercase;
	margin-bottom: 1rem;
}

.featured-image {
	background-color: #CCCCCC;
	min-height: 240px;
	margin-bottom: 1.5rem;
}

.post-unfeatured {
	min-height: 48px;
}

.post-featured-image {
	background-color: #CCCCCC;
	min-height: 240px;
	margin: 0;
}

.post-container {
	position: relative;
}

.post-block {
	margin-bottom: 1.5rem;
}

.post-content {
	border: 1.875rem solid #FFFFFF;
	background-color: #FFFFFF;
	padding-left: 0;
	padding-right: 0;
	min-height: 12rem;
}

.post-pagination {
	padding-top: 0;
	padding-bottom: 3rem;
	font-size: 1.25rem;
	line-height: 1.5;
}

.post-pagination a {
	margin-top: -2rem;
	background-color: #0091EA;
	color: #FFF;
	padding: 1rem;
	z-index: 1;
}

.post-pagination a:hover {
	background-color: #212121;
}

.post-pagination i {
	line-height: inherit;
}

.post-content h1 {
	margin-bottom: 1.6875rem;
}	

.post-content h2 {
	padding-top: 1rem;
	margin-bottom: 1.125rem;
}

.post-content h3 {
	padding-top: .75rem;
	margin-bottom: .84375rem;
}

.post-content ul {
	padding-left: 1.25rem;
}

.post-content p,
.post-content li {
	font-size: 1rem;
	margin-bottom: 1rem;
}

figure.wp-block-table {
	font-family: 'Titillium web', sans-serif;
	font-size: 1rem;
	margin-bottom: 3rem;
}

figure.wp-block-table table thead {
	background-color: #E0E0E0;
}

figure.wp-block-table table tr:nth-child(2n) {
	background-color: #F5F5F5;
}

figure.wp-block-table table thead th {
	font-weight: 600;
	padding: .75rem 1rem;
}

figure.wp-block-table table td {
	padding: .75rem 1rem;
}

h2.title.sidebar-menu {
  font-size: 1.5rem;
  line-height: 1.5;
  margin-bottom: 2rem;
}

.sidebar-menu ul {
  padding: 0;
}

.sidebar-menu li {
  list-style: none;
  font-size: 1rem;
  margin-bottom: 1rem;
}

.sidebar-menu li a.active-url {
	color: rgba(33, 33, 33, .5);
}

button.btn-switcher {
  -webkit-appearance: none;
  appearance: none;
  -moz-appearance: none;
  border: none;
  padding: 0;
  background-color: transparent;
	outline: none;
	font-weight: 600;
}

button.btn-switcher.dropdown-toggle::after {
	display: inline-block;
	font-family: "Material Icons";
	margin-left: 0;
	vertical-align: middle;
	content: "\e313";
	border: none;
}

.btn-dropdown-group {
	margin-top: 0;
	margin-left: 0;
  border: none;
  border-radius: 0;
  padding: 1.5rem 1rem;
}

.btn-dropdown-group {
  max-width: 200px;
}

.btn-dropdown-group a.nav-link {
	margin-bottom: 1rem;
	color: #212121;
}

.btn-dropdown-group a.nav-link:only-child,
.btn-dropdown-group a.nav-link:last-child {
	margin-bottom: 0;
}

button.cart-button-switcher {
	height: 48px;
	color: #FFFFFF;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	text-transform: uppercase;
	padding: .75rem 1rem;
	background-color: #0091EA;
	margin-right: 15px;
}

button.cart-button-switcher:hover {
	background-color: #212121;
	color: #FFFFFF;
}

footer {
	background-color: #F5F5F5;
}

footer p {
	margin-bottom: 1.75rem;
}

@media (min-width: 768px) {

	.featured-image {
		min-height: 320px;
	}

	.post-unfeatured {
		min-height: 48px;
	}

	.post-featured-image {
		min-height: 480px;
	}

	section {
		padding-top: 6rem;
		padding-bottom: 6rem;
	}

	.overlap-section {
		margin-top: -4rem;
		padding-top: 10rem;
	}

	h1 {
		font-size: 3rem;
	}

	h2 {
		font-size: 2rem;
	}
	
	h3 {
		font-size: 1.5rem;
	}

	.cart-search.sub-header,
	.cart-blog.sub-header {
		background-image: none;
		min-height: auto;
		margin-top: 8rem;
	}

	.cart-search .patch h1,
	.cart-blog .patch h1,
	.patch h1 {
		font-size: 3rem;
		font-weight: 600;
		margin: 0 0 3rem 0;
	}
	
	.cart-blog .patch p,
	.patch p {
		font-size: 1.25rem;
		font-weight: 400;
		margin: 0;
	}
	
	.post-unfeatured {
		min-height: 288px;
	}

	.post-container {
		top: -192px;
	}

	.post-block {
		margin-bottom: 0;
	}

	.post-pagination {
		padding-top: 0;
		padding-bottom: 6rem;
		font-size: 1.25rem;
		line-height: 1.5;
	}

	.post-pagination i {
		line-height: inherit;
	}

	.post-content h1 {
		margin-bottom: 3.375rem;
	}	

	.post-content h2 {
		padding-top: 2rem;
		margin-bottom: 2.25rem;
	}
	
	.post-content h3 {
		padding-top: 1.5rem;
		margin-bottom: 1.6875rem;
	}

	.post-content p,
	.post-content li {
		font-size: 1.25rem;
		margin-bottom: 1.875rem;
	}

	section.sidebar-menu-group:not(.sidebar-featured) {
		padding-top: 0;
	}

	.sidebar-featured {
		margin-top: 192px;
	}

	.sidebar-menu-group.sticky {
		position: fixed;
		width: 180px;
		margin-top: 0;
	}

}

@media(min-width: 992px) {

	ul.nav {
		display: -ms-flexbox;
		display: flex;
	}

	ul.nav .nav-item {
		padding: .75rem 1.5rem;
	}
	
	ul.nav .nav-item:first-child,
	ul.nav .nav-item:only-child {
		padding-left: 1rem;
	}
	
	ul.nav .nav-item:last-child:not(:only-child) {
		padding-right: 1rem;
		margin-bottom: 0;
	}

	.search-box {
		right: 0;
	}

	.search-box.open {
		width: 240px;
	}

	.btn-dropdown-group {
		margin-top: .75rem;
		margin-left: -1rem;
		border: none;
		border-radius: 0;
		padding: 1.5rem 1rem;
	}
	
	.btn-switcher-dropdown-group {
		margin-top: 0;
		margin-left: 0;
	}

	.sidebar-menu-group.sticky {
		position: fixed;
		width: 240px;
		margin-top: 0;
	}

}

@media(min-width: 1200px) {
	.sidebar-menu-group.sticky {
		position: fixed;
		width: 285px;
		margin-top: 0;
	}
}

@media (min-width: 768px) and (max-height: 1200px) {
  .sidebar-menu-group.sticky {
    position: static !important;
    width: auto !important;
    margin-top: 0;
  }
}

/* ============================================================
   Accessibilità — fix WCAG (2.4.7, 1.4.11, 1.4.1, 1.4.3, 2.4.1)
   ============================================================ */

/* 2.4.7 / 1.4.11 — Focus visible sempre presente per la tastiera.
   Le regole esistenti `outline: none` su :focus restano valide per il click
   del mouse; :focus-visible si attiva solo su focus da tastiera. */
:focus-visible {
	outline: 3px solid #0091EA !important;
	outline-offset: 2px !important;
	border-radius: 2px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[role="button"]:focus-visible,
.nav-link:focus-visible,
.btn:focus-visible,
.btn-switcher:focus-visible,
.cart-button:focus-visible,
.cart-button-switcher:focus-visible {
	outline: 3px solid #0091EA !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 5px rgba(0, 145, 234, .35) !important;
}

/* 2.4.7 — Fallback `:focus` per scanner statici (es. MAUVE++) che non
   riconoscono `:focus-visible`. Sovrascrive con `!important` i precedenti
   `outline: none` su :focus presenti nel theme originale. Trade-off:
   l'outline diventa visibile anche al click di mouse. */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus,
[role="button"]:focus,
.nav-link:focus,
.btn:focus,
.btn-switcher:focus,
.btn.dropdown-toggle:focus,
.cart-button:focus,
.cart-button-switcher:focus,
.search-clear:focus,
.search-submit:focus,
#searchField:focus,
.form-control:focus {
	outline: 3px solid #0091EA !important;
	outline-offset: 2px !important;
}

/* 2.4.1 / 2.4.7 / 1.4.3 — Skip link "Salta al contenuto principale".
   Posizionato fuori schermo (top: -100px) ma sempre RENDERIZZATO (no clip-path)
   così gli audit tool come Mauve (Selenium SSR) riconoscono il focus indicator
   e calcolano il contrasto sullo stato base. Usiamo !important e longhand su
   background-color/color per resistere a override del tema in produzione. */
.skip-link,
a.skip-link,
a.skip-link:link,
a.skip-link:visited {
	position: absolute;
	top: -100px;
	left: 0;
	padding: 12px 16px;
	background-color: #003c71 !important;
	background-image: none !important;
	color: #ffffff !important;
	font-weight: 700;
	text-decoration: underline;
	z-index: 100000;
	transition: top 0.2s ease-in-out;
}

.skip-link:focus,
.skip-link:focus-visible {
	top: 0;
	outline: 3px solid #ffbf00;
	outline-offset: 0;
	color: #fff;
}

/* 1.4.1 — Link distinguibili senza affidarsi al colore (underline nei link
   "ricchi"). Il menu top-level resta pulito ma riceve underline su hover/focus. */
main a,
.patch a,
.post-block a,
.btn-dropdown-group .nav-link {
  	text-underline-offset: 0.15em;
}

.nav > .nav-item > a.nav-link,
.nav > .nav-item > a.nav-link:link,
.nav > .nav-item > a.nav-link:visited,
.btn,
.btn-switcher,
.cart-button,
.cart-button-switcher {
	text-decoration: none;
}

.nav > .nav-item > a.nav-link:hover,
.nav > .nav-item > a.nav-link:focus-visible,
.btn-dropdown-group .nav-link:hover {
  }

/* 1.4.3 — Contrasto: alziamo i testi tenui a >= 4.5:1 su sfondo bianco. */
.categorie {
	color: #565656;          /* era rgba(33,33,33,.5) ≈ #909090 → contrasto 2.85:1 */
}

.search-field::placeholder {
	color: #595959;
	opacity: 1;
}

.btn-dropdown-group .nav-link {
	color: #003c71;
}

/* Cancellino e submit della search-box: trasformati da <i> a <button>. */
.search-clear,
.search-submit {
	background: transparent;
	border: 0;
	padding: 0;
	line-height: 1;
	cursor: pointer;
	color: inherit;
	flex: 0 0 auto;
}
.search-clear .material-icons,
.search-submit .material-icons,
.search-clear i.material-icons.clear,
.search-submit i.material-icons {
	pointer-events: none;
	color: #003c71 !important;
}

/* 1.4.3 — Forziamo il color anche sul button parent: Mauve calcola il contrasto
   sul testo crudo del glyph ("cancel", "search") e su alcuni nodi può
   ereditare un grigio tenue. Con questo ci assicuriamo che l'algoritmo
   computi sempre #003c71 indipendentemente dal punto di analisi. */
button.search-clear,
button.search-submit {
	color: #003c71 !important;
}

/* 1.4.3 — Contrasto link: il theme usa #0091EA (ratio 3.36:1 su bianco, sotto AA).
   Lo scurisco a #005a91 (ratio 6.4:1 su bianco, 5.6:1 su #F5F5F5) nei contesti
   dove appare come testo di link (non come background di bottoni). */
a:not(.btn):not(.nav-link):not(.cart-button):not(.btn-switcher):not(.cart-button-switcher),
a:not(.btn):not(.nav-link):not(.cart-button):not(.btn-switcher):not(.cart-button-switcher):link,
a:not(.btn):not(.nav-link):not(.cart-button):not(.btn-switcher):not(.cart-button-switcher):visited,
.post-block a:hover,
.cart-header h1 > a:hover,
.search h2 > a:hover,
.sidebar-menu a:hover,
.sidebar-menu a.active-url:hover,
.lang-item a:hover,
.lang-item.current-lang a {
	color: #005a91;
}

.post-block a,
.post-block a:link,
.post-block a:visited,
.sidebar-menu a,
.sidebar-menu a:link,
.sidebar-menu a:visited {
	color: #212121;
}

/* 1.4.3 — Link nei heading (h1 dell'header, h2 dei post-block, h2 dei risultati
   ricerca): usiamo un blu istituzionale scuro (#003c71, ratio ~11.4:1 su bianco
   e ~10.6:1 su #F5F5F5) DIVERSO dal nero del testo parent, così:
     - Mauve vede un colore link distinto e non segnala 1.4.3;
     - i link sono visibilmente distinguibili dal contesto;
     - l'underline esplicito copre anche 1.4.1 Use of Color.
   html body... per massima specificità, e !important per battere ogni regola
   pre-esistente del theme. */
html body .post-block h2 a,
html body .post-block h2 a:link,
html body .post-block h2 a:visited,
html body .post-block h2 a:hover,
html body .post-block h2 a:focus,
html body .search h2 > a,
html body .search h2 > a:link,
html body .search h2 > a:visited,
html body .search h2 > a:hover,
html body .search h2 > a:focus {
	color: #003c71 !important;
	background-color: transparent;
	text-decoration: underline !important;
	text-underline-offset: 0.18em;
}

/* Titolo dell'header: stesso blu istituzionale per accessibilità (1.4.3),
   ma senza underline come da richiesta. Il colore #003c71 da solo dà già
   ratio 10.6:1 su #F5F5F5 — ben oltre AA. */
html body .cart-header h1 > a,
html body .cart-header h1 > a:link,
html body .cart-header h1 > a:visited,
html body .cart-header h1 > a:hover,
html body .cart-header h1 > a:focus {
	color: #003c71 !important;
	background-color: transparent;
	text-decoration: none !important;
}

/* 1.4.4 / 1.4.5 — Resize text: Mauve (C12/C28) chiede unità relative invece di
   px. Imponiamo rem sui principali blocchi di testo. Selettori semplici (no
   :where) per essere riconosciuti da tutti i tool, !important per battere
   regole di Bootstrap/WP core in px. Base font-size = 16px (default browser). */
html       { font-size: 100% !important; }
body       { font-size: 1rem !important; line-height: 1.5; }

h1, .h1    { font-size: 2.25rem  !important; }
h2, .h2    { font-size: 1.75rem  !important; }
h3, .h3    { font-size: 1.5rem   !important; }
h4, .h4    { font-size: 1.25rem  !important; }
h5, .h5    { font-size: 1.125rem !important; }
h6, .h6    { font-size: 1rem     !important; }
p          { font-size: 1rem     !important; }
li, dd, dt { font-size: 1rem     !important; }
button, input, select, textarea { font-size: 1rem !important; }
small, .small { font-size: 0.875rem !important; }
.material-icons { font-size: 1.5rem !important; }

/* Override mirati su selettori specifici del theme. */
.cart-header h1            { font-size: 1.5rem   !important; }
.rt-footer__infos          { font-size: 0.875rem !important; }
.rt-footer__infos-info     { font-size: 0.875rem !important; }
.skip-link                 { font-size: 1rem     !important; }
.categorie                 { font-size: 1rem     !important; }
.search-field              { font-size: 1rem     !important; }
.nav-link                  { font-size: 1rem     !important; }

/* 1.4.3 — Tabelle: contrasto esplicito su th/td di backup (oltre allo style
   inline aggiunto via filter PHP). Garantisce che anche tabelle inserite a
   mano abbiano contrasto sufficiente. */
.wp-block-table table th,
table th {
	color: #000000 !important;
	background-color: #E0E0E0 !important;
	font-weight: 700;
}
.wp-block-table table td,
table td {
	color: #000000 !important;
}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) td {
	background-color: #F0F0F0 !important;
}
.wp-block-table.is-style-stripes tbody tr:nth-child(even) td {
	background-color: #FFFFFF !important;
}


