/* =====================================================================
   TEMA CLIENTE — Versione UNIFICATA (3 modalita' in un solo file)
   =====================================================================
   Una sola variabile decide come si costruisce la palette:

       --theme-mode: monochrome | auto | manual

   - monochrome : palette monocromatica da UN colore (variano solo le
                  luminosita'). E' il comportamento del tema Default.
   - auto       : da UN colore; secondario e terziario calcolati ruotando
                  la tinta sulla ruota dei colori (vedi --harmony-angle).
   - manual     : imposti TU 2 o 3 colori; secondario e terziario vengono
                  usati PURI, senza modifiche di luminosita'/saturazione.

   In TUTTE le modalita' color-a/b/c (chrome principale: barra, hover,
   base) sono sfumature del colore primario: servono tre toni distinti,
   quindi qui il primario viene comunque declinato in scuro/chiaro/base.

   ---------------------------------------------------------------------
   COME FUNZIONA / COMPATIBILITA':
   - hsl(from ...)  -> Chrome/Edge 119+, Safari 16.4+, Firefox 128+
   - @container style() (lo switch di modalita') -> Chrome 111+,
     Safari 18+, Firefox 128+.
   Se un browser NON supporta le style query, lo switch viene ignorato e
   il tema resta in monochrome (degradazione sicura): la palette funziona
   comunque. Per browser molto vecchi, sostituire gli hsl(...) con hex.
   ===================================================================== */
:root {
    /* === 1) MODALITA' ============================================= */
    -theme-mode: manual; /* monochrome | auto | manual */

    /* === 2) COLORE/I DEL CLIENTE ================================== */
    /* Primario: usato in TUTTE le modalita' per generare color-a/b/c. */
    --brand-color: #aba19b;
    /* I due seguenti servono SOLO in modalita' "manual" (usati puri):   */
    --brand-secondary: #c48200; /* -> color-d */
    --brand-tertiary: #9fb9cf;  /* -> color-e  (per usare solo 2 colori,
                                   impostarlo uguale a --brand-secondary) */

    /* === 3) SOLO "auto": schema armonico ========================== */
    /* Angolo di rotazione in GRADI e SENZA unita' (180, non 180deg):
       180 = complementare      (opposto, contrasto massimo)
       150 = split-complementare (opposto piu' morbido)
       120 = triade             (tre tinte equidistanti)
        90 = tetrade/quadrata    (accenti ampi ma bilanciati)
        30 = analogo             (tinte vicine, effetto soft) */
    --harmony-angle: 180;

    /* === Scala di luminosita' (AVANZATO) ==========================
       I "gradini" usati per le sfumature, dal piu' scuro al piu' chiaro. */
    --lum-a: 26%; /* scuro                 */
    --lum-d: 33%; /* medio-scuro (spento)  */
    --lum-e: 41%; /* medio                 */
    --lum-c: 52%; /* base                  */
    --lum-b: 67%; /* chiaro                */

    /* =================================================================
       PALETTE GENERATA — di norma NON si tocca.
       Accanto a ogni colore e' indicato DOVE viene usato a video.
       ================================================================= */

    /* BRAND SCURO — barra di navigazione superiore, voce di menu attiva,
       intestazioni degli slot, icona profilo, pulsanti .btn-a, titoli e
       link (.link-a / .bg-a), trapezi decorativi, accento dello spinner. */
    --color-a: hsl(from var(--brand-color) h s var(--lum-a));

    /* CHIARO / HOVER — sfondo al passaggio del mouse sulle card della home,
       elemento selezionato (.clickable.selected), pulsanti .btn-b. */
    --color-b: hsl(from var(--brand-color) h s var(--lum-b));

    /* PRIMARIO INTERATTIVO — step attivi del wizard, barra di avanzamento
       (#progress), pulsanti .btn-c. E' il colore "base" della palette. */
    --color-c: hsl(from var(--brand-color) h s var(--lum-c));

    /* SECONDARIO — bordo dei campi in focus (login), pulsanti .btn-d.
       VALORE DI DEFAULT = monochrome (tinta del primario, desaturata).
       Le modalita' auto/manual lo ridefiniscono piu' sotto. */
    --color-d: hsl(from var(--brand-color) h calc(s / 2) var(--lum-d));

    /* ACCENTO TESTO — testo delle card principali in home (.main-col-text),
       pulsanti .btn-e.
       VALORE DI DEFAULT = monochrome. Ridefinito da auto/manual piu' sotto. */
    --color-e: hsl(from var(--brand-color) h s var(--lum-e));

    /* BARRA SUPERIORE — usata da alcuni temi cliente per la top-bar.
       Per default uguale a color-a. (Nel Default la .acs-top-bar segue
       comunque --primary-color, vedi sotto.) */
    --color-acs-top-bar: var(--color-a);

    /* ALIAS PRIMARIO — usato da .acs-top-bar (sfondo top-bar), dalle icone
       della home (.main-row-icon) e dagli input del login. */
    --primary-color: var(--color-c);

    /* GRIGIO NEUTRO — step del wizard non completati e sfondo del progress. */
    --prm-gray: #b1b1b1;

    /* (LEGACY) definito ma non piu' referenziato nel CSS attuale. */
    --prm-color: #0381ff;
}

