/* vim: set foldmethod=expr: */

/**
 *
 * colores tema base (light)
 *
 */

:root {
    --app-theme-fg:                             #1b1b1b;
    --app-theme-bg:                             #fafafa;
    --app-theme-light:                          #fafafa;

    /* blues: azul garantizado para enlaces */
    /* https://coolors.co/0e2859-33589d-6e96e1-abc8ff-dbe8ff */

    --app-theme-blue-extradark:                 #0e2859;
    --app-theme-blue-dark:                      #33589d;
    --app-theme-blue-middle:                    #6e96e1;
    --app-theme-blue-light:                     #abc8ff;
    --app-theme-blue-extralight:                #dbe8ff;

    --app-theme-blue-contrast-extradark:        #fafafa;
    --app-theme-blue-contrast-dark:             #fafafa;
    --app-theme-blue-contrast-middle:           #fafafa;
    --app-theme-blue-contrast-light:            #1b1b1b;
    --app-theme-blue-contrast-extralight:       #1b1b1b;

    /* neutral: delimita elementos primarios/secundarios */
    /* https://coolors.co/212529-495057-adb5bd-dee2e6-e9ecef */

    --app-theme-neutral-extradark:              #212529;
    --app-theme-neutral-dark:                   #495057;
    --app-theme-neutral-middle:                 #adb5bd;
    --app-theme-neutral-light:                  #dee2e6;
    --app-theme-neutral-extralight:             #e9ecef;

    --app-theme-neutral-contrast-extradark:     #fafafa;
    --app-theme-neutral-contrast-dark:          #fafafa;
    --app-theme-neutral-contrast-middle:        #1b1b1b;
    --app-theme-neutral-contrast-light:         #1b1b1b;
    --app-theme-neutral-contrast-extralight:    #1b1b1b;

    /* accent: énfasis */

    --app-theme-accent-extradark:               #0e2859;
    --app-theme-accent-dark:                    #33589d;
    --app-theme-accent-middle:                  #6e96e1;
    --app-theme-accent-light:                   #abc8ff;
    --app-theme-accent-extralight:              #dbe8ff;

    --app-theme-accent-contrast-extradark:      #fafafa;
    --app-theme-accent-contrast-dark:           #fafafa;
    --app-theme-accent-contrast-middle:         #fafafa;
    --app-theme-accent-contrast-light:          #1b1b1b;
    --app-theme-accent-contrast-extralight:     #1b1b1b;

    /* contrast: complementa los otros colores */

    /* omitido */

    .btn-primary {
        --bs-btn-color: var(--app-theme-blue-contrast-extradark);
        --bs-btn-bg: var(--app-theme-blue-extradark);
        --bs-btn-border-color: var(--app-theme-blue-extradark);
        --bs-btn-hover-bg: var(--app-theme-blue-dark);
        --bs-btn-hover-border-color: var(--app-theme-blue-dark);
        --bs-btn-active-bg: var(--app-theme-blue-middle);
        --bs-btn-active-border-color: var(--app-theme-blue-middle);
        --bs-btn-disabled-bg: var(--app-theme-blue-light);
        --bs-btn-disabled-border-color: var(--app-theme-blue-light);
    }

    .text-primary {
        color: var(--app-theme-blue-middle) !important;
    }

    .dropdown-item.active, .dropdown-item:active {
        background-color: var(--app-theme-blue-middle);
        color: var(--app-theme-blue-contrast-middle);
    }

    --mh-color-nav-bg: var(--app-theme-bg);
    --mh-color-nav-fg: var(--app-theme-fg);
    --mh-color-nav-link-active: var(--app-theme-blue-middle);
}

/**
 *
 * colores tema dark
 *
 */

