/* vim: set foldmethod=expr: */

/**
 *
 * En este archivo: Normas gráficas MH
 *
 */

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

:root {
    --app-theme-fg:             #293340;
    --app-theme-bg:             #fafafa;

    --app-theme-blue-dark:      #26344a;
    --app-theme-blue-middle:    #0f69b4;
    --app-theme-blue-light:     #83c0f7;

    --app-theme-light:          #ffffff;

    --app-theme-neutral-dark:   #7a8790;
    --app-theme-neutral-middle: #d2d7d9;
    --app-theme-neutral-light:  #ffffff;
}

/**
 *
 * colores tema dark
 *
 */

[data-bs-theme="dark"] {
    --app-theme-fg:             #ffffff;
    --app-theme-bg:             #212529;

    --app-theme-blue-dark:      #83c0f7;
    --app-theme-blue-middle:    #0f69b4;
    --app-theme-blue-light:     #002147;

    --app-theme-light:          #212529;

    --app-theme-neutral-dark:   #d6d6d6;
    --app-theme-neutral-middle: #444444;
    --app-theme-neutral-light:  #181818;
}

/**
 *
 * colores acento
 *
 */

:root {
    --app-theme-accent-dark:    #0a314d;
    --app-theme-accent-middle:  #83c0f7;
    --app-theme-accent-light:   #ffffff;
}

/**
 *
 * variables de color para elementos específicos
 *
 */

/*
 * --mh-color-<frag>[-<elem>]-<prop>[-<subprop>]
 *
 * - frag: breadcrumb, nav, toc, rel, header, main, hijos, hijo, form, pie, portada…
 * - elem: title, link…
 * - prop: fg, bg, border…
 * - subprop: top, right, left, hover, active…
 */

:root {
    --bs-body-color: var(--app-theme-fg);
    --bs-body-bg: var(--app-theme-bg);

    --bs-link-color: var(--app-theme-blue-middle);

    .accordion {
        --bs-accordion-active-color: var(--app-theme-accent-light);
        --bs-accordion-active-bg: var(--app-theme-accent-dark);
        --bs-accordion-border-color: var(--app-theme-neutral-middle);
    }

    --mh-color-nav-bg: var(--app-theme-accent-dark);
    --mh-color-nav-fg: var(--app-theme-accent-light);
    --mh-color-nav-link-active: var(--app-theme-accent-middle);

    --mh-color-header-bg: var(--app-theme-accent-dark);
    --mh-color-header-fg: var(--app-theme-accent-light);
    --mh-color-header-time-fg: var(--app-theme-accent-middle);
    --mh-color-header-resumen-fg: var(--app-theme-accent-middle);
    --mh-color-header-claseAutoridadNombre-fg: var(--app-theme-accent-light);
    --mh-color-header-claseAutoridadCargo-fg: var(--app-theme-accent-middle);

    --mh-color-breadcrumb-bg: var(--app-theme-bg);
    --mh-color-breadcrumb-fg: var(--app-theme-neutral-dark);
    --mh-color-breadcrumb-separator-fg: var(--app-theme-neutral-dark);
    --mh-color-breadcrumb-border: var(--app-theme-neutral-middle);

    --mh-color-toc-fg: var(--app-theme-fg);
    --mh-color-toc-bg: var(--app-theme-light);
    --mh-color-toc-header-bg: var(--app-theme-light);
    --mh-color-toc-header-fg: var(--app-theme-fg);
    --mh-color-toc-link-fg: var(--app-theme-blue-dark);
    --mh-color-toc-link-fg-active: var(--app-theme-blue-middle);
    --mh-color-toc-border: var(--app-theme-neutral-middle);
    --mh-color-toc-border-top: var(--app-theme-blue-middle);
    --mh-color-toc-border-hover: var(--app-theme-blue-light);

    --mh-color-rel-border: var(--app-theme-neutral-middle);
    --mh-color-rel-icon-fg: var(--app-theme-blue-middle);
    --mh-color-rel-link-fg: var(--app-theme-blue-middle);

    --mh-color-main-border: var(--app-theme-neutral-middle);
    --mh-color-main-navCustom-fg: var(--app-theme-blue-middle);
    --mh-color-main-navCustomActive-fg: var(--app-theme-blue-dark);
    --mh-color-main-linkButtonCustom-fg: var(--app-theme-blue-dark);
    --mh-color-main-linkButtonCustom-bg: transparent;
    --mh-color-main-linkButtonCustom-fg-hover: var(--app-theme-light);
    --mh-color-main-linkButtonCustom-bg-hover: var(--app-theme-blue-middle);
    --mh-color-main-linkButtonCustom-border: var(--app-theme-neutral-middle);

    --mh-color-hijos-bg: var(--app-theme-neutral-light);

    --mh-color-hijo-bg: var(--app-theme-neutral-middle);
    --mh-color-hijo-link-fg: var(--app-theme-blue-dark);
    --mh-color-hijo-icon-fg: var(--app-theme-neutral-dark);
    --mh-color-hijo-border: var(--app-theme-neutral-middle);
    --mh-color-hijo-border-hover: var(--app-theme-blue-light);
    --mh-color-hijo-title-fg: var(--app-theme-blue-dark);
    --mh-color-hijo-titleMin-fg: var(--app-theme-blue-middle);
    --mh-color-hijo-time-fg: var(--app-theme-neutral-dark);
    --mh-color-hijo-button-fg-hover: var(--app-theme-light);
    --mh-color-hijo-button-bg-hover: var(--app-theme-blue-dark);

    --mh-color-form-input-border: var(--app-theme-neutral-middle);
    --mh-color-form-button-bg: var(--app-theme-accent-dark);
    --mh-color-form-button-fg: var(--app-theme-accent-light);

    --mh-color-pie-fg: var(--app-theme-fg);
    --mh-color-pie-bg: var(--app-theme-bg);
    --mh-color-pie-link-fg: var(--app-theme-blue-dark);
    --mh-color-pie-link-fg-hover: var(--app-theme-blue-middle);
    --mh-color-pie-link-fg-active: var(--app-theme-blue-light);

    --mh-color-portada-carouselIndicatorActive-bg: var(--app-theme-blue-light);
    --mh-color-portada-carouselLink-fg: #ffffff;
    --mh-color-portada-carouselTime-fg: #999999;

    --mh-color-portada-h2Custom-fg: var(--app-theme-blue-dark);
    --mh-color-portada-h2CustomLink-fg-hover: var(--app-theme-blue-middle);
}

