/**
 * Sorex - Custom Styles
 * Olimpia Milano Child Theme
 */

/* ==========================================================================
   Pre-Header (Euroleague Topbar)
   ========================================================================== */
#olimpia-pre-header {
	position: relative;
	width: 100%;
	height: var(--euroleague-topbar-height);
	z-index: 100;
	overflow: hidden;
}

#olimpia-pre-header iframe {
	display: block;
	width: 100%;
	height: var(--euroleague-topbar-height);
	border: none;
	max-width: 1500px;
	margin: 0 auto;
}

/* Push all page content down to make room for the fixed pre-header */
body {
	padding-top: 0;
}

/* ==========================================================================
   Standard bootstrap classes
   ========================================================================== */

/* --------------------------------------------------------------------------
   Content width tokens
   Definisce la larghezza standard del contenuto "boxed".
   --content-width      : larghezza standard (default 1280px)
   --content-width-narrow / --content-width-wide : varianti
   --content-max-width  : alias di compatibilità con il codice esistente
   --container-padding-x: padding orizzontale ai lati per non toccare il bordo
   -------------------------------------------------------------------------- */
:root {
	--content-width: 1500px;

}

/* --------------------------------------------------------------------------
   Container / Boxed utilities
   .container       → larghezza standard, centrato, con padding laterale
   .container-narrow → versione più stretta (es. testi long-form)
   .container-wide   → versione larga
   .container-fluid  → 100% width, solo padding laterale
   .boxed            → alias di .container
   -------------------------------------------------------------------------- */
.container,
.boxed {
	width: 100%;
	max-width: var(--content-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--container-padding-x);
	padding-right: var(--container-padding-x);
	box-sizing: border-box;
}

.bg_black {
	background-color: var(--color-black) !important;
}

/* --------------------------------------------------------------------------
   Background utilities — mirror di tutte le var colore in variables.css
   -------------------------------------------------------------------------- */

/* Brand */
.bg-primary {
	background-color: var(--color-primary) !important;
}

.bg-primary-dark {
	background-color: var(--color-primary-dark) !important;
}

.bg-primary-accent {
	background-color: var(--color-primary-accent) !important;
}

.bg-white {
	background-color: var(--color-white) !important;
}

.bg-black {
	background-color: var(--color-black) !important;
}

.bg-grey,
.bg-gray {
	background-color: var(--background-grey) !important;
}

/* Neutral */
.bg-gray-50 {
	background-color: var(--color-gray-50) !important;
}

.bg-gray-100 {
	background-color: var(--color-gray-100) !important;
}

.bg-gray-200 {
	background-color: var(--color-gray-200) !important;
}

.bg-gray-500 {
	background-color: var(--color-gray-500) !important;
}

.bg-gray-600 {
	background-color: var(--color-gray-600) !important;
}

.bg-gray-700 {
	background-color: var(--color-gray-700) !important;
}

.bg-gray-900 {
	background-color: var(--color-gray-900) !important;
}

.bg-row-alt {
	background-color: var(--color-row-alt) !important;
}

/* On-dark (overlay translucenti) */
.bg-on-dark {
	background-color: var(--color-on-dark) !important;
}

.bg-on-dark-muted {
	background-color: var(--color-on-dark-muted) !important;
}

.bg-on-dark-subtle {
	background-color: var(--color-on-dark-subtle) !important;
}

.bg-on-dark-faint {
	background-color: var(--color-on-dark-faint) !important;
}

.bg-on-dark-divider {
	background-color: var(--color-on-dark-divider) !important;
}

/* Utility */
.bg-transparent {
	background-color: transparent !important;
}

/* --------------------------------------------------------------------------
   Text color utilities — stesso set, applicato al colore del testo
   -------------------------------------------------------------------------- */

/* Brand */
.text-primary {
	color: var(--color-primary) !important;
}

.text-primary-dark {
	color: var(--color-primary-dark) !important;
}

.text-primary-accent {
	color: var(--color-primary-accent) !important;
}

.text-white {
	color: var(--color-white) !important;
}

.text-black {
	color: var(--color-black) !important;
}

.text-grey,
.text-gray {
	color: var(--background-grey) !important;
}

/* Neutral */
.text-gray-50 {
	color: var(--color-gray-50) !important;
}

.text-gray-100 {
	color: var(--color-gray-100) !important;
}

.text-gray-200 {
	color: var(--color-gray-200) !important;
}

.text-gray-500 {
	color: var(--color-gray-500) !important;
}

.text-gray-600 {
	color: var(--color-gray-600) !important;
}

.text-gray-700 {
	color: var(--color-gray-700) !important;
}

.text-gray-900 {
	color: var(--color-gray-900) !important;
}

.text-row-alt {
	color: var(--color-row-alt) !important;
}

/* On-dark */
.text-on-dark {
	color: var(--color-on-dark) !important;
}

.text-on-dark-muted {
	color: var(--color-on-dark-muted) !important;
}

.text-on-dark-subtle {
	color: var(--color-on-dark-subtle) !important;
}

.text-on-dark-faint {
	color: var(--color-on-dark-faint) !important;
}

.text-on-dark-divider {
	color: var(--color-on-dark-divider) !important;
}

/* Utility */
.text-inherit {
	color: inherit !important;
}

.text-transparent {
	color: transparent !important;
}

/* --------------------------------------------------------------------------
   Margin & Padding utilities (1rem -> 20rem)
   m / mt / mr / mb / ml / mx / my
   p / pt / pr / pb / pl / px / py
   -------------------------------------------------------------------------- */
.m-0 {
	margin: 0 !important;
}

.mt-0 {
	margin-top: 0 !important;
}

.mr-0 {
	margin-right: 0 !important;
}

.mb-0 {
	margin-bottom: 0 !important;
}

.ml-0 {
	margin-left: 0 !important;
}

