/* ==========================================================
   Utility CSS — sottoinsieme in stile Tailwind usato dal sito.
   Il Sito Classifiche carica Tailwind da CDN; qui le stesse classi
   sono definite localmente, così il sito funziona anche offline
   e senza dipendenze esterne. Nomi identici a Tailwind: per tornare
   alla CDN basta sostituire questo file con lo script di Tailwind.
   ========================================================== */

/* --- reset essenziale (preflight ridotto) --- */
*,::before,::after{box-sizing:border-box}
h1,h2,h3,h4,h5,h6,p,figure{margin:0}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
img{display:block;max-width:100%;height:auto}
table{border-collapse:collapse}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* --- layout --- */
.block{display:block}
.flex{display:flex}
.grid{display:grid}
/* .hidden dopo gli altri display, come in Tailwind: vince sempre */
.hidden{display:none}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.justify-between{justify-content:space-between}
.shrink-0{flex-shrink:0}
.mx-auto{margin-left:auto;margin-right:auto}
.sticky{position:sticky}
.top-0{top:0}
.z-30{z-index:30}
.overflow-hidden{overflow:hidden}
.overflow-x-auto{overflow-x:auto;-webkit-overflow-scrolling:touch}
.scroll-mt-28{scroll-margin-top:7rem}

.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}

.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}

.space-y-3>*+*{margin-top:.75rem}
.space-y-4>*+*{margin-top:1rem}
.space-y-5>*+*{margin-top:1.25rem}
.space-y-6>*+*{margin-top:1.5rem}

/* --- dimensioni --- */
.w-full{width:100%}.w-auto{width:auto}.h-auto{height:auto}
.h-6{height:1.5rem}.h-7{height:1.75rem}.h-10{height:2.5rem}
.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}
.object-contain{object-fit:contain}

/* --- spaziature --- */
.p-1{padding:.25rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}
.px-3{padding-left:.75rem;padding-right:.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.pt-1{padding-top:.25rem}.pb-8{padding-bottom:2rem}
.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-5{margin-bottom:1.25rem}
.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}

/* --- tipografia --- */
.text-\[10px\]{font-size:10px;line-height:1.4}
.text-xs{font-size:.75rem;line-height:1rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.font-bold{font-weight:700}
.font-black{font-weight:700}
.font-mono{font-family:var(--font-mono)}
.leading-\[0\.95\]{line-height:.95}
.text-center{text-align:center}
.text-right{text-align:right}
.no-underline{text-decoration:none}

.text-slate-500{color:#64748b}
.text-slate-600{color:#475569}
.text-slate-700{color:#334155}
.text-slate-900{color:#0f172a}
.hover\:text-amber-600:hover{color:#d97706}

/* --- sfondi, bordi, ombre --- */
.bg-white\/80{background-color:rgba(255,255,255,.8)}
.bg-white\/90{background-color:rgba(255,255,255,.9)}
.border{border:1px solid #e2e8f0}
.border-t{border-top:1px solid #e2e8f0}
.border-b{border-bottom:1px solid #e2e8f0}
.border-slate-200{border-color:#e2e8f0}
.border-slate-200\/80{border-color:rgba(226,232,240,.8)}
.rounded-xl{border-radius:8px}
.rounded-2xl{border-radius:8px}
.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}

/* --- breakpoint sm (640px) --- */
@media (min-width:640px){
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sm\:h-8{height:2rem}
  .sm\:h-12{height:3rem}
  .sm\:p-8{padding:2rem}
  .sm\:p-10{padding:2.5rem}
  .sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}
  .sm\:text-xs{font-size:.75rem;line-height:1rem}
  .sm\:text-lg{font-size:1.125rem;line-height:1.75rem}
  .sm\:text-2xl{font-size:1.5rem;line-height:2rem}
  .sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}
  .sm\:text-5xl{font-size:3rem;line-height:1}
  .sm\:text-6xl{font-size:3.75rem;line-height:1}
}

/* --- breakpoint md (768px) --- */
@media (min-width:768px){
  .md\:hidden{display:none}
  .md\:flex{display:flex}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* --- breakpoint lg (1024px) --- */
@media (min-width:1024px){
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}
  .lg\:col-span-3{grid-column:span 3/span 3}
  .lg\:col-span-4{grid-column:span 4/span 4}
  .lg\:col-span-5{grid-column:span 5/span 5}
  .lg\:col-span-7{grid-column:span 7/span 7}
  .lg\:col-span-8{grid-column:span 8/span 8}
}