/* === MODALITA' "auto": secondario/terziario ruotati sulla ruota colori ===
   d = primario + angolo (desaturato) ; e = primario - angolo. */
@container style(--theme-mode: auto) {
    body {
        --color-d: hsl(from var(--brand-color) calc(h + var(--harmony-angle)) calc(s / 2) var(--lum-d));
        --color-e: hsl(from var(--brand-color) calc(h - var(--harmony-angle)) s var(--lum-e));
    }
}

/* === MODALITA' "manual": secondario/terziario USATI PURI ===
   Esattamente i colori scelti, senza modifiche di luminosita'/saturazione.
   ATTENZIONE: il testo su questi colori e' bianco (.btn-d/.btn-e) e color-e
   e' usato anche come colore di testo: con tinte molto chiare la leggibilita'
   puo' calare. Scegliere colori abbastanza scuri o verificarne il contrasto. */
@container style(--theme-mode: manual) {
    body {
        --color-d: var(--brand-secondary);
        --color-e: var(--brand-tertiary);
    }
}

/* =====================================================================
   ALLINEAMENTO BOOTSTRAP — le classi semantiche "primary" di Bootstrap
   (.btn-primary, .bg-primary, .text-primary) di default NON seguono il
   tema: restano blu (--bs-primary: #0d6efd). Qui le agganciamo a color-c,
   rendendole equivalenti a .btn-c / .bg-a usate altrove nel portale.

   NB tecnica: bootstrap.css viene caricato DOPO questo file (vedi
   _Layout.cshtml), quindi per vincere serve specificita' piu' alta
   (prefisso "body ") + !important. Bootstrap 5.1 usa colori letterali su
   .btn-primary, percio' sovrascriviamo le proprieta', non le variabili.

   Per applicarlo a un cliente esistente, copiare questo blocco nel suo
   Site.css. Per tornare al comportamento Bootstrap, rimuoverlo.
   ===================================================================== */
body .btn-primary {
    background-color: var(--color-c) !important;
    border-color: var(--color-c) !important;
    color: #fff !important;
}

body .bg-primary {
    background-color: var(--color-c) !important;
}

body .text-primary {
    color: var(--color-c) !important;
}

/* =====================================================================
   PRESENZA DI SECONDARIO/TERZIARIO — color-d e color-e nel tema originale
   sono quasi inutilizzati, percio' la UI risulta tutta "sfumature di brand".
   Qui diamo loro superficie SENZA toccare il markup:
   - .btn-secondary (bottoni "Indietro"/"Chiudi", finora grigi Bootstrap)
     -> color-d : azione secondaria = colore secondario.
   - .done (step gia' completati del wizard, vedi anche piu' sotto) -> color-e.
   In modalita' monochrome restano sfumature del brand; in auto/manual
   portano un vero contrasto cromatico.
   (Stessa tecnica "body " + !important per vincere su bootstrap.css.) */