[data-bs-theme=dark] .carousel .carousel-control-next-icon,
[data-bs-theme=dark] .carousel .carousel-control-prev-icon
{
    filter: none;
}

/**
 *
 * comunes
 *
 */

body {
    font-family: Fira Sans, sans-serif;
}

div.overrideable-placeholder {
    aspect-ratio: 1.78;
    background-image: url("../../images/sectores/mh/placeholder-Rfeflj1.jpg") !important;
    background-position: center;
}

a {
    transition: color .2s;
    color: var(--app-theme-blue-dark);
    &:hover {
        color: var(--app-theme-blue-middle);
    }
}

/**
 *
 * nav
 *
 */

nav.navbar {
    background-color: var(--mh-color-nav-bg);
    color: var(--mh-color-nav-fg);
    a.nav-link {
        color: var(--mh-color-nav-fg);
        &.active {
            color: var(--mh-color-nav-link-active);
        }
    }
    button.navbar-toggler {
        color: var(--mh-color-nav-fg);
        border-color: var(--mh-color-nav-fg);
        .navbar-toggler-icon {
            background: none;
            &::before {
                content: "\F479";
                font-family: "bootstrap-icons";
                color: var(--mh-color-nav-fg);
                font-size: 1.9rem;
            }
        }
    }
}

/**
 *
 * breadcrumb
 *
 */

.breadcrumb-container {
    background-color: var(--mh-color-breadcrumb-bg);

    .breadcrumb {
        font-family: Inter, sans-serif;
        font-size: 14px;
        font-weight: 500;

        &:before {
            border-bottom: 1px solid var(--mh-color-breadcrumb-border);
        }

        .breadcrumb-item {
            a {
                color: var(--mh-color-breadcrumb-fg);
            }
            & + .breadcrumb-item {
                &:before {
                    border-bottom: 1px solid var(--mh-color-breadcrumb-separator-fg);
                    border-right: 1px solid var(--mh-color-breadcrumb-separator-fg);
                }
            }
        }
    }
}

