/**
 * Image Gallery Toggle - Styles
 * Stili per i pulsanti e le modalità di visualizzazione
 */

/* ==========================================================================
   Toggle Buttons - Design Minimal
   ========================================================================== */

.image-gallery-toggle-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px; /* Spazio tra i pulsanti */
    margin-bottom: 35px;
    padding: 15px 0;
}

.igt-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: 2px solid #262626;
    background-color: #262626;
    color: #ffffff;
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
    position: relative;
    min-width: 150px;
    border-radius: 0; /* Rimuovi arrotondamento */
    box-shadow: none;
}

/* Primo pulsante - senza arrotondamento */
.igt-btn.igt-thumbs {
    border-right: 1px solid #262626; /* Bordo condiviso sottile */
}

/* Secondo pulsante - senza arrotondamento */
.igt-btn.igt-full-images {
    border-left: 1px solid #262626; /* Bordo condiviso sottile */
}

/* Hover: cambio colore del bordo (solo su pulsanti NON attivi) */
.igt-btn:hover:not(.active) {
    border-color: #fcc203;
    background-color: #262626;
    color: #ffffff;
}

/* Stato attivo: sfondo bianco, testo nero, bordo giallo */
.igt-btn.active {
    background-color: #ffffff;
    color: #262626;
    border-color: #fcc203;
    cursor: default; /* Mostra che è già selezionato */
}

/* Nessun effetto hover o focus quando attivo */
.igt-btn.active:hover,
.igt-btn.active:focus {
    background-color: #ffffff;
    color: #262626;
    border-color: #fcc203;
    outline: none; /* Rimuovi outline quando attivo */
}

/* Focus accessibilità (solo su pulsanti NON attivi) */
.igt-btn:focus:not(.active) {
    outline: 2px solid #fcc203;
    outline-offset: 2px;
}

/* Nascondi icone */
.igt-icon {
    display: none;
}

.igt-text {
    line-height: 1;
    font-weight: 700;
}

/* Responsive buttons */
@media (max-width: 768px) {
    .image-gallery-toggle-buttons {
        gap: 10px;
        padding: 12px 0;
        margin-bottom: 30px;
    }
    
    .igt-btn {
        padding: 12px 22px;
        font-size: 12px;
        min-width: 130px;
        letter-spacing: 0.8px;
    }
    
    .igt-icon {
        font-size: 18px;
    }
}

@media (max-width: 480px) {
    .image-gallery-toggle-buttons {
        gap: 8px;
        padding: 10px 0;
        margin-bottom: 25px;
    }
    
    .igt-btn {
        padding: 11px 18px;
        font-size: 11px;
        min-width: 115px;
        letter-spacing: 0.6px;
    }
    
    .igt-icon {
        font-size: 16px;
    }
}

/* ==========================================================================
   Gallery Container
   ========================================================================== */

.igt-gallery-wrapper {
    width: 100%;
    margin: 0 auto;
}

.image-gallery {
    text-align: center;
    transition: opacity 0.3s ease;
}

.image-gallery img {
    display: inline-block;
    transition: all 0.3s ease;
    border-radius: 4px;
}

/* ==========================================================================
   Thumbnails Mode - Alta specificità per sovrascrivere stili tema
   ========================================================================== */

.image-gallery.igt-mode-thumbs {
    display: flex !important;
    flex-direction: row !important; /* Override column del tema */
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 12px !important;
    text-align: center !important;
}

/* Wrapper per le immagini in modalità thumbs (se presenti) */
/* Desktop: 5-6 colonne (default) */
.image-gallery.igt-mode-thumbs a,
.image-gallery.igt-mode-thumbs a.lightbox {
    width: calc((100% - 60px) / 5) !important;
    max-width: none !important;
    height: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer !important; /* Importante per lightbox */
    display: block !important;
    position: relative !important;
}

/* Immagini dirette (senza wrapper <a>) in modalità thumbs */
/* Desktop: 5-6 colonne (default) */
.image-gallery.igt-mode-thumbs > img {
    width: calc((100% - 60px) / 5) !important;
    max-width: none !important;
    height: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Stili comuni per tutte le immagini in modalità thumbs */
.image-gallery.igt-mode-thumbs img {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: cover !important;
    cursor: pointer !important; /* Importante per lightbox */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
    border-radius: 8px !important;
    display: block !important;
    user-select: none !important; /* Previeni selezione durante doppio tap */
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    pointer-events: auto !important; /* Assicura che sia cliccabile */
    touch-action: manipulation !important; /* Ottimizza touch per mobile */
}

/* Hover rimosso - nessun effetto sulle immagini */

/* ==========================================================================
   Full Images Mode - Compatibile con gli stili esistenti del tema
   ========================================================================== */

.image-gallery.igt-mode-full {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    text-align: center !important;
    gap: 8px !important; /* Usa lo stesso gap del tema */
}

.image-gallery.igt-mode-full a,
.image-gallery.igt-mode-full a.lightbox {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    margin: 0 !important;
    flex: none !important;
}

.image-gallery.igt-mode-full img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    cursor: pointer !important; /* Importante per lightbox */
    user-select: none !important; /* Previeni selezione durante doppio tap */
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    pointer-events: auto !important; /* Assicura che sia cliccabile */
    touch-action: manipulation !important; /* Ottimizza touch per mobile */
}