.mx-0 {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.my-0 {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.p-0 {
	padding: 0 !important;
}

.pt-0 {
	padding-top: 0 !important;
}

.pr-0 {
	padding-right: 0 !important;
}

.pb-0 {
	padding-bottom: 0 !important;
}

.pl-0 {
	padding-left: 0 !important;
}

.px-0 {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.py-0 {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.m-1 {
	margin: 1rem !important;
}

.mt-1 {
	margin-top: 1rem !important;
}

.mr-1 {
	margin-right: 1rem !important;
}

.mb-1 {
	margin-bottom: 1rem !important;
}

.ml-1 {
	margin-left: 1rem !important;
}

.mx-1 {
	margin-left: 1rem !important;
	margin-right: 1rem !important;
}

.my-1 {
	margin-top: 1rem !important;
	margin-bottom: 1rem !important;
}

.p-1 {
	padding: 1rem !important;
}

.pt-1 {
	padding-top: 1rem !important;
}

.pr-1 {
	padding-right: 1rem !important;
}

.pb-1 {
	padding-bottom: 1rem !important;
}

.pl-1 {
	padding-left: 1rem !important;
}

.px-1 {
	padding-left: 1rem !important;
	padding-right: 1rem !important;
}

.py-1 {
	padding-top: 1rem !important;
	padding-bottom: 1rem !important;
}

.m-2 {
	margin: 2rem !important;
}

.mt-2 {
	margin-top: 2rem !important;
}

.mr-2 {
	margin-right: 2rem !important;
}

.mb-2 {
	margin-bottom: 2rem !important;
}

.ml-2 {
	margin-left: 2rem !important;
}

.mx-2 {
	margin-left: 2rem !important;
	margin-right: 2rem !important;
}

.my-2 {
	margin-top: 2rem !important;
	margin-bottom: 2rem !important;
}

.p-2 {
	padding: 2rem !important;
}

.pt-2 {
	padding-top: 2rem !important;
}

.pr-2 {
	padding-right: 2rem !important;
}

.pb-2 {
	padding-bottom: 2rem !important;
}

.pl-2 {
	padding-left: 2rem !important;
}

.px-2 {
	padding-left: 2rem !important;
	padding-right: 2rem !important;
}

.py-2 {
	padding-top: 2rem !important;
	padding-bottom: 2rem !important;
}

.m-3 {
	margin: 3rem !important;
}

.mt-3 {
	margin-top: 3rem !important;
}

.mr-3 {
	margin-right: 3rem !important;
}

.mb-3 {
	margin-bottom: 3rem !important;
}

.ml-3 {
	margin-left: 3rem !important;
}

.mx-3 {
	margin-left: 3rem !important;
	margin-right: 3rem !important;
}

.my-3 {
	margin-top: 3rem !important;
	margin-bottom: 3rem !important;
}

.p-3 {
	padding: 3rem !important;
}

.pt-3 {
	padding-top: 3rem !important;
}

.pr-3 {
	padding-right: 3rem !important;
}

.pb-3 {
	padding-bottom: 3rem !important;
}

.pl-3 {
	padding-left: 3rem !important;
}

.px-3 {
	padding-left: 3rem !important;
	padding-right: 3rem !important;
}

.py-3 {
	padding-top: 3rem !important;
	padding-bottom: 3rem !important;
}

.m-4 {
	margin: 4rem !important;
}

.mt-4 {
	margin-top: 4rem !important;
}

.mr-4 {
	margin-right: 4rem !important;
}

.mb-4 {
	margin-bottom: 4rem !important;
}

.ml-4 {
	margin-left: 4rem !important;
}

.mx-4 {
	margin-left: 4rem !important;
	margin-right: 4rem !important;
}

.my-4 {
	margin-top: 4rem !important;
	margin-bottom: 4rem !important;
}

.p-4 {
	padding: 4rem !important;
}

.pt-4 {
	padding-top: 4rem !important;
}

.pr-4 {
	padding-right: 4rem !important;
}

.pb-4 {
	padding-bottom: 4rem !important;
}

.pl-4 {
	padding-left: 4rem !important;
}

.px-4 {
	padding-left: 4rem !important;
	padding-right: 4rem !important;
}

.py-4 {
	padding-top: 4rem !important;
	padding-bottom: 4rem !important;
}

.m-5 {
	margin: 5rem !important;
}

.mt-5 {
	margin-top: 5rem !important;
}

.mr-5 {
	margin-right: 5rem !important;
}

.mb-5 {
	margin-bottom: 5rem !important;
}

.ml-5 {
	margin-left: 5rem !important;
}

.mx-5 {
	margin-left: 5rem !important;
	margin-right: 5rem !important;
}

.my-5 {
	margin-top: 5rem !important;
	margin-bottom: 5rem !important;
}

.p-5 {
	padding: 5rem !important;
}

.pt-5 {
	padding-top: 5rem !important;
}

.pr-5 {
	padding-right: 5rem !important;
}

.pb-5 {
	padding-bottom: 5rem !important;
}

.pl-5 {
	padding-left: 5rem !important;
}

.px-5 {
	padding-left: 5rem !important;
	padding-right: 5rem !important;
}

.py-5 {
	padding-top: 5rem !important;
	padding-bottom: 5rem !important;
}

.m-6 {
	margin: 6rem !important;
}

.mt-6 {
	margin-top: 6rem !important;
}

.mr-6 {
	margin-right: 6rem !important;
}

.mb-6 {
	margin-bottom: 6rem !important;
}

.ml-6 {
	margin-left: 6rem !important;
}

.mx-6 {
	margin-left: 6rem !important;
	margin-right: 6rem !important;
}

.my-6 {
	margin-top: 6rem !important;
	margin-bottom: 6rem !important;
}

.p-6 {
	padding: 6rem !important;
}

.pt-6 {
	padding-top: 6rem !important;
}

.pr-6 {
	padding-right: 6rem !important;
}

.pb-6 {
	padding-bottom: 6rem !important;
}

.pl-6 {
	padding-left: 6rem !important;
}

.px-6 {
	padding-left: 6rem !important;
	padding-right: 6rem !important;
}

.py-6 {
	padding-top: 6rem !important;
	padding-bottom: 6rem !important;
}

.m-7 {
	margin: 7rem !important;
}

.mt-7 {
	margin-top: 7rem !important;
}

.mr-7 {
	margin-right: 7rem !important;
}

.mb-7 {
	margin-bottom: 7rem !important;
}

.ml-7 {
	margin-left: 7rem !important;
}

.mx-7 {
	margin-left: 7rem !important;
	margin-right: 7rem !important;
}

.my-7 {
	margin-top: 7rem !important;
	margin-bottom: 7rem !important;
}

.p-7 {
	padding: 7rem !important;
}

.pt-7 {
	padding-top: 7rem !important;
}

.pr-7 {
	padding-right: 7rem !important;
}

.pb-7 {
	padding-bottom: 7rem !important;
}

.pl-7 {
	padding-left: 7rem !important;
}

.px-7 {
	padding-left: 7rem !important;
	padding-right: 7rem !important;
}

.py-7 {
	padding-top: 7rem !important;
	padding-bottom: 7rem !important;
}

.m-8 {
	margin: 8rem !important;
}

.mt-8 {
	margin-top: 8rem !important;
}

.mr-8 {
	margin-right: 8rem !important;
}

.mb-8 {
	margin-bottom: 8rem !important;
}

.ml-8 {
	margin-left: 8rem !important;
}

.mx-8 {
	margin-left: 8rem !important;
	margin-right: 8rem !important;
}

.my-8 {
	margin-top: 8rem !important;
	margin-bottom: 8rem !important;
}

.p-8 {
	padding: 8rem !important;
}

.pt-8 {
	padding-top: 8rem !important;
}

.pr-8 {
	padding-right: 8rem !important;
}

.pb-8 {
	padding-bottom: 8rem !important;
}

.pl-8 {
	padding-left: 8rem !important;
}

.px-8 {
	padding-left: 8rem !important;
	padding-right: 8rem !important;
}

.py-8 {
	padding-top: 8rem !important;
	padding-bottom: 8rem !important;
}

.m-9 {
	margin: 9rem !important;
}

.mt-9 {
	margin-top: 9rem !important;
}

.mr-9 {
	margin-right: 9rem !important;
}

.mb-9 {
	margin-bottom: 9rem !important;
}

.ml-9 {
	margin-left: 9rem !important;
}

.mx-9 {
	margin-left: 9rem !important;
	margin-right: 9rem !important;
}

.my-9 {
	margin-top: 9rem !important;
	margin-bottom: 9rem !important;
}

.p-9 {
	padding: 9rem !important;
}

.pt-9 {
	padding-top: 9rem !important;
}

.pr-9 {
	padding-right: 9rem !important;
}

.pb-9 {
	padding-bottom: 9rem !important;
}

.pl-9 {
	padding-left: 9rem !important;
}

.px-9 {
	padding-left: 9rem !important;
	padding-right: 9rem !important;
}

.py-9 {
	padding-top: 9rem !important;
	padding-bottom: 9rem !important;
}

.m-10 {
	margin: 10rem !important;
}

.mt-10 {
	margin-top: 10rem !important;
}

.mr-10 {
	margin-right: 10rem !important;
}

.mb-10 {
	margin-bottom: 10rem !important;
}

.ml-10 {
	margin-left: 10rem !important;
}

.mx-10 {
	margin-left: 10rem !important;
	margin-right: 10rem !important;
}

.my-10 {
	margin-top: 10rem !important;
	margin-bottom: 10rem !important;
}

.p-10 {
	padding: 10rem !important;
}

.pt-10 {
	padding-top: 10rem !important;
}

.pr-10 {
	padding-right: 10rem !important;
}

.pb-10 {
	padding-bottom: 10rem !important;
}

.pl-10 {
	padding-left: 10rem !important;
}

.px-10 {
	padding-left: 10rem !important;
	padding-right: 10rem !important;
}

.py-10 {
	padding-top: 10rem !important;
	padding-bottom: 10rem !important;
}

.m-11 {
	margin: 11rem !important;
}

.mt-11 {
	margin-top: 11rem !important;
}

.mr-11 {
	margin-right: 11rem !important;
}

.mb-11 {
	margin-bottom: 11rem !important;
}

.ml-11 {
	margin-left: 11rem !important;
}

.mx-11 {
	margin-left: 11rem !important;
	margin-right: 11rem !important;
}

.my-11 {
	margin-top: 11rem !important;
	margin-bottom: 11rem !important;
}

.p-11 {
	padding: 11rem !important;
}

.pt-11 {
	padding-top: 11rem !important;
}

.pr-11 {
	padding-right: 11rem !important;
}

.pb-11 {
	padding-bottom: 11rem !important;
}

.pl-11 {
	padding-left: 11rem !important;
}

.px-11 {
	padding-left: 11rem !important;
	padding-right: 11rem !important;
}

.py-11 {
	padding-top: 11rem !important;
	padding-bottom: 11rem !important;
}

.m-12 {
	margin: 12rem !important;
}

.mt-12 {
	margin-top: 12rem !important;
}

.mr-12 {
	margin-right: 12rem !important;
}

.mb-12 {
	margin-bottom: 12rem !important;
}

.ml-12 {
	margin-left: 12rem !important;
}

.mx-12 {
	margin-left: 12rem !important;
	margin-right: 12rem !important;
}

.my-12 {
	margin-top: 12rem !important;
	margin-bottom: 12rem !important;
}

.p-12 {
	padding: 12rem !important;
}

.pt-12 {
	padding-top: 12rem !important;
}

.pr-12 {
	padding-right: 12rem !important;
}

.pb-12 {
	padding-bottom: 12rem !important;
}

.pl-12 {
	padding-left: 12rem !important;
}

.px-12 {
	padding-left: 12rem !important;
	padding-right: 12rem !important;
}

.py-12 {
	padding-top: 12rem !important;
	padding-bottom: 12rem !important;
}

.m-13 {
	margin: 13rem !important;
}

.mt-13 {
	margin-top: 13rem !important;
}

.mr-13 {
	margin-right: 13rem !important;
}

.mb-13 {
	margin-bottom: 13rem !important;
}

.ml-13 {
	margin-left: 13rem !important;
}

.mx-13 {
	margin-left: 13rem !important;
	margin-right: 13rem !important;
}

.my-13 {
	margin-top: 13rem !important;
	margin-bottom: 13rem !important;
}

.p-13 {
	padding: 13rem !important;
}

.pt-13 {
	padding-top: 13rem !important;
}

.pr-13 {
	padding-right: 13rem !important;
}

.pb-13 {
	padding-bottom: 13rem !important;
}

.pl-13 {
	padding-left: 13rem !important;
}

.px-13 {
	padding-left: 13rem !important;
	padding-right: 13rem !important;
}

.py-13 {
	padding-top: 13rem !important;
	padding-bottom: 13rem !important;
}

.m-14 {
	margin: 14rem !important;
}

.mt-14 {
	margin-top: 14rem !important;
}

.mr-14 {
	margin-right: 14rem !important;
}

.mb-14 {
	margin-bottom: 14rem !important;
}

.ml-14 {
	margin-left: 14rem !important;
}

.mx-14 {
	margin-left: 14rem !important;
	margin-right: 14rem !important;
}

.my-14 {
	margin-top: 14rem !important;
	margin-bottom: 14rem !important;
}

.p-14 {
	padding: 14rem !important;
}

.pt-14 {
	padding-top: 14rem !important;
}

.pr-14 {
	padding-right: 14rem !important;
}

.pb-14 {
	padding-bottom: 14rem !important;
}

.pl-14 {
	padding-left: 14rem !important;
}

.px-14 {
	padding-left: 14rem !important;
	padding-right: 14rem !important;
}

.py-14 {
	padding-top: 14rem !important;
	padding-bottom: 14rem !important;
}

.m-15 {
	margin: 15rem !important;
}

.mt-15 {
	margin-top: 15rem !important;
}

.mr-15 {
	margin-right: 15rem !important;
}

.mb-15 {
	margin-bottom: 15rem !important;
}

.ml-15 {
	margin-left: 15rem !important;
}

.mx-15 {
	margin-left: 15rem !important;
	margin-right: 15rem !important;
}

.my-15 {
	margin-top: 15rem !important;
	margin-bottom: 15rem !important;
}

.p-15 {
	padding: 15rem !important;
}

.pt-15 {
	padding-top: 15rem !important;
}

.pr-15 {
	padding-right: 15rem !important;
}

.pb-15 {
	padding-bottom: 15rem !important;
}

.pl-15 {
	padding-left: 15rem !important;
}

.px-15 {
	padding-left: 15rem !important;
	padding-right: 15rem !important;
}

.py-15 {
	padding-top: 15rem !important;
	padding-bottom: 15rem !important;
}

.m-16 {
	margin: 16rem !important;
}

.mt-16 {
	margin-top: 16rem !important;
}

.mr-16 {
	margin-right: 16rem !important;
}

.mb-16 {
	margin-bottom: 16rem !important;
}

.ml-16 {
	margin-left: 16rem !important;
}

.mx-16 {
	margin-left: 16rem !important;
	margin-right: 16rem !important;
}

.my-16 {
	margin-top: 16rem !important;
	margin-bottom: 16rem !important;
}

.p-16 {
	padding: 16rem !important;
}

.pt-16 {
	padding-top: 16rem !important;
}

.pr-16 {
	padding-right: 16rem !important;
}

.pb-16 {
	padding-bottom: 16rem !important;
}

.pl-16 {
	padding-left: 16rem !important;
}

.px-16 {
	padding-left: 16rem !important;
	padding-right: 16rem !important;
}

.py-16 {
	padding-top: 16rem !important;
	padding-bottom: 16rem !important;
}

.m-17 {
	margin: 17rem !important;
}

.mt-17 {
	margin-top: 17rem !important;
}

.mr-17 {
	margin-right: 17rem !important;
}

.mb-17 {
	margin-bottom: 17rem !important;
}

.ml-17 {
	margin-left: 17rem !important;
}

.mx-17 {
	margin-left: 17rem !important;
	margin-right: 17rem !important;
}

.my-17 {
	margin-top: 17rem !important;
	margin-bottom: 17rem !important;
}

.p-17 {
	padding: 17rem !important;
}

.pt-17 {
	padding-top: 17rem !important;
}

.pr-17 {
	padding-right: 17rem !important;
}

.pb-17 {
	padding-bottom: 17rem !important;
}

.pl-17 {
	padding-left: 17rem !important;
}

.px-17 {
	padding-left: 17rem !important;
	padding-right: 17rem !important;
}

.py-17 {
	padding-top: 17rem !important;
	padding-bottom: 17rem !important;
}

.m-18 {
	margin: 18rem !important;
}

.mt-18 {
	margin-top: 18rem !important;
}

.mr-18 {
	margin-right: 18rem !important;
}

.mb-18 {
	margin-bottom: 18rem !important;
}

.ml-18 {
	margin-left: 18rem !important;
}

.mx-18 {
	margin-left: 18rem !important;
	margin-right: 18rem !important;
}

.my-18 {
	margin-top: 18rem !important;
	margin-bottom: 18rem !important;
}

.p-18 {
	padding: 18rem !important;
}

.pt-18 {
	padding-top: 18rem !important;
}

.pr-18 {
	padding-right: 18rem !important;
}

.pb-18 {
	padding-bottom: 18rem !important;
}

.pl-18 {
	padding-left: 18rem !important;
}

.px-18 {
	padding-left: 18rem !important;
	padding-right: 18rem !important;
}

.py-18 {
	padding-top: 18rem !important;
	padding-bottom: 18rem !important;
}

.m-19 {
	margin: 19rem !important;
}

.mt-19 {
	margin-top: 19rem !important;
}

.mr-19 {
	margin-right: 19rem !important;
}

.mb-19 {
	margin-bottom: 19rem !important;
}

.ml-19 {
	margin-left: 19rem !important;
}

.mx-19 {
	margin-left: 19rem !important;
	margin-right: 19rem !important;
}

.my-19 {
	margin-top: 19rem !important;
	margin-bottom: 19rem !important;
}

.p-19 {
	padding: 19rem !important;
}

.pt-19 {
	padding-top: 19rem !important;
}

.pr-19 {
	padding-right: 19rem !important;
}

.pb-19 {
	padding-bottom: 19rem !important;
}

.pl-19 {
	padding-left: 19rem !important;
}

.px-19 {
	padding-left: 19rem !important;
	padding-right: 19rem !important;
}

.py-19 {
	padding-top: 19rem !important;
	padding-bottom: 19rem !important;
}

.m-20 {
	margin: 20rem !important;
}

.mt-20 {
	margin-top: 20rem !important;
}

.mr-20 {
	margin-right: 20rem !important;
}

.mb-20 {
	margin-bottom: 20rem !important;
}

.ml-20 {
	margin-left: 20rem !important;
}

.mx-20 {
	margin-left: 20rem !important;
	margin-right: 20rem !important;
}

.my-20 {
	margin-top: 20rem !important;
	margin-bottom: 20rem !important;
}

.p-20 {
	padding: 20rem !important;
}

.pt-20 {
	padding-top: 20rem !important;
}

.pr-20 {
	padding-right: 20rem !important;
}

.pb-20 {
	padding-bottom: 20rem !important;
}

.pl-20 {
	padding-left: 20rem !important;
}

.px-20 {
	padding-left: 20rem !important;
	padding-right: 20rem !important;
}

.py-20 {
	padding-top: 20rem !important;
	padding-bottom: 20rem !important;
}


/* --------------------------------------------------------------------------
   Display
   -------------------------------------------------------------------------- */
.d-none {
	display: none !important;
}


.new-hero-class-button {
	border-radius: 4px !important;
}

/*
 * Goal theme uses .sc_layouts_row_fixed_on (position:fixed; top:0) for the sticky header.
 * When scrolling, the pre-header scrolls away and the header sticks to top:0 (default behavior).
 * No offset needed - the pre-header is in-flow and naturally pushes the header down before scroll.
 */
s
/* ==========================================================================
   Event Blocks - Card Layout
   ========================================================================== */

.olimpia-event-blocks {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Base card */
.olimpia-card {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	transition: box-shadow 0.2s ease;
}

.olimpia-card:hover {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

/* All cards share a light (white) appearance, regardless of state. */
.olimpia-card--future,
.olimpia-card--past,
.olimpia-card--live {
	background: #ffffff;
	color: #1a1a1a;
}

.olimpia-card--live .olimpia-card__header {
	color: #1a1a1a;
}

.olimpia-card--live .olimpia-card__divider {
	background: linear-gradient(90deg, #C8102E 0%, #C8102E 100%);
}

.olimpia-card--live .olimpia-card__venue {
	color: #555;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.olimpia-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
}

.olimpia-card__league {
	display: flex;
	align-items: center;
	gap: 10px;
}

.olimpia-card__league-name {
	font-size: 14px;
	font-weight: 500;
}

.olimpia-league-logo {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

.olimpia-card__round {
	font-size: 14px;
	font-weight: 500;
}

/* Past card header colors */
.olimpia-card--past .olimpia-card__header {
	color: #1a1a1a;
}

/* Future card header colors */
.olimpia-card--future .olimpia-card__header {
	color: #1a1a1a;
}

/* --------------------------------------------------------------------------
   Divider
   -------------------------------------------------------------------------- */

.olimpia-card__divider {
	height: 3px;
	margin: 0 20px;
}

.olimpia-card--future .olimpia-card__divider {
	background: linear-gradient(90deg, #C8102E 0%, #C8102E 100%);
}

.olimpia-card--past .olimpia-card__divider {
	background: linear-gradient(90deg, #C8102E 0%, #C8102E 100%);
}

/* --------------------------------------------------------------------------
   Body
   -------------------------------------------------------------------------- */

.olimpia-card__body {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 32px 24px;
}

.olimpia-card__team {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

.olimpia-card__team img.olimpia-team-logo {
	width: 80px;
	height: 80px;
	object-fit: contain;
}

.olimpia-card__center {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 4px;
	min-height: 120px;
}

/* Future: big date/time */
.olimpia-card__datetime {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.olimpia-card__date-big {
	font-size: 36px;
	font-weight: 800;
	line-height: 1;
	color: inherit;
}

.olimpia-card__time-big {
	font-size: 28px;
	font-weight: 700;
	line-height: 1;
	color: inherit;
	opacity: 0.9;
}

/* Past: small date + score */
.olimpia-card__date-small {
	font-size: 14px;
	opacity: 0.8;
}

.olimpia-card__score {
	font-size: 42px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -1px;
}

.olimpia-card__score .boxscore-delimiter {
	display: inline-block;
	margin: 0 5px;
	font-weight: 300;
	opacity: 0.7;
}

/* Venue */
.olimpia-card__venue {
	font-size: 14px;
	margin-top: 4px;
}

.olimpia-card--future .olimpia-card__venue {
	color: #555;
}

.olimpia-card--past .olimpia-card__venue {
	color: #555;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.olimpia-card__footer {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px 20px;
}

.olimpia-card__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.olimpia-card__action:hover {
	opacity: 0.8;
}

.olimpia-card__icon {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

/* Future card: save date (text style, dark on white) */
.olimpia-card--future .olimpia-card__action--save-date {
	background: transparent;
	border: 0;
	color: #1a1a1a;
	font-family: 'Inter', system-ui, -apple-system, sans-serif;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.02em;
	padding: 0;
	text-transform: uppercase;
}

.olimpia-card--future .olimpia-card__action--save-date:hover {
	color: var(--color-primary);
	opacity: 1;
}

/* Past card: standings (text style, brand red on white) */
.olimpia-card--past .olimpia-card__action--standings {
	color: var(--color-primary);
}

/* Tickets / Highlights / Live usano il sistema condiviso .olimpia-btn
   (buttons.css): --filled per i biglietti, --outline-red per highlights/live.
   Save-date e standings restano text-style tramite .olimpia-card__action. */

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 600px) {
	.olimpia-card__body {
		padding: 0px 6px;
	}

	.olimpia-card__team img.olimpia-team-logo {
		width: 56px;
		height: 56px;
	}

	.olimpia-card__date-big,
	.olimpia-card__time-big {
		font-size: 24px;
	}

	.olimpia-card__score {
		font-size: 32px;
	}

	.olimpia-card__header {
		padding: 12px 16px;
		gap: 8px;
		flex-wrap: wrap;
	}

	.olimpia-card__league-name {
		font-size: 12px;
	}

	.olimpia-card__round {
		font-size: 12px;
	}

	.olimpia-league-logo {
		width: 24px;
		height: 24px;
	}

	.olimpia-card__venue {
		font-size: 12px;
	}

	.olimpia-card__footer {
		padding: 12px 16px;
	}

	.olimpia-card__action--tickets,
	.olimpia-card__action--highlights {
		padding: 10px 16px;
		font-size: 13px;
	}

	/* Event blocks: stack cards vertically on mobile */
	.oas-event-blocks-wrap {
		flex-direction: column !important;
	}

	.oas-event-block-item {
		flex: 1 1 100% !important;
		min-width: 100% !important;
	}

	body.body_style_fullwide .content_wrap .content_wrap {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}


/* ==========================================================================
   Event Venue - Two Column Layout (Map + Details)
   ========================================================================== */

.olimpia-venue {
	margin-top: 32px;
}

.olimpia-venue .sp-table-caption {
	margin-bottom: 16px;
}

.olimpia-venue__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	align-items: center;
	background: #ffffff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	padding: 24px;
}

/* Map column */
.olimpia-venue__map {
	border-radius: 8px;
	overflow: hidden;
}

.olimpia-venue__map #sp_openstreetmaps_container {
	border-radius: 8px;
}

/* Details column */
.olimpia-venue__details {
	display: flex;
	flex-direction: column;
	gap: 20px;
	justify-content: center;
}

.olimpia-venue__detail-row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.olimpia-venue__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--background-grey);
	color: var(--color-primary);
}

.olimpia-venue__detail-content {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.olimpia-venue__label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #888;
}

.olimpia-venue__value {
	font-size: 15px;
	font-weight: 500;
	color: #1a1a1a;
	line-height: 1.4;
}

/* Maps link */
.olimpia-venue__detail-row--link {
	margin-top: 8px;
}

.olimpia-venue__maps-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--color-primary);
	text-decoration: none;
	padding: 8px 16px;
	border: 1.5px solid var(--color-primary);
	border-radius: 8px;
	transition: all 0.2s ease;
}

.olimpia-venue__maps-link:hover {
	background: var(--color-primary);
	color: #ffffff;
}

.olimpia-venue__maps-link svg {
	flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Venue Responsive
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
	.olimpia-footer__sub-inner img {
		height: 140px !important;
		width: auto;
	}

	.footer-widget.widget_nav_menu {
		min-height: 250px;
	}
}

@media (max-width: 768px) {
	.olimpia-venue__grid {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 16px;
	}

	.olimpia-venue__details {
		gap: 16px;
	}

	.olimpia-venue__icon {
		width: 36px;
		height: 36px;
	}

	.olimpia-footer__sub-inner img {
		height: auto !important;
		width: 80%;
	}
}


/* ==========================================================================
   Event Results - Single Event Page (LBA Style)
   ========================================================================== */

.olimpia-result {
	margin-top: 24px;
}

.olimpia-result__table-wrap {
	overflow-x: auto;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	background: #ffffff;
}

.olimpia-result__table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}

/* Header */
.olimpia-result__th {
	padding: 12px 16px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #888;
	background: #fafafa;
	border-bottom: 1px solid #eee;
	white-space: nowrap;
}

.olimpia-result__th--league {
	width: 48px;
	text-align: center;
}

.olimpia-result__th--home {
	text-align: right;
	padding-right: 20px;
}

.olimpia-result__th--score {
	text-align: center;
	width: 140px;
}

.olimpia-result__th--away {
	text-align: left;
	padding-left: 20px;
}

.olimpia-result__th--datetime {
	text-align: center;
}

.olimpia-result__th--venue {
	text-align: center;
}

/* Body row */
.olimpia-result__row {
	border-bottom: none;
}

.olimpia-result__td {
	padding: 20px 16px;
	vertical-align: middle;
}

/* League logo cell */
.olimpia-result__td--league {
	width: 48px;
	text-align: center;
	padding: 20px 8px;
}

.olimpia-result__league-logo {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

/* Home team cell - right aligned */
.olimpia-result__td--home {
	text-align: right;
	padding-right: 20px;
}

.olimpia-result__td--home .olimpia-result__team-name {
	margin-right: 12px;
}

/* Away team cell - left aligned */
.olimpia-result__td--away {
	text-align: left;
	padding-left: 20px;
}

.olimpia-result__td--away .olimpia-result__team-name {
	margin-left: 12px;
}

/* Team name & logo inline */
.olimpia-result__td--home,
.olimpia-result__td--away {
	display: table-cell;
	white-space: nowrap;
}

.olimpia-result__team-name {
	font-size: 15px;
	font-weight: 500;
	color: #1a1a1a;
	vertical-align: middle;
}

.olimpia-result__team-logo {
	width: 32px;
	height: 32px;
	object-fit: contain;
	vertical-align: middle;
	display: inline-block;
}

/* Score cell */
.olimpia-result__td--score {
	text-align: center;
	width: 140px;
}

.olimpia-result__score-num {
	font-size: 28px;
	font-weight: 400;
	color: #666;
	vertical-align: middle;
}

.olimpia-result__score-num--winner {
	font-weight: 800;
	color: #1a1a1a;
}

.olimpia-result__score-sep {
	font-size: 24px;
	font-weight: 300;
	color: #ccc;
	margin: 0 8px;
	vertical-align: middle;
}

/* Date & time cell */
.olimpia-result__td--datetime {
	text-align: center;
}

.olimpia-result__date {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: #1a1a1a;
}

.olimpia-result__time {
	display: block;
	font-size: 13px;
	color: #888;
	margin-top: 2px;
}

/* Venue cell */
.olimpia-result__td--venue {
	text-align: center;
	font-size: 14px;
	color: #555;
}

/* --------------------------------------------------------------------------
   Event Results - Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-result__table-wrap {
		border-radius: 8px;
	}

	.olimpia-result__th {
		padding: 10px 8px;
		font-size: 10px;
	}

	.olimpia-result__td {
		padding: 14px 8px;
	}

	.olimpia-result__team-name {
		font-size: 13px;
	}

	.olimpia-result__team-logo {
		width: 24px;
		height: 24px;
	}

	.olimpia-result__score-num {
		font-size: 22px;
	}

	.olimpia-result__score-sep {
		margin: 0 4px;
	}

	/* Hide datetime and venue on small screens */
	.olimpia-result__th--datetime,
	.olimpia-result__td--datetime,
	.olimpia-result__th--venue,
	.olimpia-result__td--venue {
		display: none;
	}

	/* --------------------------------------------------------------------------
	   Calendar Mobile: stack logo + team name vertically
	   -------------------------------------------------------------------------- */

	/* Both home and away cells: use flex to stack vertically */
	.olimpia-result__td--home,
	.olimpia-result__td--away {
		padding: 12px 4px;
		vertical-align: middle;
		white-space: normal;
	}

	/* Home cell: DOM is [name, logo] — reverse to get [logo, name] */
	.olimpia-result__td--home {
		display: flex;
		flex-direction: column-reverse;
		align-items: center;
		justify-content: center;
		text-align: center;
	}

	/* Away cell: DOM is [logo, name] — normal column to keep [logo, name] */
	.olimpia-result__td--away {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
	}

	.olimpia-result__td--home .olimpia-result__team-name,
	.olimpia-result__td--away .olimpia-result__team-name {
		display: block;
		font-size: 10px;
		line-height: 1.2;
		margin: 4px 0 0;
		white-space: normal;
		word-break: break-word;
		max-width: 80px;
	}

	.olimpia-result__td--home .olimpia-result__team-logo,
	.olimpia-result__td--away .olimpia-result__team-logo {
		display: block;
		margin: 0 auto;
		width: 52px;
		height: 52px;
	}

	/* Score column: tighter */
	.olimpia-result__td--score {
		padding: 12px 4px;
	}

	.olimpia-result__score-num {
		font-size: 18px;
	}

	.olimpia-result__score-sep {
		font-size: 16px;
		margin: 0 2px;
	}

	/* Round column: compact with Saira Condensed */
	.olimpia-result__td--round {
		padding: 8px 0;
		width: 24px;
		min-width: 24px;
	}

	.olimpia-result__th--round {
		width: 24px;
		min-width: 24px;
		padding: 8px 0;
	}

	.olimpia-result__round-num {
		font-family: 'Saira Extra Condensed', 'Saira Condensed', sans-serif;
		font-size: 14px;
		font-weight: 700;
		padding: 2px 4px;
		min-width: 20px;
		background: none;
		color: #666;
	}

	/* Hide league logo column on mobile */
	.olimpia-result__th--league,
	.olimpia-result__td--league {
		display: none;
	}
}


/* ==========================================================================
   Event List / Calendar - Reuses .olimpia-result styles
   ========================================================================== */

/* Alternate row background */
.olimpia-result__row--alt {
	background: #fafafa;
}

/* Score link (clickable in calendar list) */
.olimpia-result__score-link {
	text-decoration: none;
	color: inherit;
	display: inline-flex;
	align-items: center;
}

.olimpia-result__score-link:hover {
	opacity: 0.7;
}

/* Time-only display for future events */
.olimpia-result__time-only {
	font-size: 18px;
	font-weight: 600;
	color: #1a1a1a;
}

/* Calendar-specific: smaller scores to fit more rows */
.olimpia-calendar .olimpia-result__score-num {
	font-size: 20px;
}

.olimpia-calendar .olimpia-result__score-sep {
	font-size: 18px;
	margin: 0 5px;
}

.olimpia-calendar .olimpia-result__td {
	padding: 14px 12px;
}

/* Border between rows */
.olimpia-calendar .olimpia-result__row {
	border-bottom: 1px solid #f0f0f0;
}

.olimpia-calendar .olimpia-result__row:last-child {
	border-bottom: none;
}

/* Calendar: larger team logos */
.olimpia-calendar .olimpia-result__team-logo {
	width: 48px;
	height: 48px;
}

/* Calendar: round/matchday column */
.olimpia-result__th--round {
	text-align: center;
	width: 48px;
}

.olimpia-result__td--round {
	text-align: center;
	width: 48px;
}

.olimpia-result__round-num {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	color: #888;
	background: #f0f0f0;
	border-radius: 6px;
	padding: 4px 8px;
	min-width: 28px;
}

/* Calendar: bold team name for the winner */
.olimpia-result__team-name--winner {
	font-weight: 800;
	color: #1a1a1a;
}

/* --------------------------------------------------------------------------
   Calendar Responsive Adjustments
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-calendar .olimpia-result__team-logo {
		width: 52px;
		height: 52px;
	}

	.olimpia-result__th--round,
	.olimpia-result__td--round {
		width: 24px;
		min-width: 24px;
	}

	.olimpia-result__round-num {
		font-family: 'Saira Extra Condensed', 'Saira Condensed', sans-serif;
		font-size: 14px;
		font-weight: 700;
		padding: 2px 4px;
		min-width: 20px;
		background: none;
		color: #666;
	}

	/* Calendar: make table fixed to prevent overflow */
	.olimpia-calendar .olimpia-result__table {
		table-layout: fixed;
	}

	/* Calendar: distribute column widths on mobile */
	.olimpia-calendar .olimpia-result__th--round {
		width: 24px;
	}

	.olimpia-calendar .olimpia-result__th--score {
		width: 80px;
	}

	/* Calendar scores slightly smaller */
	.olimpia-calendar .olimpia-result__score-num {
		font-size: 16px;
	}

	.olimpia-calendar .olimpia-result__score-sep {
		font-size: 14px;
		margin: 0 2px;
	}

	.olimpia-calendar .olimpia-result__td {
		padding: 10px 4px;
	}
}

/* Extra-small screens: hide team name, show logo only */
@media (max-width: 420px) {

	.olimpia-result__td--home .olimpia-result__team-name,
	.olimpia-result__td--away .olimpia-result__team-name {
		display: none;
	}

	.olimpia-result__td--home .olimpia-result__team-logo,
	.olimpia-result__td--away .olimpia-result__team-logo {
		width: 80px;
		height: 80px;
	}

	.olimpia-result__td--home,
	.olimpia-result__td--away {
		padding: 6px 2px;
	}

	.olimpia-calendar .olimpia-result__score-num {
		font-size: 22px;
	}
}


/* ==========================================================================
   OAS Event Blocks Shortcode - Flexbox Equal Height
   ========================================================================== */

.oas-event-blocks-wrap {
	width: 100%;
}

/* Each flex item takes equal space */
.oas-event-block-item {
	flex: 1 1 0 !important;
	min-width: 0;
	display: flex;
}

/* Direct child div inside item fills width */
.oas-event-block-item>div {
	width: 100%;
}

/* Inner SportsPress wrapper fills the item */
.oas-event-block-item .olimpia-event-blocks {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
}

/* Card stretches to fill height */
.oas-event-block-item .olimpia-card {
	flex: 1;
	display: flex;
	flex-direction: column;
}

/* Body expands to absorb extra height */
.oas-event-block-item .olimpia-card__body {
	flex: 1;
}

@media (min-width: 901px) and (max-width: 1200px) {
	.oas-event-blocks-wrap .oas-event-block-item:first-child {
		display: none !important;
	}
}

@media (max-width: 900px) {
	.oas-event-blocks-wrap {
		flex-direction: column !important;
	}
}

@media (max-width: 768px) {

	.oas-event-block-item {
		flex: 0 0 100% !important;
		width: 100% !important;
	}
}


/* ==========================================================================
   Team Logo - Generic Utility Classes
   ========================================================================== */

/**
 * Classe generica per i loghi squadra, con 3 varianti:
 * - .olimpia-team-logo--sm  → 24px (inline text, liste compatte)
 * - .olimpia-team-logo--md  → 36px (classifiche, tabelle dati)
 * - .olimpia-team-logo--lg  → 56px (card evento, hero)
 */

.olimpia-team-logo {
	display: inline-block;
	object-fit: contain;
	vertical-align: middle;
	flex-shrink: 0;
}

.olimpia-team-logo--sm {
	width: 24px;
	height: 24px;
}

.olimpia-team-logo--md {
	width: 36px;
	height: 36px;
}

.olimpia-team-logo--lg {
	width: 56px;
	height: 56px;
}


/* --------------------------------------------------------------------------
   Team Logo Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-team-logo--sm {
		width: 20px;
		height: 20px;
	}

	.olimpia-team-logo--md {
		width: 28px;
		height: 28px;
	}

	.olimpia-team-logo--lg {
		width: 44px;
		height: 44px;
	}

	.sp-league-table .team-logo img {
		width: 28px;
		height: 28px;
	}
}


/* ==========================================================================
   Venue Detail Page (taxonomy-sp_venue)
   ========================================================================== */

.olimpia-venue-detail {
	padding: var(--space-2xl) 0;
}

/* Hero image */
.olimpia-venue-detail__hero {
	border-radius: var(--radius-card);
	overflow: hidden;
	margin-bottom: var(--space-2xl);
	box-shadow: var(--shadow-lg);
}

.olimpia-venue-detail__hero-img {
	width: 100%;
	height: 600px;
	object-fit: cover;
	display: block;
}

/* Info section */
.olimpia-venue-detail__info {
	margin-bottom: var(--space-2xl);
}

.olimpia-venue-detail__title {
	font-size: var(--font-size-3xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-xl);
}

.olimpia-venue-detail__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-2xl);
	align-items: start;
	background: var(--color-white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	padding: var(--space-xl);
}

.olimpia-venue-detail__map {
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.olimpia-venue-detail__details {
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
	justify-content: center;
}

/* Section titles */
.olimpia-venue-detail__section-title {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-lg);
	padding-bottom: var(--space-sm);
	border-bottom: var(--divider-height) solid var(--color-primary);
	display: inline-block;
}

.olimpia-venue-detail__event-count {
	font-size: var(--font-size-base);
	font-weight: var(--font-weight-normal);
	color: var(--color-gray-500);
	margin-left: var(--space-sm);
}

/* Home team card */
.olimpia-venue-detail__home-team {
	margin-bottom: var(--space-2xl);
}

.olimpia-venue-detail__team-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-base);
	background: var(--color-white);
	border-radius: var(--radius-lg);
	padding: var(--space-2xl);
	box-shadow: var(--shadow-sm);
	text-align: center;
}

.olimpia-venue-detail__team-logo {
	flex-shrink: 0;
}

.olimpia-venue-detail__team-logo-img {
	width: 100px;
	height: 100px;
	object-fit: contain;
}

.olimpia-venue-detail__team-name {
	font-size: var(--font-size-2xl);
	font-weight: var(--font-weight-bold);
	margin: 0;
}

.olimpia-venue-detail__team-name a {
	color: var(--color-black);
	text-decoration: none;
	transition: color var(--transition-fast);
}

.olimpia-venue-detail__team-name a:hover {
	color: var(--color-primary);
}

/* Events section */
.olimpia-venue-detail__events {
	margin-top: var(--space-2xl);
}

/* --------------------------------------------------------------------------
   Venue Detail - Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-venue-detail__hero-img {
		height: 250px;
	}

	.olimpia-venue-detail__title {
		font-size: var(--font-size-xl);
	}

	.olimpia-venue-detail__grid {
		grid-template-columns: 1fr;
		gap: var(--space-lg);
		padding: var(--space-base);
	}

	.olimpia-venue-detail__team-card {
		padding: var(--space-lg);
	}

	.olimpia-venue-detail__team-logo-img {
		width: 80px;
		height: 80px;
	}

	.olimpia-venue-detail__team-name {
		font-size: var(--font-size-lg);
	}
}


/* ==========================================================================
   League Detail Page (taxonomy-sp_league)
   ========================================================================== */

.olimpia-league-detail {
	padding: var(--space-2xl) 0;
}

/* Header: logo centered + title */
.olimpia-league-detail__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--space-lg);
	margin-bottom: var(--space-2xl);
}

