/* ============================================================
   CANTELLO — MENU LATERALE UNIFICATO RESPONSIVE
   ============================================================ */

:root {
    --cantello-sidebar-width: clamp(225px, 17vw, 285px);

    --cantello-sidebar-padding-x: clamp(14px, 1.25vw, 22px);
    --cantello-sidebar-padding-y: clamp(22px, 2vw, 32px);

    --cantello-title-size: clamp(18px, 1.35vw, 23px);
    --cantello-subtitle-size: clamp(11px, .8vw, 13px);

    --cantello-section-size: clamp(9px, .65vw, 11px);
    --cantello-link-size: clamp(13px, .95vw, 16px);

    --cantello-link-padding-y: clamp(9px, .7vw, 12px);
    --cantello-link-padding-x: clamp(10px, .8vw, 14px);

    --cantello-link-margin: clamp(2px, .25vw, 4px);
}


/* ============================================================
   STRUTTURA GENERALE
   ============================================================ */

.cantello-layout {
    display: flex;
    align-items: stretch;

    min-height: 100vh;
    width: 100%;
}


/* ============================================================
   MENU LATERALE
   ============================================================ */

.cantello-sidebar {
    width: var(--cantello-sidebar-width);
    flex: 0 0 var(--cantello-sidebar-width);

    background: #111;
    color: #fff;

    padding:
        var(--cantello-sidebar-padding-y)
        var(--cantello-sidebar-padding-x);

    box-sizing: border-box;

    position: sticky;
    top: 0;

    height: 100vh;

    overflow-y: auto;
    overflow-x: hidden;

    z-index: 1000;
}


/* ============================================================
   TITOLO MENU
   ============================================================ */

.cantello-sidebar-title {
    font-size: var(--cantello-title-size);
    font-weight: 700;

    line-height: 1.15;
    letter-spacing: .4px;

    margin-bottom: 6px;
}


.cantello-sidebar-subtitle {
    font-size: var(--cantello-subtitle-size);

    line-height: 1.35;

    opacity: .65;

    margin-bottom:
        clamp(22px, 2vw, 30px);
}


/* ============================================================
   TITOLI SEZIONE
   ============================================================ */

.cantello-sidebar-section {
    font-size: var(--cantello-section-size);

    text-transform: uppercase;
    letter-spacing: .9px;

    opacity: .5;

    margin:
        clamp(18px, 1.6vw, 25px)
        8px
        clamp(6px, .6vw, 9px);
}


/* ============================================================
   VOCI MENU
   ============================================================ */

.cantello-sidebar a {
    display: block;

    color: #fff;
    text-decoration: none;

    font-size: var(--cantello-link-size);
    font-weight: 600;

    line-height: 1.2;

    padding:
        var(--cantello-link-padding-y)
        var(--cantello-link-padding-x);

    margin:
        var(--cantello-link-margin)
        0;

    border-radius: 7px;

    transition:
        background .15s ease,
        color .15s ease;
}


.cantello-sidebar a:hover {
    background: rgba(255,255,255,.12);
}


.cantello-sidebar a.active {
    background: rgba(255,255,255,.18);
    font-weight: 700;
}


/* ============================================================
   AREA PRINCIPALE
   ============================================================ */

.cantello-main {
    flex: 1 1 auto;

    min-width: 0;
    width: 0;
}


/*
   Evita che una pagina possa allargarsi oltre
   lo spazio effettivamente disponibile.
*/

.cantello-main > header,
.cantello-main > main,
.cantello-main > footer {
    max-width: 100%;
}


/* ============================================================
   SCHERMI PIÙ PICCOLI
   ============================================================ */

@media (max-width: 1100px) {

    :root {
        --cantello-sidebar-width: 225px;
    }

}


/* ============================================================
   TABLET / MOBILE
   ============================================================ */

@media (max-width: 800px) {

    .cantello-layout {
        display: block;
    }

    .cantello-sidebar {
        position: relative;

        width: 100%;
        height: auto;

        min-height: 0;

        padding:
            18px
            16px;
    }

    .cantello-main {
        width: 100%;
    }

    .cantello-sidebar a {
        font-size: 15px;
    }
}