/* Immagini dirette (senza wrapper) in full mode */
.image-gallery.igt-mode-full > img {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

/* Responsive per full mode - allineato con tema esistente */
@media (min-width: 600px) {
    .image-gallery.igt-mode-full a,
    .image-gallery.igt-mode-full a.lightbox {
        width: 95% !important;
        max-width: 95% !important;
    }
    .image-gallery.igt-mode-full > img {
        width: 95% !important;
        max-width: 95% !important;
    }
}

@media (min-width: 768px) {
    .image-gallery.igt-mode-full a,
    .image-gallery.igt-mode-full a.lightbox {
        width: 90% !important;
        max-width: 90% !important;
    }
    .image-gallery.igt-mode-full > img {
        width: 90% !important;
        max-width: 90% !important;
    }
}

@media (min-width: 1024px) {
    .image-gallery.igt-mode-full a,
    .image-gallery.igt-mode-full a.lightbox {
        width: 85% !important;
        max-width: 85% !important;
    }
    .image-gallery.igt-mode-full > img {
        width: 85% !important;
        max-width: 85% !important;
    }
}

@media (min-width: 1440px) {
    .image-gallery.igt-mode-full a,
    .image-gallery.igt-mode-full a.lightbox {
        width: 80% !important;
        max-width: 900px !important;
    }
    .image-gallery.igt-mode-full > img {
        width: 80% !important;
        max-width: 900px !important;
    }
}

/* ==========================================================================
   Responsive Design - Thumbnails Mode
   ========================================================================== */

/* Tablet: 3-4 colonne */
@media (max-width: 1024px) and (min-width: 769px) {
    .image-gallery.igt-mode-thumbs a,
    .image-gallery.igt-mode-thumbs a.lightbox {
        width: calc((100% - 30px) / 4) !important;
        max-width: none !important;
        flex: 0 0 auto !important;
    }
    
    .image-gallery.igt-mode-thumbs > img {
        width: calc((100% - 30px) / 4) !important;
        max-width: none !important;
        flex: 0 0 auto !important;
    }
    
    .image-gallery.igt-mode-thumbs {
        gap: 10px !important;
    }
}

/* Tablet piccolo: 3 colonne */
@media (max-width: 768px) and (min-width: 481px) {
    .image-gallery.igt-mode-thumbs a,
    .image-gallery.igt-mode-thumbs a.lightbox {
        width: calc((100% - 16px) / 3) !important;
        max-width: none !important;
        flex: 0 0 auto !important;
    }
    
    .image-gallery.igt-mode-thumbs > img {
        width: calc((100% - 16px) / 3) !important;
        max-width: none !important;
        flex: 0 0 auto !important;
    }
    
    .image-gallery.igt-mode-thumbs {
        gap: 8px !important;
    }
}

/* Mobile: 3 COLONNE - Thumbnails molto piccole per garantire visibilità */
@media (max-width: 480px) {
    .image-gallery.igt-mode-thumbs a,
    .image-gallery.igt-mode-thumbs a.lightbox {
        width: calc((100% - 8px) / 3) !important;
        max-width: calc((100% - 8px) / 3) !important;
        flex: 0 0 calc((100% - 8px) / 3) !important;
    }
    
    .image-gallery.igt-mode-thumbs > img {
        width: calc((100% - 8px) / 3) !important;
        max-width: calc((100% - 8px) / 3) !important;
        flex: 0 0 calc((100% - 8px) / 3) !important;
    }
    
    .image-gallery.igt-mode-thumbs {
        gap: 4px !important;
    }
    
    .image-gallery-toggle-buttons {
        margin-bottom: 20px !important;
    }
    
    /* Riduzione padding immagini per mobile */
    .image-gallery.igt-mode-thumbs img {
        border-radius: 4px !important;
    }
}

/* ==========================================================================
   Loading States
   ========================================================================== */

.image-gallery img {
    opacity: 1 !important; /* Assicura che le immagini siano sempre visibili */
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Lazy loading placeholder - solo per immagini in caricamento, non nascoste */
.image-gallery img:not(.igt-loaded) {
    background-color: #f0f0f0;
    min-height: 200px;
    /* IMPORTANTE: Non impostare opacity o visibility qui! */
    /* Le immagini devono essere sempre visibili */
}

/* Assicura che tutte le immagini siano visibili al caricamento iniziale */
.image-gallery img.igt-loaded {
    opacity: 1 !important;
    visibility: visible !important;
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    .image-gallery-toggle-buttons {
        display: none;
    }
    
    .image-gallery {
        display: block !important;
    }
    
    .image-gallery img {
        width: 100% !important;
        max-width: 100% !important;
        page-break-inside: avoid;
    }
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

/* High contrast mode */
@media (prefers-contrast: high) {
    .igt-btn {
        border: 2px solid currentColor;
    }
    
    .igt-btn.active {
        border-color: #5fb560;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .igt-btn,
    .image-gallery,
    .image-gallery img {
        transition: none;
        animation: none;
    }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
    .igt-btn {
        background-color: #3a4a5a;
    }
    
    .igt-btn:hover {
        background-color: #2a3a4a;
    }
    
    .image-gallery img {
        box-shadow: 0 2px 8px rgba(255, 255, 255, 0.1);
    }
}