.olimpia-league-detail__logo-img {
	width: 120px;
	height: 120px;
	object-fit: contain;
}

.olimpia-league-detail__title {
	font-size: var(--font-size-3xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0;
}

/* Description */
.olimpia-league-detail__description {
	max-width: 720px;
	margin: 0 auto var(--space-2xl);
	text-align: center;
	font-size: var(--font-size-md);
	color: var(--color-gray-700);
	line-height: 1.6;
}

/* Sections */
.olimpia-league-detail__section {
	margin-bottom: var(--space-2xl);
}

.olimpia-league-detail__section-title {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-lg);
	padding-bottom: var(--space-sm);
	border-bottom: var(--divider-height) solid var(--color-primary);
	display: inline-block;
}

/* --------------------------------------------------------------------------
   League Detail - Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-league-detail__logo-img {
		width: 80px;
		height: 80px;
	}

	.olimpia-league-detail__title {
		font-size: var(--font-size-xl);
	}
}


/* ==========================================================================
   Playoff Layout (taxonomy-sp_league with is_playoff)
   ========================================================================== */

.olimpia-playoff-phase {
	margin-bottom: var(--space-2xl);
}

.olimpia-playoff-game {
	margin-bottom: var(--space-lg);
}

.olimpia-playoff-game__title {
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-semibold);
	color: var(--color-gray-600);
	margin: 0;
}


