:root { --sof-bg:#050404; --sof-fg:#ffffff; --sof-accent:#C9A870; }

/* RESET AGGRESSIVO PER SOF CUSTOM THEME */
body.single-talent, body.page-template-sof-roster-template { 
    background-color: var(--sof-bg) !important; 
    margin: 0 !important; 
    padding: 0 !important; 
}

/* Rompiamo ogni tipo di container del tema */
.single-talent #content, .single-talent .site-main, .single-talent .ast-container, .single-talent .container, 
.page-template-sof-roster-template #content, .page-template-sof-roster-template .site-main, .page-template-sof-roster-template .container {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Assicuriamoci che l'immagine di Morata tocchi i bordi se necessario */
.cv-hero { margin-top: 0 !important; }

/* --- STILI ROSTER (GRID) --- */
.sof-roster-page { background: var(--sof-bg); color: var(--sof-fg); min-height: 100vh; }
.talent-photo-grid { 
    display: grid; 
    grid-template-columns: repeat(5, 1fr); /* 5 su desktop */
    gap: 2px; 
}
.person-card { position: relative; aspect-ratio: 3/4; overflow: hidden; background: #111; display: block; }
.person-card img { width: 100%; height: 100%; object-fit: cover; transition: 0.6s; filter: grayscale(20%); }
.person-card:hover img { transform: scale(1.05); filter: grayscale(0%); }

.person-overlay { 
    position: absolute; 
    inset: 0; 
    background: linear-gradient(to top, rgba(0,0,0,0.85), transparent 60%); 
    opacity: 0; 
    transition: 0.3s; 
    display: flex; 
    flex-direction: column; 
    justify-content: flex-end; 
    padding: clamp(10px, 2vw, 20px); 
}
.person-card:hover .person-overlay { opacity: 1; }
.person-name { 
    font-size: clamp(10px, 3.5vw, 18px); 
    color: #fff; 
    font-weight: 300; 
    line-height: 1.2;
}

/* Mobile & Tablet Optimizations */
@media (max-width: 1024px) {
    .talent-photo-grid {
        grid-template-columns: repeat(4, 1fr); /* 4 su tablet */
    }
}
@media (max-width: 768px) {
    .talent-photo-grid {
        grid-template-columns: repeat(3, 1fr); /* 3 su smartphone come richiesto */
    }
    .person-overlay {
        opacity: 1; /* Su mobile niente hover, nome sempre visibile */
        background: linear-gradient(to top, rgba(0,0,0,0.9), transparent 50%);
    }
    .person-card img {
        filter: grayscale(0%); /* Niente BN su mobile se non c'è hover */
    }
}

/* GALLERY & LIGHTBOX */
.sof-gallery-swipe-wrap {
    position: relative;
    width: 100%;
}
.sof-gallery-slider { 
    display: flex; 
    gap: 20px; 
    overflow-x: auto; 
    scrollbar-width: none; 
    cursor: grab; 
    -webkit-overflow-scrolling: touch;
    padding-bottom: 10px;
    user-select: none; /* Evita la selezione blu durante il trascinamento */
}
.sof-gallery-slider::-webkit-scrollbar { display: none; }
.sof-gallery-slider.active { cursor: grabbing; }

.sof-gallery-slide { 
    flex: 0 0 calc(50% - 10px); /* 2 immagini per riga su desktop */
}
.sof-gallery-slide img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 3/4; /* Stesso rapporto del mockup */
    object-fit: cover !important;
    object-position: top center !important; /* Salva sempre la testa se c'è un ritaglio! */
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    pointer-events: none;
    display: block;
}

/* Mobile optimizations */
@media (max-width: 768px) {
    .sof-gallery-slide {
        flex: 0 0 85%; /* Lascia intravedere la prossima foto */
    }
    .sof-gallery-slider {
        gap: 15px;
    }
    .sof-swipe-hint {
        font-size: 11px;
    }
}

.sof-swipe-hint {
    text-align: center;
    color: rgba(255,255,255,0.5);
    font-size: 12px;
    margin-top: 10px;
    font-weight: 300;
}

.sof-lightbox-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.9); z-index: 99999; display: none; align-items: center; justify-content: center; backdrop-filter: blur(5px); }
.sof-lightbox-overlay.visible { display: flex; }

/* FIX STATS SU MOBILE (Elementor Grid) */
@media (max-width: 768px) {
    .cv-stats {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
    }
    /* Se c'è un terzo elemento ed è l'ultimo, fagli occupare tutta la riga */
    .cv-stats > *:nth-child(3):last-child {
        grid-column: 1 / -1 !important;
    }
}

/* NASCONDI RUOLO PER CATEGORIA ATLETI */
.sof-person-card[data-cat="atleti"] .sof-person-role {
    display: none !important;
}