/**
 *
 * rel
 *
 */

aside.rel {
    background-color: transparent;

    h3 {
        border-bottom: 1px solid var(--mh-color-rel-border);
        font-family: Assistant, sans-serif;
        font-size: 1.12rem;
        font-weight: 600;
        line-height: normal;
        &:after {
            font-size: 15px;
            color: var(--mh-color-rel-icon-fg);
        }
    }

    a {
        color: var(--mh-color-rel-link-fg);
        line-height: normal;
        &:hover {
            color: var(--bs-link-color);
        }
    }
}
/**
 *
 * nodo
 *
 */

article.nodo {
    form {
        border-radius: 3px;
        padding: 26px 0;
        label {
            font-weight: 600;
        }
        .form-control, .form-select {
            border: 1px solid var(--mh-color-form-input-border);
        }
        button[type="submit"] {
            color: var(--mh-color-form-button-fg);
            background-color: var(--mh-color-form-button-bg);
            font-size: 16px;
            text-transform: uppercase;
            font-weight: 600;
            margin-bottom: -10px;
            margin-top: 32px;
            border: none;
            border-radius: 5px;
            padding: 15px 33px;
            display: block;
            letter-spacing: 1.2px;
            transition: .3s ease;
            width: 100%;
        }
    }
}
/**
 *
 * toc
 *
 */

aside.toc {
    font-family: Inter, sans-serif;
    color: var(--mh-color-toc-fg);
    background-color: var(--mh-color-toc-bg);
    border: 1px solid var(--mh-color-toc-border);
    border-top: 2px solid var(--mh-color-toc-border-top);

    &:hover {
        transition: .3s;
        border: 1px solid var(--mh-color-toc-border-hover);
        border-top: 2px solid var(--mh-color-toc-border-top);
    }

    h3 {
        color: var(--mh-color-toc-header-fg);
        background-color: var(--mh-color-toc-header-bg);
        border-bottom: 1px solid var(--mh-color-toc-border);
        font-family: Assistant, sans-serif;
        font-size: 19px;
        font-weight: 600;
        line-height: normal;
        a {
            color: var(--mh-color-toc-header-fg);
            &:hover {
                color: var(--bs-link-color);
            }
        }
        .retornar {
            font-weight: 600;
            border-top: 1px solid var(--mh-color-toc-border);
            border-left: 1px solid transparent;
            border-bottom: 1px solid var(--mh-color-toc-border);
            line-height: normal;
            font-family: Inter, sans-serif;
            font-size: 15px;
            &:hover {
                border-left: 4px solid var(--bs-link-color);
            }
        }
    }

    ul {
        list-style: none;
        padding: 0 0 0 15px;
        line-height: normal !important;

        li {
            font-size: 15px;
            font-weight: 400;
            line-height: 20px;

            a {
                color: var(--mh-color-toc-link-fg);
                &:hover {
                    color: var(--bs-link-color);
                }

                &:before {
                    content: "";
                    position: absolute;
                    border-right: 1px solid var(--bs-body-color);
                    border-bottom: 1px solid var(--bs-body-color);
                    width: 7px;
                    height: 7px;
                    top: 10px;
                    left: -17px;
                    transform: translateY(-50%) rotate(-45deg);
                    transition: .3s ease;
                }
            }

            ul {
                list-style: disc;
                font-size: .7rem;
                li {
                    font-size: .93rem;
                    a:before {
                        content: none;
                    }
                }
            }

            &.active {
                > a {
                    color: var(--mh-color-toc-link-fg-active);
                    font-weight: 600;
                }

                ul {
                    li {
                        a {
                            color: inherit;
                            font-weight: 400;
                            &:hover {
                                color: var(--bs-link-color);
                            }
                        }
                        &.active a {
                            color: var(--bs-link-color);
                        }
                    }
                }
            }
        }
    }

}

/**
 *
 * pie
 *
 */

body > footer {
    color: var(--mh-color-pie-fg);
    background-color: var(--mh-color-pie-bg);
    a {
        color: var(--mh-color-pie-link-fg);
        &:hover {
            color: var(--mh-color-pie-link-fg-hover);
        }
        &.active {
            color: var(--mh-color-pie-link-fg-active);
        }
    }
}