/* ==========================================================================
   Single Player Page
   ========================================================================== */

/* --- Player Content / Biography --- */

/* Photo + Details: make details card match photo height.
   The Goal parent theme floats .sp-template-photo left at max-width 43%.
   We keep that layout and simply stretch the details dl to fill available height. */
.single-sp_player .sp-section-content-photo .sp-template-photo {
	float: left;
}

.single-sp_player .sp-section-content-details .sp-template-details dl {
	min-height: 100%;
	margin-bottom: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
}

.sp-section-content-content .sp-post-content p {
	margin-bottom: var(--space-base);
	line-height: 1.7;
}

.sp-section-content-content .sp-post-content p:last-child {
	margin-bottom: 0;
}

/* --- Player Statistics --- */
.olimpia-player-stats {
	margin-top: var(--space-xl);
}

/* Highlight Cards */
.olimpia-player-stats__highlights {
	margin-bottom: var(--space-2xl);
}

.olimpia-player-stats__section-title {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-lg);
	padding-bottom: var(--space-sm);
	border-bottom: var(--divider-height) solid var(--color-primary);
	display: inline-block;
}

.olimpia-player-stats__cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--space-base);
	margin-bottom: var(--space-lg);
}

.olimpia-player-stats__card {
	background: var(--color-gray-100);
	border-radius: var(--radius-sm);
	padding: var(--space-lg) var(--space-base);
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.olimpia-player-stats__card-label {
	font-size: var(--font-size-xs);
	font-weight: var(--font-weight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-gray-600);
}

.olimpia-player-stats__card-value {
	font-size: var(--font-size-3xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	line-height: 1;
}

/* League pills */
.olimpia-player-stats__leagues {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}

.olimpia-player-stats__league-pill {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xs) var(--space-sm);
	background: var(--color-gray-100);
	border-radius: var(--radius-sm);
	font-size: var(--font-size-sm);
	color: var(--color-gray-700);
}

.olimpia-player-stats__league-logo {
	width: 20px;
	height: 20px;
	object-fit: contain;
}

/* Detailed tables section */
.olimpia-player-stats__tables {
	margin-top: var(--space-xl);
}

.olimpia-player-stats__league-block {
	margin-bottom: var(--space-xl);
}

.olimpia-player-stats__league-title {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-base);
}