:root[data-bs-theme="dark"] {
    --app-theme-fg:                             #fafafa;
    --app-theme-bg:                             #1b1b1b;
    --app-theme-light:                          #fafafa;

    /* blues: azul garantizado para enlaces */
    /* https://coolors.co/006fb3-0aa1ff-5cc0ff-85d0ff-d6efff */

    --app-theme-blue-extradark:                 #dbe8ff;
    --app-theme-blue-dark:                      #abc8ff;
    --app-theme-blue-middle:                    #6e96e1;
    --app-theme-blue-light:                     #33589d;
    --app-theme-blue-extralight:                #0e2859;

    --app-theme-blue-contrast-extradark:        #1b1b1b;
    --app-theme-blue-contrast-dark:             #1b1b1b;
    --app-theme-blue-contrast-middle:           #fafafa;
    --app-theme-blue-contrast-light:            #fafafa;
    --app-theme-blue-contrast-extralight:       #fafafa;

    /* neutral: delimita elementos primarios/secundarios */

    --app-theme-neutral-extradark:              #e9ecef;
    --app-theme-neutral-dark:                   #dee2e6;
    --app-theme-neutral-middle:                 #adb5bd;
    --app-theme-neutral-light:                  #495057;
    --app-theme-neutral-extralight:             #212529;

    --app-theme-neutral-contrast-extradark:     #1b1b1b;
    --app-theme-neutral-contrast-dark:          #1b1b1b;
    --app-theme-neutral-contrast-middle:        #1b1b1b;
    --app-theme-neutral-contrast-light:         #fafafa;
    --app-theme-neutral-contrast-extralight:    #fafafa;

    /* accent: énfasis */

    --app-theme-accent-extradark:               #0e2859;
    --app-theme-accent-dark:                    #0e2859;
    --app-theme-accent-middle:                  #0e2859;
    --app-theme-accent-light:                   #0e2859;
    --app-theme-accent-extralight:              #33589d;

    --app-theme-accent-contrast-extradark:      #fafafa;
    --app-theme-accent-contrast-dark:           #fafafa;
    --app-theme-accent-contrast-middle:         #fafafa;
    --app-theme-accent-contrast-light:          #fafafa;
    --app-theme-accent-contrast-extralight:     #fafafa;

    /* contrast: complementa los otros colores */

    /* omitido */
}

/**
 *
 * fonts
 *
 */

body {
    font-family: "Roboto", sans-serif;
}

/**
 *
 * nodo/contexto/.../header
 *
 */