/**
 *
 * nodo/contexto/cols-{1,2,3}/header
 *
 */

article.nodo.contexto-cols1 > header,
article.nodo.contexto-cols2 > header,
article.nodo.contexto-cols3 > header {
    color: var(--mh-color-header-fg);
    background-color: var(--mh-color-header-bg);
    background-image: url("../../images/sectores/mh/header-l3fGkP_.jpg");

    h2 {
        font-family: Assistant, sans-serif;
        font-size: 42px;
        font-weight: 500;
    }
}

/**
 * nodo/contexto/noticia/header
 */

article.nodo.contexto-noticia > header {
    color: var(--mh-color-header-fg);
    background-color: var(--mh-color-header-bg);
    background-image: url("../../images/sectores/mh/header-l3fGkP_.jpg");

    h2 {
        color: var(--mh-color-header-fg);
        font-family: Assistant, sans-serif;
        font-size: 32px;
        font-weight: 400;
        line-height: 40px;
    }
    time {
        color: var(--mh-color-header-time-fg);
        font-family: Lato, sans-serif;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: .07rem;
        text-transform: uppercase;
    }
    .resumen {
        color: var(--mh-color-header-resumen-fg);
        ul {
            margin: 0 20px 20px;
            padding: 0;
            position: relative;
            li {
                list-style: none;
                &:before {
                    content: "\25C6";
                    font-family: Inter, sans-serif;
                    left: 22px;
                    position: absolute;
                    font-size: 13px;
                    color: var(--app-theme-accent-middle);
                    margin-top: 1px;
                    content: "";
                    transform: translateY(-50%) rotate(-45deg);
                    border-right: 2px solid;
                    border-bottom: 2px solid;
                    width: 9px;
                    position: absolute;
                    height: 9px;
                    left: 0;
                    margin-top: 13px;
                }
            }
        }
        p, li {
            line-height: 28px;
            font-size: 19px;
            padding-left: 20px;
        }
    }
}

/**
 *
 * nodo/main (resumen+cuerpo)
 *
 */

article.nodo main {
    div.body-main-center, section.hijos {
        h1, h2, h3, h4, h5, h6 {
            color: var(--mh-color-hijo-title-fg);
            font-weight: 600;
        }

        h4 {
            color: var(--mh-color-hijo-titleMin-fg);
        }

        p, ul:not(.nav) {
            font-size: 1.05rem;
        }

        p {
            font-weight: 400;
            line-height: 1.7rem;
        }

        a {
            color: var(--bs-link-color);
        }

        section:not(.hijos, .paginas) ul {
            li {
                list-style: none;
                position: relative;
                &:before {
                    content: "\25C6";
                    font-family: Inter, sans-serif;
                    left: -22px;
                    position: absolute;
                    font-size: 13px;
                    color: var(--bs-link-color);
                    margin-top: 1px;
                }
            }
        }

        table {
            border: 1px solid var(--mh-color-main-border);
            font-family: Open Sans, sans-serif;
            font-size: 15px;
            line-height: normal;

            td, th {
                border-right: 1px solid var(--mh-color-main-border);
                border-bottom: 1px solid var(--mh-color-main-border);
            }
        }
    }
}

/**
 *
 * nodo/main/customs
 *
 */

article.nodo main .custom {
    a.boton& {
        transition: color .2s, background-color .2s;
        background-color: var(--mh-color-main-linkButtonCustom-bg);
        border: 1px solid var(--mh-color-main-linkButtonCustom-border);
        color: var(--mh-color-main-linkButtonCustom-fg);
        padding: .375rem 1rem .375rem .75rem;

        &::after {
            display: inline-block;
            content: "\F138";
            font-family: "bootstrap-icons";
            vertical-align: bottom;
            margin-left: 1rem;
        }

        &:hover {
            background-color: var(--mh-color-main-linkButtonCustom-bg-hover);
            color: var(--mh-color-main-linkButtonCustom-fg-hover);
            &::after {
                transition: transform .2s;
                transform: translateX(7px);
            }
        }
    }

    ul.nav& {
        font-family: Assistant, sans-serif;
        border-bottom: 1px solid var(--mh-color-main-border);
        margin: 0 auto 46px;
        justify-content: center;
        font-size: 18px;

        .nav-link {
            padding: 0 0 13px;
            border-radius: 0;
            display: flex;
            flex: inherit;
            justify-content: center;
            margin: 0 30px -2px;
            color: var(--mh-color-main-navCustom-fg);
            font-weight: 600;
            border: 0;
            border-bottom: 3px solid transparent;

            &.active {
                border-bottom: 3px solid var(--mh-color-main-navCustomActive-fg);
                color: var(--mh-color-main-navCustomActive-fg);
                background: transparent;
            }
        }
    }
}