.olimpia-player-stats__league-icon img {
	width: 24px;
	height: 24px;
	object-fit: contain;
}

.olimpia-player-stats__table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.olimpia-player-stats__table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-size-sm);
	white-space: nowrap;
}

.olimpia-player-stats__th {
	background: var(--color-primary);
	color: var(--color-white);
	padding: var(--space-xs) var(--space-sm);
	text-align: center;
	font-weight: var(--font-weight-semibold);
	font-size: var(--font-size-xs);
}

.olimpia-player-stats__th--label {
	text-align: left;
	min-width: 60px;
}

.olimpia-player-stats__td {
	padding: var(--space-xs) var(--space-sm);
	text-align: center;
	border-bottom: 1px solid var(--color-gray-200);
}

.olimpia-player-stats__td--label {
	text-align: left;
}

.olimpia-player-stats__row--totals {
	background: var(--color-white);
}

.olimpia-player-stats__row--averages {
	background: var(--color-gray-100);
}

/* Legacy SportsPress statistics table fallback */
.sp-template-player-statistics .sp-table-caption {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-base);
	padding-bottom: var(--space-xs);
	border-bottom: var(--divider-height) solid var(--color-primary);
	display: inline-block;
}

.sp-template-player-statistics .sp-player-statistics {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-size-sm);
}