body .btn-secondary {
    background-color: var(--color-d) !important;
    border-color: var(--color-d) !important;
    color: #fff !important;
}

/*********************************************************************************************/

.btn-xs {
    padding: 0.15rem 0.3rem !important;
    font-size: 0.750rem !important;
    border-radius: 0.2rem !important;
}

.toggler-rotate {
    transform: rotate(0deg);
    transition: 0.3s;
}

.toggler-rotate-reset {
    transform: rotate(-90deg);
    transition: 0.3s;
}

.nav-item > .btn.active {
    background-color: var(--color-a);
    color: #fff;
}

.nav-item > .btn {
    background-color: #fff;
    color: var(--color-a);
}

.nav-item > .btn:hover {
    color: var(--color-a);
}

.nav-item > .btn.active:hover {
    color: #fff;
}

.card-pren-ms {
    margin-left: 2rem;
}

.steps {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    position: relative;
}

.step-button {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: none;
    background-color: var(--prm-gray);
    transition: .4s;
}

.step-button.expanded {
    width: 60px;
    height: 60px;
    background-color: var(--color-c);
    color: #fff;
}

.step-button[aria-expanded="true"] {
    width: 60px;
    height: 60px;
    background-color: var(--color-c);
    color: #fff;
}

.done {
    background-color: var(--color-e); /* step COMPLETATO: terziario (vs color-c del corrente) */
    color: #fff;
}

.step-item {
    z-index: 10;
    text-align: center;
}

#progress {
    -webkit-appearance: none;
    position: absolute;
    width: 95%;
    z-index: 5;
    height: 10px;
    margin-left: 18px;
    margin-bottom: 18px;
}

/* to customize progress bar */
#progress::-webkit-progress-value {
    background-color: var(--color-c);
    transition: .5s ease;
}

#progress::-webkit-progress-bar {
    background-color: var(--prm-gray);
}

.btn-a {
    background-color: var(--color-a) !important;
    color: #fff !important;
    border-color: var(--color-a) !important;
}

.btn-b {
    background-color: var(--color-b) !important;
    color: #fff !important;
    border-color: var(--color-b) !important;
}

.btn-c {
    background-color: var(--color-c) !important;
    color: #fff !important;
    border-color: var(--color-c) !important;
}

.btn-d {
    background-color: var(--color-d) !important;
    color: #fff !important;
    border-color: var(--color-d) !important;
}

.btn-e {
    background-color: var(--color-e) !important;
    color: #fff !important;
    border-color: var(--color-e) !important;
}

.clickable.selected {
    background-color: var(--color-b);
    color: #fff;
    user-select: none;
    pointer-events: none;
}

.loader-wrapper .card-body {
    height: 100%;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.5);
    opacity: 0.5;
    position: relative;
}

.loader-wrapper .loader {
    display: block !important;
}

.loader {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -40px;
    margin-left: -40px;
    border: 8px solid #f3f3f3;
    border-top: 8px solid var(--color-a);
    border-radius: 50%;
    width: 80px;
    height: 80px;
    animation: spin 1s linear infinite;
    z-index: 10000;
}

.modalloading {
    display: none;
    position: fixed;
    z-index: 30000;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: rgba( 255, 255, 255, .9 );
    text-align: center;
}

.loading .modalloading {
    overflow: hidden;
}

.loading .modalloading {
    display: block;
}