/**
 *
 * nodo/clase/autoridad
 *
 */

article.nodo.clase-autoridad {
    > header {
        div.nombre {
            font-weight: 400;
            font-size: 38px;
            color: var(--mh-color-header-claseAutoridadNombre-fg);
        }

        div.cargo {
            color: var(--mh-color-header-claseAutoridadCargo-fg);
            font-size: 1.3rem;
            font-weight: 600;
        }
    }
}

/**
 *
 * nodo/clase/persona
 *
 */

article.nodo.clase-persona, .hijo.clase-persona {

    /* como nodo principal */
    div.body-main-center {
        div.cargo {
            font-size: 30px;
        }
    }

    /* como hijo */
    &.hijo.clase-persona {
        border: 1px solid var(--mh-color-main-border);

        div.flex-shrink-0 {
            border-right: 1px solid var(--mh-color-main-border);
        }

        div.cargo {
            font-family: Lato,sans-serif;
            text-transform: uppercase;
            font-size: 13px;
            font-weight: 600;
            color: var(--bs-link-color);
            letter-spacing: 3px;
            border-bottom: 1px solid var(--mh-color-main-border);
        }
    }

}

/**
 *
 * nodo/hijos/formato/listado, personalizado
 *
 */

section.hijos.formato-listado, section.hijos.formato-personalizado {
    > ul {

        > li {
            font-family: Inter, sans-serif;
            background-color: var(--mh-color-hijo-bg);
            border: 1px solid var(--mh-color-hijo-border);
            border-radius: 3px;

            &:hover {
                border: 1px solid var(--mh-color-hijo-border-hover);
            }

            a {
                font-weight: 500;
                color: var(--mh-color-hijo-link-fg);
            }

            time {
                font-family: Lato, sans-serif;
                letter-spacing: .07rem;
                font-weight: 700;
                color: var(--mh-color-hijo-time-fg);
            }

            h3 {
                font-weight: 400;
                line-height: normal;
                font-size: .95rem;
            }

            &:before {
                color: var(--mh-color-hijo-icon-fg);
            }

            ul {
                font-size: 15.5px;

                li {
                    border: none;
                }

            }

            p,
            ul li {
                font-size: 15px;
                line-height: 1.5rem;
            }
        }
    }

}

/**
 *
 * nodo/hijos/formato/panelesColapsables, panelesColapsablesMultiples
 *
 */

section.hijos.formato-panelesColapsables, section.hijos.formato-panelesColapsablesMultiples {
    .accordion-button:not(.collapsed)::after {
        filter: invert(); /* suponiendo color de acento (oscuro) aplicado a button not collapsed */
    }

    a.seguir {
        display: inline-block;
        padding: .375rem .75rem;
        border: 1px solid var(--mh-color-hijo-border);
        border-radius: .375rem;
        &:hover {
            transition: color .2s, background-color .2s;
            color: var(--mh-color-hijo-button-fg-hover);
            background-color: var(--mh-color-hijo-button-bg-hover);
        }
    }
}

/**
 *
 * nodo/hijos/formato/galeriaAloAncho
 *
 */

section.hijos.formato-galeriaALoAncho {
    div.hijo {
        &:not(:first-child) {
            border-top: 1px solid var(--mh-color-main-border);
        }
    }
}

/**
 *
 * nodo/hijos/formato/grilla, grillaResponsiva
 *
 */