.sp-template-player-statistics .sp-player-statistics thead th {
	background: var(--color-primary);
	color: var(--color-white);
	padding: var(--space-xs) var(--space-sm);
	text-align: center;
	font-weight: var(--font-weight-semibold);
	white-space: nowrap;
}

.sp-template-player-statistics .sp-player-statistics tbody td {
	padding: var(--space-xs) var(--space-sm);
	text-align: center;
	border-bottom: 1px solid var(--color-gray-200);
}

.sp-template-player-statistics .sp-player-statistics tbody tr.odd {
	background: var(--color-white);
}

.sp-template-player-statistics .sp-player-statistics tbody tr.even {
	background: var(--color-gray-100);
}

.sp-template-player-statistics .sp-player-statistics tbody td.sp-highlight {
	font-weight: var(--font-weight-bold);
	background: rgba(var(--color-primary-rgb), 0.08);
}

/* --- Player Events (Grouped by League) --- */
.olimpia-player-events {
	margin-top: var(--space-xl);
}

.olimpia-player-events__league {
	margin-bottom: var(--space-2xl);
}

.olimpia-player-events__league-header {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	margin-bottom: var(--space-lg);
	padding-bottom: var(--space-sm);
	border-bottom: var(--divider-height) solid var(--color-primary);
}