.imageloading {
    position: fixed;
    top: 50%;
    left: 50%;
    margin-top: -45px;
    margin-left: -45px;
    border: 8px solid #f3f3f3; /* Light grey */
    border-top: 8px solid var(--color-a); /* Blue */
    border-radius: 50%;
    width: 90px;
    height: 90px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/*********************************************************************************************/

body {
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 300 !important;
}

b600 {
    font-weight: 600 !important;
}

b500 {
    font-weight: 500 !important;
}

.slot-header {
    color: white;
    background-color: var(--color-a);
    font-size: 0.8rem;
    border-radius: 4px;
}

.main-container-h {
    min-height: 60vh;
}

@media all and (max-width: 1000px) {
    .main-row-overflow {
        overflow-x: hidden;
        overflow-y: visible;
    }
}

@media screen and (max-width: 992px) {
    .info-nav-row {
        display: none !important;
    }

    .inner-nav-row {
        display: none;
    }
}

.profile-icon {
    color: white;
    background-color: var(--color-a);
    font-size: 1.5em;
}

.color-a {
    color: var(--color-a) !important;
}

.color-b {
    color: var(--color-b) !important;
}

.color-c {
    color: var(--color-c) !important;
}

.color-d {
    color: var(--color-d) !important;
}

.color-e {
    color: var(--color-e) !important;
}

.clickable {
    pointer-events: fill;
    cursor: pointer;
    transition: box-shadow .3s;
}

.clickable:hover {
    box-shadow: 1px 1px 3px;
}

.main-bg {
    background-image: url(../../img/main-bg.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position-y: 73%;
    background-position-x: center;
    height: 420px;
}

.main-text-mt {
    margin-top: 140px;
}

.acs-top-bar {
    background-color: var(--primary-color);
}

.nav-shadow {
    box-shadow: 0px 5px 10px -5px;
}

.inner-nav-row {
    display: flex;
}

.bg-dark-palette {
    background: linear-gradient(90deg, var(--color-a) 50%, white 50%);
}

.info-nav-row {
    background-color: transparent;
    display: block;
}

.main-container-pb {
    padding-bottom: 70px;
}

.main-padding {
    padding-top: 70px;
}

.f-200 {
    font-weight: 200 !important;
}

.info-nav-text {
    font-size: 0.9rem;
}

.trapezoid {
    border-bottom: 100px solid var(--color-a);
    border-right: 25px solid transparent;
    height: 0;
    width: fit-content;
}

.main-row-margin {
    margin-top: -50px !important;
}

.main-col .main-row-icon {
    opacity: 0.4;
    color: var(--primary-color);
    font-size: 10vw !important;
}

.main-col {
    box-shadow: 1px 1px 3px;
    background-color: white;
    transition: transform .5s, background-color .5s;
    pointer-events: fill;
    cursor: pointer;
}

.main-col:hover {
    transform: scale(1.1);
    background-color: var(--color-b) !important;
}

.main-col:hover .main-row-icon {
    color: white;
}

.footer-margin {
    margin-top: 100px;
}

.centered {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: fit-content;
}

.main-col .main-col-text {
    color: var(--color-e);
    pointer-events: none;
    font-weight: bold;
    font-size: 1.2rem;
}

.main-col:hover .main-col-text {
    color: white;
    font-weight: bold;
}

.row-card {
    -webkit-box-shadow: -5px 5px 15px -5px #000000;
    -moz-box-shadow: -5px 5px 15px -5px #000000;
    -o-box-shadow: -5px 5px 15px -5px #000000;
    /*box-shadow: 0px 2px 8px 1px #000000;*/
    box-shadow: -5px 5px 10px -7px #000000;
    border-radius: 5px;
}

.trapezoid-rev {
    border-bottom: 50px solid var(--color-a);
    border-left: 15px solid transparent;
    height: 50px;
    margin: 0;
    width: fit-content;
}

.row-card .trapezoid-rev a {
    color: #ffffff;
    font-size: max(1vw, 14px);
}

.row-card .trapezoid-rev h6 {
    color: #ffffff;
    font-size: max(0.7vw, 11px);
}

.row-card .bg-a a {
    color: #ffffff;
    font-size: max(1vw, 14px);
}

.row-card .bg-a h6 {
    color: #ffffff;
    font-size: max(0.7vw, 11px);
}

.link-h6 {
    color: var(--color-a);
    font-size: max(0.7vw, 11px);
}

.link-a {
    color: var(--color-a);
    font-size: max(1vw, 14px);
}

.bg-a {
    background-color: var(--color-a);
    color: #fff;
}

.brt-5px {
    border-radius: 5px 5px 0px 0px;
}

.esami-list {
    list-style-type: circle;
}

/**************************************************************************************************************************************************/
