/* * Divi Ultimate Carousel Builder CSS
 * Autore: Stefano Giambellini (www.stefanogiambellini.it) 
 * Versione: 2.20.0
 */

.dpfc-carousel-container { width: 100%; position: relative; box-sizing: border-box; }
.dpfc-carousel-container.dpfc-arrows-outside { padding: 0 calc(var(--dpfc-a-size) + 20px); }
.dpfc-carousel-container.dpfc-has-dots { padding-bottom: calc(var(--dpfc-d-size) + 30px); }

.dpfc-track-viewport { width: 100%; overflow: hidden; cursor: grab; user-select: none; position: relative; }
.dpfc-track-viewport:active { cursor: grabbing; }

.dpfc-track { display: flex; gap: var(--dpfc-gap, 20px); width: max-content; will-change: transform; transition: transform 0s linear; }

/* FRECCE & PUNTI */
.dpfc-arrow {
    position: absolute; top: 50%; transform: translateY(-50%); font-size: var(--dpfc-a-size); line-height: 1;
    color: var(--dpfc-a-col); cursor: pointer; z-index: 10; transition: opacity 0.2s, transform 0.2s; user-select: none;
}
.dpfc-arrow:hover { opacity: 0.6; transform: translateY(-50%) scale(1.1); }
.dpfc-prev { left: 20px; } .dpfc-next { right: 20px; }
.dpfc-arrows-outside .dpfc-prev { left: 0; } .dpfc-arrows-outside .dpfc-next { right: 0; }

.dpfc-dots { position: absolute; bottom: 0; left: 0; width: 100%; display: flex; justify-content: center; align-items: center; gap: 8px; z-index: 10; }
.dpfc-dot { font-size: var(--dpfc-d-size); line-height: 1; color: var(--dpfc-d-col); cursor: pointer; transition: color 0.3s, transform 0.3s; user-select: none; }
.dpfc-dot.dpfc-active { color: var(--dpfc-d-act); transform: scale(1.3); }

/* SLIDE PRINCIPALE: L'altezza si adatta in modo flessibile */
.dpfc-slide {
    flex: 0 0 var(--dpfc-slide-w, 300px); width: var(--dpfc-slide-w, 300px); 
    min-height: var(--dpfc-h, 400px); height: auto; 
    display: flex; overflow: hidden; box-sizing: border-box; position: relative;
    flex-direction: var(--dpfc-flex-dir, column); align-items: var(--dpfc-align, stretch); justify-content: var(--dpfc-justify, flex-start);
}

/* IMMAGINE */
.dpfc-slide-image { 
    position: var(--dpfc-img-pos, relative); z-index: 1; 
    width: var(--dpfc-img-w, 100%); height: var(--dpfc-img-h, auto); 
    flex: var(--dpfc-img-flex, 1 1 auto); overflow: hidden; 
}
.dpfc-slide-image img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: var(--dpfc-img-fit, cover); object-position: var(--dpfc-img-p, center); pointer-events: none; }

/* WRAPPER CONTENUTO (Viene equalizzato dal JS) */
.dpfc-slide-content { 
    position: relative; z-index: 2; width: var(--dpfc-txt-w, 100%); 
    padding: 20px; /* Fallback */
    box-sizing: border-box; display: flex; 
    overflow-y: hidden; flex: 0 1 auto; gap: 20px;
    background-color: var(--dpfc-content-bg, transparent); 
}

/* POSIZIONAMENTO BOTTONE VS TESTO */
.dpfc-btn-pos-bottom { flex-direction: column; }
.dpfc-btn-pos-top { flex-direction: column-reverse; }
.dpfc-btn-pos-right { flex-direction: row; align-items: center; }
.dpfc-btn-pos-left { flex-direction: row-reverse; align-items: center; }

/* TESTO E ALLINEAMENTI VERTICALI */
.dpfc-slide-text { flex: 0 1 auto; width: 100%; }
.dpfc-slide-text p, .dpfc-slide-text h1, .dpfc-slide-text h2, .dpfc-slide-text h3, .dpfc-slide-text h4, .dpfc-slide-text h5, .dpfc-slide-text h6 { margin-bottom: 0.5em; }
.dpfc-slide-text p:last-child, .dpfc-slide-text *:last-child { margin-bottom: 0; }

/* BOTTONE NATIVO */
.dpfc-button-wrapper { flex: 0 0 auto; width: 100%; }
.dpfc-button { text-decoration: none; display: inline-block; }
.dpfc-btn-show-off { display: none !important; }

.dpfc-transition-stepped { transition: transform var(--dpfc-duration-ms, 500ms) ease-in-out !important; }