.olimpia-player-events__league-logo-img {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

.olimpia-player-events__league-title {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0;
}

.olimpia-player-events__league-title a {
	color: inherit;
	text-decoration: none;
	transition: color var(--transition-fast);
}

.olimpia-player-events__league-title a:hover {
	color: var(--color-primary);
}

.olimpia-player-events__phase-title {
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: var(--space-lg) 0 var(--space-sm);
	text-align: center;
}

/* Reuse the playoff game title style from league detail */
.olimpia-player-events .olimpia-playoff-phase {
	margin-bottom: var(--space-xl);
}

.olimpia-player-events .olimpia-playoff-phase-header {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: var(--space-sm);
	margin: var(--space-lg) 0 var(--space-sm);
}

.olimpia-player-events .olimpia-playoff-phase-header .olimpia-player-events__phase-title {
	margin: 0;
}

.olimpia-player-events .olimpia-playoff-phase-header .olimpia-playoff-game__title {
	margin: 0;
}

.olimpia-playoff-phase-header__sep {
	color: var(--color-gray-400);
	font-weight: var(--font-weight-normal);
}

.olimpia-player-events .olimpia-playoff-game {
	margin-bottom: var(--space-lg);
}

.olimpia-player-events .olimpia-playoff-game__title {
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-semibold);
	color: var(--color-gray-600);
	margin: 0 0 var(--space-xs);
	text-align: center;
}

/* --------------------------------------------------------------------------
   Single Player Page - Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-player-stats__cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.olimpia-player-stats__card-value {
		font-size: var(--font-size-2xl);
	}

	.olimpia-player-events__league-header {
		gap: var(--space-xs);
	}

	.olimpia-player-events__league-logo-img {
		width: 24px;
		height: 24px;
	}

	.olimpia-player-events__league-title {
		font-size: var(--font-size-md);
	}

	.olimpia-player-stats__table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* --------------------------------------------------------------------------
   Sportpress - Sponsors
   -------------------------------------------------------------------------- */


.olimpia-footer__pre-inner .sp-sponsors {
	padding: 0 !important;
	background-color: var(--color-primary);
}

.has-text-align-center {
	text-align: center;
}


/* ==========================================================================
   League Table - Mobile Compact Layout
   ========================================================================== */

@media (max-width: 600px) {

	/* Compact table padding */
	.sp-league-table th,
	.sp-league-table td {
		padding: 6px 4px;
		font-size: 12px;
	}

	/* Rank column: narrow */
	.sp-league-table .data-rank {
		width: 28px;
		min-width: 28px;
		text-align: center;
		padding: 6px 2px;
	}

	/* Team name column: show only logo on mobile, hide text */
	.sp-league-table .data-name .team-name-text {
		display: none;
	}

	/* Bigger logo on mobile (replaces the text) */
	.sp-league-table .team-logo,
	.sp-league-table .team-logo img {
		width: 64px;
		height: 64px;
		max-width: 64px;
		max-height: 64px;
	}

	.sp-league-table .team-logo {
		margin-right: 0;
	}

	/* Name column: only needs space for the logo */
	.sp-league-table .data-name {
		width: 72px;
		min-width: 72px;
		padding: 6px 4px;
		text-align: center;
	}

	/* Data columns: tight and centered */
	.sp-league-table td[class^="data-"],
	.sp-league-table th[class^="data-"] {
		text-align: center;
		white-space: nowrap;
	}

	/* Hide secondary columns (pf, pa, diff, ppg, opg, pct, gb, home, road, lten, strk) */
	.sp-league-table .data-pf,
	.sp-league-table .data-pa,
	.sp-league-table .data-diff,
	.sp-league-table .data-ppg,
	.sp-league-table .data-opg,
	.sp-league-table .data-pct,
	.sp-league-table .data-gb,
	.sp-league-table .data-home,
	.sp-league-table .data-road,
	.sp-league-table .data-lten,
	.sp-league-table .data-strk {
		display: none;
	}

	/* Keep: Pos, Squadra (logo), Pts, GP, W, L */

	/* Table wrapper: no horizontal scroll needed with fewer columns */
	.sp-table-wrapper {
		overflow-x: visible;
	}

	/* Table: full width */
	.sp-league-table {
		width: 100%;
		table-layout: fixed;
	}

	/* Highlighted row: visible border */
	.sp-league-table tr.highlighted td {
		border-top: 2px solid var(--color-primary, #C8102E);
		border-bottom: 2px solid var(--color-primary, #C8102E);
	}
}


/* ==========================================================================
   Icon Button
   La sezione dei bottoni (.olimpia-icon-btn e varianti) è stata spostata in
   css/buttons.css — file condiviso enqueued globalmente dal child theme.
   ========================================================================== */


/* ==========================================================================
   Dark Overlay - Generic Utility Class
   Semi-transparent dark layer for text-on-image legibility.
   ========================================================================== */

.olimpia-dark-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top,
			rgba(0, 0, 0, 1) 0%,
			rgba(0, 0, 0, 0.6) 100%);
	pointer-events: none;
	z-index: 1;
}


/* ==========================================================================
   Mega Title - Hero Banner con immagine di sfondo e testo grande
   Altezza: 380px desktop, 150px mobile.
   Font: Saira Extra Condensed 120px desktop, 48px mobile.
   ========================================================================== */

.olimpia-mega-title {
	position: relative;
	width: 100%;
	height: 380px;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin-bottom: 0;
}

.olimpia-mega-title__inner {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 0 var(--space-xl);
}

