/**
 * Bibbia Tooltips
 *
 * Stili frontend per i tooltip biblici.
 * Compatibile con Bootstrap 5, Joomla 5 e Joomla 6+.
 */

/* ==========================================================================
   Riferimento biblico nel contenuto dell'articolo
   ========================================================================== */

.bibbia-tooltip {
    color: #2c3e50;
    border-bottom: 2px dotted var(--bibbia-line, #1C99BA);
    cursor: help;
    font-weight: 500;
    text-decoration: none;
    outline: none;
}

/*
 * Stato hover/focus del riferimento.
 * Il focus è utile se in futuro aggiungiamo tabindex="0" lato PHP.
 */
.bibbia-tooltip:hover,
.bibbia-tooltip:focus {
    color: #1f2d3a;
    border-bottom-style: solid;
}

/*
 * Focus visibile ma non invasivo.
 */
.bibbia-tooltip:focus-visible {
    outline: 2px solid var(--bibbia-line, #1C99BA);
    outline-offset: 3px;
    border-radius: 3px;
}

/* ==========================================================================
   Popup Bootstrap
   ========================================================================== */

/*
 * Classe applicata al template Bootstrap creato via JS.
 *
 * pointer-events: auto è indispensabile:
 * permette di entrare con il mouse nel popup e usare la scrollbar.
 */
.tooltip.bibbia-popup-style {
    opacity: 1 !important;
    pointer-events: auto !important;

    /*
     * Piccolo ponte tra riferimento e popup.
     * Riduce il rischio che il mouse "cada nel vuoto"
     * durante il passaggio dal testo al tooltip.
     */
    padding-top: 5px;
    margin-top: -5px;

    /*
     * Su dispositivi touch consente al popup di ricevere
     * correttamente le interazioni verticali.
     */
    touch-action: pan-y;
}

/*
 * Contenitore interno Bootstrap.
 */
.tooltip.bibbia-popup-style .tooltip-inner {
    background-color: var(--bibbia-bg, #FFFFFF) !important;
    color: var(--bibbia-text, #000000) !important;
    font-family: var(--bibbia-font, "Rubik", sans-serif) !important;
    font-size: var(--bibbia-size, 14px) !important;

    width: max-content;
    max-width: min(420px, calc(100vw - 32px));

    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35);

    text-align: left;
    pointer-events: auto !important;
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;

    /*
     * Aiuta i browser mobili a non intercettare lo scroll
     * prima che arrivi al corpo interno del tooltip.
     */
    touch-action: pan-y;
}

/*
 * Freccia del tooltip.
 * Bootstrap usa variabili CSS per il colore della freccia.
 */
.tooltip.bibbia-popup-style {
    --bs-tooltip-bg: var(--bibbia-bg, #FFFFFF);
    --bs-tooltip-color: var(--bibbia-text, #000000);
}

/* ==========================================================================
   Header del riferimento e linea separatrice
   ========================================================================== */

.bibbia-header {
    margin-bottom: 5px;
    font-weight: 700;
    font-size: var(--bibbia-size, 14px);
    line-height: 1.4;
}

.bibbia-sep {
    border: 0;
    border-top: 1px solid var(--bibbia-line, #1C99BA);
    margin: 8px 0;
    opacity: 1;
}

/* ==========================================================================
   Corpo testuale con scrollbar
   ========================================================================== */

.bibbia-body {
    max-height: var(--bibbia-max-height, 180px);
    overflow-y: auto !important;
    overflow-x: hidden;

    /*
     * Fondamentale su smartphone/tablet:
     * consente lo scroll verticale interno del contenuto tooltip.
     */
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    overscroll-behavior: contain;

    /*
     * Spazio extra per agevolare la mira sulla scrollbar.
     */
    padding-right: 18px;

    line-height: 1.6;
    pointer-events: auto !important;

    scrollbar-width: thin;
    scrollbar-color: var(--bibbia-line, #1C99BA) transparent;
}

/* Scrollbar per Chrome, Edge, Safari */
.bibbia-body::-webkit-scrollbar {
    width: 12px;
}

.bibbia-body::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 10px;
}

.bibbia-body::-webkit-scrollbar-thumb {
    background: var(--bibbia-line, #1C99BA);
    border-radius: 10px;
    border: 3px solid var(--bibbia-bg, #FFFFFF);
}

.bibbia-body::-webkit-scrollbar-thumb:hover {
    background: var(--bibbia-line, #1C99BA);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 575.98px) {
    .tooltip.bibbia-popup-style {
        /*
         * Rafforza la gestione touch sul contenitore Bootstrap
         * nei browser mobili.
         */
        touch-action: pan-y;
    }

    .tooltip.bibbia-popup-style .tooltip-inner {
        max-width: calc(100vw - 24px);
        padding: 13px;

        /*
         * Mantiene lo scroll verticale disponibile anche quando
         * il dito parte dal contenitore interno.
         */
        touch-action: pan-y;
    }

    .bibbia-body {
        /*
         * Su mobile limitiamo l'altezza per evitare popup troppo invasivi.
         * Usiamo un valore diretto in vh per evitare incompatibilità
         * con min() + variabili CSS su alcuni browser mobili.
         */
        max-height: 55vh;
        overflow-y: auto !important;
        overflow-x: hidden;

        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
        overscroll-behavior: contain;

        padding-right: 14px;
    }
}