section.hijos.formato-grilla, section.hijos.formato-grillaResponsiva {
    .row > * {

        .card {
            background: var(--mh-color-hijo-bg);
            border-radius: 0;
            border: 0;

            .card-body {
                time {
                    font-family: Lato, sans-serif;
                    text-transform: uppercase;
                    letter-spacing: .05rem;
                    font-size: .65rem;
                    font-weight: 700;
                    color: var(--mh-color-hijo-time-fg);
                }
                h3 {
                    font-size: .98rem;
                    font-weight: 400;
                    line-height: 1.3rem;
                    a {
                        color: var(--mh-color-hijo-link-fg);
                        &:hover {
                            color: var(--bs-link-color);
                            transition: .2s;
                        }
                    }
                }
            }
        }
    }
}
/**
 *
 * nodo/hijos/formato/composicion
 *
 */

section.hijos.formato-composicion {
    div.hijo {
        &:not(:first-child) {
            border-top: 1px solid var(--mh-color-main-border);
        }
    }
}

section.hijos.formato-panelesColapsables, section.hijos.formato-panelesColapsablesMultiples {
    .perma {
        display: none;
    }
}
/**
 *
 * personalizado/portada/customs
 *
 */

.custom-portada {
    h2& {
        font-family: Inter, sans-serif;
        font-size: 1.1rem;
        font-weight: 500;
        color: var(--mh-color-portada-h2Custom-fg);
        margin: 0;
        padding: 2rem 0 1.2rem;
        a {
            color: var(--mh-color-portada-h2Custom-fg);
            &:hover {
                color: var(--mh-color-portada-h2CustomLink-fg-hover);
                .fas {
                    transform: translateX(0.4rem);
                    transition: .2s;
                }
            }
        }
        .fas {
            font-size: 0.8rem;
        }
    }
    &.carousel-indicators {
        bottom: 5%;
        list-style: none;
        margin: auto;
        max-width: 95%;
        width: 100%;
        [data-bs-target] {
            align-self: center;
            background-clip: border-box;
            border-bottom: 0;
            border-radius: 40px;
            border-top: 4px solid transparent;
            margin: 0 8px;
            opacity: .3;
            width: 7px;
            &.active {
                opacity: 1;
                background-color: var(--mh-color-portada-carouselIndicatorActive-bg);
                padding: 1px;
            }
        }
    }
}

/**
 *
 * personalizado/portada/noticia-principal
 *
 */

.noticia-principal {
    max-height: 760px;
    overflow: hidden;
    width: 100%;
    max-width: 1440px;

    .carousel-indicators {
        justify-content: flex-end;
        width: 90%;
    }

    img {
        object-fit: cover;
        object-position: center;
        height: 680px;
        position: relative;
        z-index: -1;
    }

    .carousel-item {
        &::after {
            content: "";
            position: absolute;
            background-color: transparent;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: -moz-linear-gradient(180deg, rgba(0, 0, 0, .1) 60%, rgba(0, 0, 0, .55) 100%);
            background: -webkit-linear-gradient(180deg, rgba(0, 0, 0, .1) 60%, rgba(0, 0, 0, .55));
            background: linear-gradient(180deg, rgba(0, 0, 0, .1) 60%, rgba(0, 0, 0, .55));
        }

        .carousel-caption {
            bottom: 6.8%;
            left: 70px;
            max-width: 800px;
            padding-bottom: 20px;
            padding-top: 20px;
            position: absolute;
            right: 15%;
            text-align: left;
            transition: .6s ease;
            z-index: 1;

            &:hover {
                margin-left: 10px;
            }

            h3 {
                font-size: 30px;
                font-weight: 500;
                line-height: 37px;
                max-height: 150px;
                margin-top: 8px;
                overflow: hidden;

                a {
                    color: var(--mh-color-portada-carouselLink-fg);
                }
            }

            @media only screen and (max-width: 1100px) {
                h3 {
                    font-size: 24px;
                    line-height: 30px;
                    max-width: 580px;
                }
            }

            > * {
                margin-top: 18px;
            }

            time {
                text-transform: uppercase;
                letter-spacing: .07rem;
                font-size: .8rem;
                font-family: Lato, sans-serif;
                font-weight: 700;
                color: var(--mh-color-portada-carouselTime-fg);
            }

        }
    }
}