.olimpia-mega-title__text {
	font-family: var(--font-bg-title, 'Saira Extra Condensed', sans-serif);
	font-size: 120px !important;
	font-weight: 700 !important;
	;
	line-height: 1 !important;
	;
	color: var(--color-white);
	text-transform: uppercase;
	text-align: center;
	margin: 0;
	letter-spacing: -0.02em;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

/* Responsive */
@media (max-width: 1024px) {
	.olimpia-mega-title {
		height: 260px;
	}

	.olimpia-mega-title__text {
		font-size: 80px !important;
	}
}

@media (max-width: 768px) {
	.olimpia-mega-title {
		height: 200px;
	}

	.olimpia-mega-title__text {
		font-size: 64px !important;
	}

	.counter-content .odometer-inside * {
		font-size: 64px !important;
	}
}

@media (max-width: 480px) {
	.olimpia-mega-title {
		height: 180px;
	}

	.olimpia-mega-title__text {
		font-size: 48px !important;
	}
}

/* --------------------------------------------------------------------------
   Mega Title - Subtitle block
   Separate full-width black block rendered AFTER the mega title banner.
   Padding 120px 80px desktop, reduced on smaller screens.
   -------------------------------------------------------------------------- */

.olimpia-mega-title__subtitle-block {
	width: 100%;
	background: #000;
	padding: 120px 80px;
	display: flex;
	justify-content: center;
	box-sizing: border-box;
}

.olimpia-mega-title__subtitle {
	max-width: 820px;
	margin: 0;
	color: var(--color-white);
	font-size: 1rem;
	line-height: 1.6;
	text-align: center;
}

@media (max-width: 1024px) {
	.olimpia-mega-title__subtitle-block {
		padding: 80px 48px;
	}

	.olimpia-mega-title__subtitle {
		font-size: 0.95rem;
	}
}

@media (max-width: 768px) {
	.olimpia-mega-title__subtitle-block {
		padding: 56px 32px;
	}

	.olimpia-mega-title__subtitle {
		font-size: 0.9rem;
	}
}

@media (max-width: 480px) {
	.olimpia-mega-title__subtitle-block {
		padding: 40px 20px;
	}

	.olimpia-mega-title__subtitle {
		font-size: 0.875rem;
	}
}

/* --------------------------------------------------------------------------
   Mega Title - Body class overrides
   When mega-title is active, remove top/bottom padding from content area
   and side padding from fullwide layout so the banner is truly edge-to-edge.
   -------------------------------------------------------------------------- */

body.mega-title .page_content_wrap {
	padding-top: 0;
	padding-bottom: 0;
}

body.single-organigramma .page_content_wrap {
	padding-bottom: 0 !important;
}

body.page-id-14112 .content_wrap,
body.page-id-14108 .content_wrap {
	max-width: 960px !important;
}

/* ==========================================================================
   Misc
   ========================================================================== */
.home .trx-addons-advanced-title a {
	color: white !important;
}

.container-grey-bg {
	background-color: var(--background-grey);
}

/* ==========================================================================
   Elementor Button - Global Pill Style
   Variante Light: sfondo bianco, testo scuro, icona primary
   Variante Inverse (.elementor-button--inverse): sfondo primary, testo bianco
   ========================================================================== */

.elementor-button {
	background-color: var(--color-white) !important;
	color: var(--color-black) !important;
	border: none !important;
	border-radius: var(--radius-pill) !important;
	font-weight: var(--font-weight-medium) !important;
	font-size: var(--font-size-lg) !important;
	padding: 14px 28px !important;
	box-shadow: var(--shadow-md) !important;
	transition: all var(--transition-fast) !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	text-decoration: none !important;
}

.elementor-button:hover {
	background-color: var(--color-gray-50) !important;
	color: var(--color-black) !important;
	box-shadow: var(--shadow-lg) !important;
	transform: translateY(-1px);
}

.elementor-button .elementor-button-icon {
	font-size: 1.2em !important;
}

.elementor-button:hover .elementor-button-icon {
	color: var(--color-primary-dark) !important;
}

.elementor-button.elementor-button-link {
	font-size: 0.8rem;
}

/* --------------------------------------------------------------------------
   Variante Inverse - classe aggiuntiva sul widget Elementor
   -------------------------------------------------------------------------- */

.elementor-button--inverse .elementor-button,
.elementor-button.elementor-button--inverse {
	background-color: var(--color-primary) !important;
	color: var(--color-white) !important;
}

.elementor-button--inverse .elementor-button:hover,
.elementor-button.elementor-button--inverse:hover {
	background-color: var(--color-primary-dark) !important;
	color: var(--color-white) !important;
}

.elementor-button--inverse .elementor-button .elementor-button-icon,
.elementor-button.elementor-button--inverse .elementor-button-icon {
	color: var(--color-white) !important;
}

.elementor-button--inverse .elementor-button:hover .elementor-button-icon,
.elementor-button.elementor-button--inverse:hover .elementor-button-icon {
	color: var(--color-white) !important;
}

/* COUNTERS */
.counters-bg-title {
	opacity: 0.1 !important;
}

.counters-template-wrapper * {
	color: white !important;
}

/* ======================================================================
   Bottone (.hero-button-link) - solo stile visivo
   ====================================================================== */
.hero-button-link .elementor-button {
	background-color: var(--color-primary) !important;
	color: var(--color-on-dark) !important;
	border-radius: 50% !important;
	width: 56px !important;
	height: 56px !important;
	min-width: 56px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	border: 2px solid var(--color-primary) !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

.hero-button-link .elementor-button:hover {
	background-color: var(--color-primary-dark) !important;
	border-color: var(--color-primary-dark) !important;
}

.hero-button-link .elementor-button:hover .elementor-button-icon {
	color: white !important;
}


.hero-button-link .elementor-button .elementor-button-text {
	display: none !important;
}

.hero-button-link .elementor-button .elementor-button-icon {
	margin: 0 !important;
	font-size: 20px !important;
}



/* ==========================================================================
   Global Scrollbar Styling
   Minimal scrollbar with rounded corners, adaptive to light/dark backgrounds.
   ========================================================================== */

/* Firefox */
* {
	scrollbar-width: thin;
	scrollbar-color: rgba(128, 128, 128, 0.4) transparent;
}

/* Webkit (Chrome, Safari, Edge) */
::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

::-webkit-scrollbar-track {
	background: transparent;
	border-radius: 8px;
}

::-webkit-scrollbar-thumb {
	background: rgba(128, 128, 128, 0.4);
	border-radius: 8px;
}

::-webkit-scrollbar-thumb:hover {
	background: rgba(128, 128, 128, 0.6);
}

::-webkit-scrollbar-corner {
	background: transparent;
}

/* ==========================================================================
   Singola news — nascondi box author bio (author_info author vcard)
   ========================================================================== */
body.single-post .author_info,
body.single-post .author.vcard,
body.single-post .post_author_info {
	display: none !important;
}

/* ==========================================================================
   Singola news — nascondi link prev/next nel footer del post
   ========================================================================== */
body.single-post .post_footer.post_footer_single.entry-footer {
	display: none !important;
}

/* ==========================================================================
   Singola news — immagine in evidenza originale e centrata
   ========================================================================== */
body.single-post .post_featured {
	text-align: center;
}

body.single-post .post_featured img {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: 100%;
	height: auto;
	width: auto;
}

#post-14040 #scroll .e-con-inner {
	padding-top: 0 !important;
	padding-bottom: 50px !important;
}


/* ==========================================================================
   Post Content Blocks — full-width breakout container
   Questo div può trovarsi dentro .content_wrap o .page_content_wrap;
   il breakout lo rende full-width indipendentemente dal genitore.
   ========================================================================== */

.olimpia-post-content-blocks {
	position: relative;
	width: 100vw;
	left: 50%;
	transform: translateX(-50%);
	max-width: 100vw;
	overflow-x: hidden;
	margin-top: 0;
	background-color: white;
}

/* --- Latest News — boxed with padding --- */
.olimpia-latest-news {
	max-width: var(--content-max-width, 1280px);
	margin: 0 auto;
	padding: var(--space-3xl, 60px) var(--space-lg, 20px);
}

.olimpia-latest-news .oas-title-cta {
	margin-bottom: 40px;
}

.olimpia-latest-news__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-xl, 24px);
}

@media (max-width: 1024px) {
	.olimpia-latest-news__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 540px) {
	.olimpia-latest-news__grid {
		grid-template-columns: 1fr;
	}
}

/* --- Event Blocks — full-width background strip (grey) --- */
.olimpia-post-content-blocks__events {
	background: var(--background-grey, #f5f5f5);
	padding: 50px 0;
}

.olimpia-post-content-blocks__events>.oas-event-blocks-wrap {
	max-width: var(--content-max-width, 1280px);
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
}

.olimpia-post-content-blocks__events .oas-event-block-item {
	max-width: 100%;
	box-sizing: border-box;
}

.olimpia-post-content-blocks__events .olimpia-card {
	max-width: 100%;
	box-sizing: border-box;
}

/* --- Store Products — full-width background strip --- */
.olimpia-post-content-blocks__store {
	background: var(--background-grey, #f5f5f5);
	padding: 100px 0;
}

.olimpia-post-content-blocks__store>.oas-store-products {
	max-width: var(--content-max-width, 1280px);
	margin: 0 auto;
	padding: 0 var(--space-lg, 20px);
}

/* --- Elementor template (counters) — full-width, flush to footer, no spacing --- */
.olimpia-post-content-blocks__elementor {
	margin: 0;
	padding: 0;
}

.olimpia-post-content-blocks__elementor .elementor {
	margin: 0 !important;
	padding: 0 !important;
}

.olimpia-card__action.olimpia-card__action--save-date {
	font-size: 13px !Important;
	text-transform: none !important;
}

#brand-visibility h3 {
	max-width: 200px !important;
}

.home #home_banner_app {
	display: none !important;
}



html[lang="it-IT"] .category-news_giovanili h1.olimpia-mega-title__text::before {
	content: "NEWS DALLE ";
}

html[lang="en-US"] .category-news_giovanili h1.olimpia-mega-title__text::before {
	content: "NEWS FROM ";
}

#cookiebanner {
	background-color: #fff !important;
	padding: 30px !important;
}

#cookiebanner buttom {
	margin-bottom: 8px !important;
}