article.nodo.contexto-cols1 > header,
article.nodo.contexto-cols2 > header,
article.nodo.contexto-cols3 > header,
article.nodo.contexto-noticia > header {
    background-image: url("../hero-secciones-AkTSRLR.svg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    padding-top: 80px;
    padding-bottom: 80px;
    h2 {
        font-family: "Roboto", sans-serif;
        color: #1E3E7B;
        font-size: 3rem;
    }
}

section.hijos.formato-listado, section.hijos.formato-personalizado {
    & > ul {
        & > li {
            font-family: "Roboto", sans-serif;
        }
    }
}

aside.toc {
    font-family: "Roboto", sans-serif;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.breadcrumb-container {
    .breadcrumb {
        font-family: "Roboto", sans-serif;
    }
}

/**
 *
 * Portada: Hero
 *
 */
body.body-19cbcdfe79096 {

    .hero {
        position: relative;
        width: 100vw;
        left: 50%;
        right: 50%;
        margin-left: -50vw;
        margin-right: -50vw;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 96px 24px;
        box-sizing: border-box;

        .fondo {
            position: absolute;
            inset: 0;
            background-size: 100% auto;
            background-position: center;
            background-repeat: no-repeat;
            z-index: 0;
        }

        .contenido {
            position: relative;
            z-index: 1;
            max-width: 1100px;
            text-align: center;

            .titulo {
                font-weight: 500;
                font-size: clamp(2.5rem, 8.5vw, 8rem);
                line-height: 1.1;
                color: #0e2859;
                margin-bottom: 1.75rem;

                em {
                    font-style: italic;
                    font-weight: 700;
                }
            }

            .subtitulo {
                font-weight: 700;
                text-transform: uppercase;
                font-size: clamp(1rem, 2.6vw, 1.75rem);
                letter-spacing: .02em;
                color: #1b1b1b;
                line-height: 1.4;
                margin-bottom: 3rem;
            }

            .boton-ver-agenda {
                display: inline-block;
                background-color: #1E3E7B;
                color: #ffffff;
                font-weight: 700;
                font-size: 1.1rem;
                padding: .85rem 2rem;
                border-radius: 2rem;
                text-decoration: none;
                margin-bottom: 3rem;

                &:hover {
                    background-color: #123a6b;
                    color: #ffffff;
                }
            }

            .logos {
                display: flex;
                flex-wrap: wrap;
                align-items: center;
                justify-content: center;
                gap: 2rem 3rem;

                img {
                    height: 85px;
                    width: auto;
                    object-fit: contain;
                }

                img.hacienda-logo {
                    height: 140px;
                }
            }
        }

        @media (max-width: 900px) {
            padding: 56px 16px;

            .contenido .logos {
                gap: 1.25rem;
                img { height: 40px; }
                img.hacienda-logo { height: 90px; }
            }
        }

        @media (max-width: 480px) {
            padding: 40px 16px;

            .contenido .logos {
                gap: 1rem;
                img { height: 32px; }
                img.hacienda-logo { height: 72px; }
            }
        }
    }
}

/**
 *
 * Portada: Agenda carousel
 *
 */
body.body-19cbcdfe79096 {

    .agenda-carousel {
        max-width: 900px;
        margin: 4rem auto;
        padding: 0 24px;
        box-sizing: border-box;
        text-align: center;

        .cita {
            font-style: italic;
            font-size: clamp(1.25rem, 2.5vw, 1.625rem);
            font-weight: 400;
            color: var(--app-theme-fg);
            line-height: 1.4;
            margin-bottom: 1.5rem;
        }

        .texto {
            font-size: 1.05rem;
            font-weight: 400;
            color: var(--app-theme-fg);
            line-height: 1.6;
            max-width: 720px;
            margin: 0 auto 2rem;
        }

        .carousel-item .foto {
            width: 100%;
            max-width: 560px;
            border-radius: .75rem;
            object-fit: cover;
            aspect-ratio: 16 / 10;
        }

        .carousel-indicators {
            position: static;
            margin-top: 2rem;

            button {
                width: 10px;
                height: 10px;
                border-radius: 50%;
                background-color: var(--app-theme-neutral-light);
                opacity: 1;
                border: none;

                &.active {
                    background-color: var(--app-theme-blue-extradark);
                }
            }
        }

        @media (max-width: 640px) {
            margin: 2.5rem auto;

            .carousel-item .foto {
                max-width: 100%;
            }
        }
    }
}

/**
 *
 * Portada: Ejes
 *
 */
body.body-19cbcdfe79096 {

    .ejes {
        width: 100vw;
        position: relative;
        left: 50%;
        right: 50%;
        margin-left: -50vw;
        margin-right: -50vw;
        background-color: var(--app-theme-neutral-extralight);
        padding: 3rem 24px;
        box-sizing: border-box;

        .ejes-contenido {
            max-width: 960px;
            margin: 0 auto;
        }

        h2 {
            text-align: center;
            font-weight: 400;
            font-size: clamp(1.75rem, 4vw, 2.5rem);
            line-height: 1.3;
            margin-bottom: 2.5rem;
            color: var(--app-theme-fg);

            em {
                display: block;
                font-style: italic;
                font-weight: 700;
                color: var(--app-theme-blue-dark);
            }
        }

        .accordion-item {
            border: none;
            border-radius: .75rem;
            background-color: var(--app-theme-bg);
            margin-bottom: 1rem;
            overflow: hidden;
        }

        .accordion-button {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: .25rem;
            width: 100%;
            padding: 1.5rem 1.75rem;
            background-color: transparent;
            border: none;
            text-align: left;
            box-shadow: none;

            &::after {
                display: none;
            }

            .eje-label {
                font-size: .8rem;
                font-weight: 400;
                color: var(--app-theme-fg);
            }

            .eje-titulo {
                font-style: italic;
                font-weight: 700;
                font-size: 1.35rem;
                color: var(--app-theme-blue-dark);
            }

            position: relative;

            &::before {
                content: "\F282";
                font-family: "bootstrap-icons";
                position: absolute;
                top: 1.5rem;
                right: 1.75rem;
                width: 2.25rem;
                height: 2.25rem;
                display: flex;
                align-items: center;
                justify-content: center;
                border-radius: 50%;
                border: 1px solid var(--app-theme-blue-dark);
                color: var(--app-theme-blue-dark);
                font-size: 1rem;
            }

            &:not(.collapsed)::before {
                content: "\F286";
                background-color: var(--app-theme-blue-dark);
                color: #ffffff;
                border-color: var(--app-theme-blue-dark);
            }
        }

        .accordion-body {
            display: flex;
            gap: 2rem;
            padding: 0 1.75rem 1.75rem;
            border-top: 1px solid var(--app-theme-neutral-light);
            padding-top: 1.75rem;

            .eje-foto {
                width: 320px;
                flex: 0 0 320px;
                aspect-ratio: 4 / 3;
                object-fit: cover;
                border-radius: .5rem;
            }

            .eje-texto {
                flex: 1 1 auto;
                min-width: 0;

                p {
                    color: var(--app-theme-fg);
                    line-height: 1.6;
                    margin-bottom: 1rem;
                }

                .objetivo-label {
                    font-weight: 700;
                    margin-bottom: .35rem;
                }

                .objetivo-texto {
                    font-size: .95rem;
                }

                .boton-saber-mas {
                    display: inline-block;
                    background-color: var(--app-theme-blue-dark);
                    color: var(--app-theme-blue-contrast-dark);
                    font-weight: 700;
                    padding: .6rem 1.5rem;
                    border-radius: 2rem;
                    text-decoration: none;

                    &:hover {
                        background-color: var(--app-theme-blue-extradark);
                        color: var(--app-theme-blue-contrast-dark);
                    }
                }
            }
        }

        @media (max-width: 768px) {
            .accordion-body {
                flex-direction: column;

                .eje-foto {
                    width: 100%;
                    flex: none;
                }
            }
        }
    }
}

/**
 *
 * Portada: Construcción de la Agenda
 *
 */
body.body-19cbcdfe79096 {

    .construccion {
        max-width: 620px;
        margin: 0 auto;
        padding: 3rem 24px;
        box-sizing: border-box;
        text-align: center;

        h2 {
            font-weight: 400;
            font-size: clamp(1.75rem, 4vw, 2.5rem);
            line-height: 1.3;
            margin-bottom: 2.5rem;
            color: var(--app-theme-fg);

            em {
                display: block;
                font-style: italic;
                font-weight: 700;
                color: var(--app-theme-blue-dark);
            }
        }

        .bloque {
            margin-bottom: 3rem;

            &:last-child {
                margin-bottom: 0;
            }

            .foto {
                width: 100%;
                aspect-ratio: 4 / 3;
                object-fit: cover;
                border-radius: 1rem;
                margin-bottom: 1.5rem;
            }

            h3 {
                font-weight: 400;
                font-size: clamp(1.5rem, 3vw, 1.875rem);
                line-height: 1.3;
                margin-bottom: 1rem;
                color: var(--app-theme-fg);

                em {
                    display: block;
                    font-style: italic;
                    font-weight: 700;
                    color: var(--app-theme-blue-dark);
                }
            }

            p {
                color: var(--app-theme-fg);
                line-height: 1.6;
                font-size: 1.05rem;
            }
        }
    }
}

/**
 *
 * Portada: Próximamente
 *
 */
body.body-19cbcdfe79096 {

    .proximamente {
        width: 100vw;
        position: relative;
        left: 50%;
        right: 50%;
        margin-left: -50vw;
        margin-right: -50vw;
        background-color: #1E3E7B;
        color: #ffffff;
        padding: 4rem 24px;
        box-sizing: border-box;
        text-align: center;

        .proximamente-contenido {
            max-width: 640px;
            margin: 0 auto;
        }

        h2 {
            font-weight: 400;
            font-size: clamp(1.5rem, 3.5vw, 2rem);
            line-height: 1.3;
            color: #ffffff;
            margin-bottom: 2rem;

            strong {
                font-weight: 700;
            }
        }

        .icono {
            position: relative;
            width: 90px;
            height: 90px;
            margin: 0 auto 2rem;

            span {
                position: absolute;
                width: 50px;
                height: 60px;
                border-radius: 4px;
            }

            span:nth-child(1) {
                background-color: #ffffff;
                opacity: .4;
                top: 30px;
                left: 0;
            }

            span:nth-child(2) {
                background-color: #ffffff;
                opacity: .6;
                top: 15px;
                left: 20px;
            }

            span:nth-child(3) {
                background-color: #ffffff;
                border: 1px solid var(--app-theme-blue-dark);
                top: 0;
                left: 35px;
            }
        }

        p {
            line-height: 1.6;
            margin-bottom: 1.5rem;
            color: #ffffff;
        }

        .contacto {
            font-weight: 700;
            margin-bottom: 0;
        }

        .proximamente-logos {
            max-width: 900px;
            margin: 2.5rem auto 0;
            padding-top: 2rem;
            border-top: 1px solid rgba(255, 255, 255, .3);
            display: flex;
            flex-wrap: nowrap;
            align-items: center;
            justify-content: center;
            gap: 2.5rem;

            img {
                height: 72px;
                width: auto;
                object-fit: contain;
            }

            img.hacienda-logo-white {
                height: 130px;
            }
        }

        @media (max-width: 640px) {
            padding: 3rem 16px;

            .proximamente-logos {
                flex-wrap: wrap;
                gap: 1.25rem;

                img { height: 48px; }
            }
        }
    }
}
