/*
Theme Name: WALIT_GROUP
Theme URI: https://walit.it
Author: Walit Group
Author URI: https://walit.it
Description: Tema custom per il gruppo Walit, sviluppato con ACF Pro e Tailwind.
Version: 1.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: walit-group
Tags: custom-theme, two-columns, right-sidebar, custom-colors, editor-style
*/

/* ==========================================================================
   BASE STYLES & RESETS
   ========================================================================== */

body {
    background-color: var(--color-bg);
    color: #ffffff;
    font-family: var(--font-family);
    margin: 0;
    overflow-x: hidden;
}

a { 
    color: inherit; 
    text-decoration: none; 
}

a:hover, a:focus, a:active, a:visited { 
    color: inherit; 
}

/* Fix per i pulsanti del tema _s che aggiungono bordi indesiderati */
header button {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* ==========================================================================
   TORCH & EFFECTS
   ========================================================================== */

/* Torch Gradient Layer */
#mouse-gradient {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
    background: radial-gradient(
        var(--torch-size) circle at var(--mouse-x, 50%) var(--mouse-y, 50%), 
        rgba(var(--torch-rgb), var(--torch-alpha)), 
        transparent 40%
    );
    will-change: background;
}

/* Dither / Noise Overlay */
#mouse-gradient::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: var(--dither-opacity); /* Controllato da PHP */
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='1'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 100px 100px;
    
    /* Maschera per limitare il rumore solo alla luce della torcia */
    -webkit-mask-image: radial-gradient(var(--torch-size) circle at var(--mouse-x, 50%) var(--mouse-y, 50%), black, transparent 40%);
    mask-image: radial-gradient(var(--torch-size) circle at var(--mouse-x, 50%) var(--mouse-y, 50%), black, transparent 40%);
}

/* Background Pattern */
#bg-pattern {
    position: fixed;
    inset: 0;
    opacity: 0.05;
    pointer-events: none;
    z-index: 0;
    background-repeat: repeat;
}

/* ==========================================================================
   SIDEBAR & NAVIGATION
   ========================================================================== */

#main-sidebar {
    transition: width 0.3s ease-in-out, background-color 0.3s;
}

/* Gestione visibilità testo menu su Mobile */
@media (max-width: 959px) {
    #main-sidebar.w-16 .menu-text, 
    #main-sidebar.w-16 .menu-arrow {
        display: none !important;
        opacity: 0;
    }
    
    #main-sidebar.w-64 .menu-text, 
    #main-sidebar.w-64 .menu-arrow {
        display: block !important;
        opacity: 1;
    }
    
    #mobile-overlay.active {
        display: block;
    }
}

.scrollbar-hide::-webkit-scrollbar {
    display: none;
}
.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Stili voci di menu (Semplici, senza glow) */
.menu-item-link:hover {
    background-color: var(--color-menu-hover-bg);
}

.menu-item-link.active {
    background-color: var(--color-primary);
    color: var(--color-menu-active-text) !important;
}

/* Stili Icone Globali */
.icon-style {
    width: 1.25rem; /* 20px */
    height: 1.25rem; /* 20px */
    opacity: var(--icon-opacity);
    transition: opacity 0.3s;
}

.group:hover .icon-style,
button:hover .icon-style,
a:hover .icon-style,
.active .icon-style {
    opacity: 1;
}

/* .wpcf7-form select.wpcf7-select{
  background-color: var(--color-bg) !important;
} */

/* ==========================================================================
   PERFORMANCE & CLS (Cumulative Layout Shift)
   ========================================================================== */

/* Le immagini lazy mantengono il rapporto del contenitore: nessun salto layout */
.editorial-module-wrapper img,
.editorial-module-wrapper video {
    display: block;
}

/* Riserva spazio per le immagini delle card finché non caricano (riduce CLS) */
.grid article img {
    background-color: rgba(255, 255, 255, 0.04);
}

/* Stabilizza il rendering dei font: evita reflow quando Archivo carica */
html {
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

/* Rispetta le preferenze di movimento ridotto dell'utente */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    #mouse-gradient { display: none !important; }
}