﻿/** 
 * LAYOUT
 *      ···········|——————————————————————>   SM           (576px ⋜ screen)
 *      ················|—————————————————>   MD           (767px < screen)
    ========================================================================== */




/**
 * Conversor de px a rem: https://nekocalc.com/es/px-a-rem-conversor
 */
:root {
    /******* Colors *******/
    /* Accent Color     rgba(166,33,42,1)       hsla(99,67,39,1)    #a6212a */
    --dizo-color-accent-color: #41da99;
    --dizo-color-accent-color-bg: #47f0a8;
    /***** Neutrals *****/
    /* Cool Grey        rgba(120,135,135,1)     hsla(180,6,50,1)    #788787 */
    --dizo-color-cool-grey: hsla(180,0%,50%,1);
    /* Gondola          rgba(55,32,38,1)        hsla(344,26,17,1)   #372026 */
    --dizo-color-gondola: hsla(344,0%,17%,1);
    /* Licorice         rgba(96,83,86,1)        hsla(346,7,35,1)    #605356 */
    --dizo-color-licore: hsla(346,0%,35%,1);
    /* Light Grey       rgba(236,231,232,1)     hsla(348,12,92,1)   #ECE7E8 */
    --dizo-color-light-grey: hsla(348,0%,92%,1);
    /*** Neutrals > Background ***/
    /* Alabaster        rgba(251,250,250,1)     hsla(0,11,98,1)     #FBFAFA */
    --dizo-color-alabaster: hsla(0,0%,98%,1);
    /* Swiss Coffee     rgba(217,207,209,1)     hsla(348,12,83,1)   #D9CFD1 */
    --dizo-color-swiss-coffee: hsla(348,0%,83%,1);
    /* White            rgba(255,255,255,1)     hsla(0,0,100,1)     #FFFFFF */
    --dizo-color-white: #fff;
    /***** Primaries *****/
    /* Bluewood         rgba(0,86,139,1)        hsla(203,100,27,1)  #00568B */
    --dizo-color-bluewood: hsla(203,0%,27%,1);
    /* Bluewood-50      rgba(230,238,243,1)     hsla(203,35,93,1)   #E6EEF3 */
    --dizo-color-bluewood-50: hsla(203,0%,93%,1);
    /* Deep Ocean       rgba(25,53,71,1)        hsla(203,48,19,1)   #193547 */
    --dizo-color-deep-ocean: hsla(203,0%,19%,1);
    /*** Primaries > Accent ***/
    /* Opera            rgba(233,64,113,1)      hsla(343,79,58,1)   #E94071 */
    --dizo-color-opera: hsla(343,0%,58%,1);
    /* Opera-700        rgba(165,45,80,1)       hsla(342,57,41,1)   #A52D50 */
    --dizo-color-opera-700: hsla(342,0%,41%,1);
    /***** Secondaries *****/
    /* Azur             rgba(104,177,245,1)     hsla(209,88,68,1)   #68B1F5 */
    --dizo-color-azur: hsla(209,0%,68%,1);
    /* Imperial         rgba(89,49,118,1)       hsla(275,41,33,1)   #593176 */
    --dizo-color-imperial: hsla(275,0%,33%,1);
    /* Moonlight        rgba(63,103,232,1)      hsla(226,79,58,1)   #3F67E8 */
    --dizo-color-moonlight: hsla(226,0%,58%,1);
    /* Rouge            rgba(153,54,126,1)      hsla(316,48,41,1)   #99367E */
    --dizo-color-rouge: hsla(316,0%,41%,1);
    /* Tulip            rgba(232,186,63,1)      hsla(44,79,58,1)    #E8BA3F */
    --dizo-color-tulip: hsla(44,0%,58%,1);
    /***** Semantic palette *****/
    /* Cadmium Red      rgba(255,84,73,1)       hsla(4,100,64,1)    #FF5449 */
    --dizo-color-cadmium-red: hsla(3,100%,76%,1) /*hsla(4,0%,64%,1)*/;
    /* cadmium red-300  rgba(255,140,133,1)     hsla(3,100,76,1)    #FF8C85 */
    --dizo-color-cadmium-red-300: hsla(127,79%,58%,1) /*hsla(3,0%,76%,1)*/;
    /* Green Apple      rgba(63,232,83,1)       hsla(127,79,58,1)   #3FE853 */
    --dizo-color-green-apple: hsla(127,79%,66%,1) /*hsla(127,0%,58%,1)*/;
    /* green apple-400  rgba(101,237,117,1)     hsla(127,79,66,1)   #65ED75 */
    --dizo-color-green-apple-400: hsla(127,79%,72%,1) /*hsla(127,0%,66%,1)*/;
    /* green apple-300  rgba(126,240,140,1)     hsla(127,79,72,1)   #7EF08C*/
    --dizo-color-green-apple-300: hsla(20,100%,59%,1) /*hsla(127,0%,72%,1)*/;
    /* Valencia         rgba(255,117,48,1)      hsla(20,100,59,1)   #FF7530 */
    --dizo-color-valencia: hsla(20,0%,59%,1);
    /*** Semantic names ***/
    --dizo-color-danger: var(--dizo-color-cadmium-red);
    --dizo-color-success: var(--dizo-color-green-apple);
    --dizo-color-warning: var(--dizo-color-valencia);
    /******* Fonts *******/
    --dizo-font-body: /*Raleway*/ /*'Lora' PBI 1467 */ /* Georgia, serif PBI 1613 Task 1614 */ 'Literata', serif;
    --dizo-font-interface-element: /*Lato*/ /*'Nunito Sans' PBI 1613 Task 1614 */ 'Figtree';
    --dizo-font-title: /*'Playfair Display'*/ /*'Source Sans 3' PBI 1613 Task 1614 */ 'Figtree';
    /***** Typography *****/
    /*** Typography > Body ***/
    /* PBI 1467 (1.125rem/1.75rem para sustituir 1rem/1.25rem) */
    --dizo-body-font: normal 300 /* Medium */ /*16px/20px*/ /*1rem/1.25rem*/ /*1.125rem/1.75rem*/ /*0.938rem/1.25rem*/ 1rem/1.9rem var(--dizo-font-body);
    --dizo-body-letter-spacing: /*0.032px*/ 0.002rem /* -0.20% */;
    /*** Typography > Button ***/
    --dizo-button-font: normal 400 /* Bold */ /*16px/20px*/ 1rem/1.25rem var(--dizo-font-interface-element);
    --dizo-button-font-variation-settings: "wdth" 100, "YTLC" 500;
    --dizo-button-letter-spacing: /*0.5px*/ 0.031rem;
    /*** Typography > Caption 1 ***/
    --dizo-caption-1-font: normal 500 /* Medium */ /*15px/20px*/ 0.938rem/1.25rem var(--dizo-font-interface-element);
    --dizo-caption-1-font-variation-settings: var(--dizo-button-font-variation-settings);
    --dizo-caption-1-letter-spacing: /*0.03px*/ 0.002rem /* 0.20% */;
    /*** Typography > Caption 2 ***/
    --dizo-caption-2-font: normal 500 /* Medium */ /*12px/16px*/ 0.75rem/1rem var(--dizo-font-interface-element);
    --dizo-caption-2-font-variation-settings: var(--dizo-button-font-variation-settings);
    --dizo-caption-2-letter-spacing: 0 /* 0% */;
    /*** Typography > Display 1 ***/
    --dizo-display-1-font: normal 900 /* ExtraBold */ /*91px/96px*/ 5.688rem/6rem var(--dizo-font-title);
    --dizo-display-1-letter-spacing: /*0.91px*/ 0.057rem /* -1% */;
    /*** Typography > Display 2 ***/
    --dizo-display-2-font: normal 700 /* Bold */ /*64px/72px*/ 4rem/4.5rem var(--dizo-font-title);
    --dizo-display-2-letter-spacing: /*1.28px*/ 0.08rem /* -2% */;
    /*** Typography > Heading 1 ***/
    /* ¡OJO! Está reescrito después */
    --dizo-heading-1-font: normal 900 /* ExtraBold */ /*51px/56px*/ 3.188rem/3.5rem var(--dizo-font-title);
    --dizo-heading-1-letter-spacing: /*-0.765px*/ -0.048rem /* -1.5% */;
    /*** Typography > Heading 2 ***/
    --dizo-heading-2-font: normal 900 /* ExtraBold */ /*45px/48px*/ 2.813rem/3rem var(--dizo-font-title);
    --dizo-heading-2-letter-spacing: /*-0.45px*/ -0.028rem /* -1% */;
    /*** Typography > Heading 3 ***/
    --dizo-heading-3-font: normal 900 /* ExtraBold */ /*36px/40px*/ 2.25rem/2.5rem var(--dizo-font-title);
    --dizo-heading-3-letter-spacing: 0 /* 0% */;
    /*** Typography > Heading 4 ***/
    /* ¡OJO! Está reescrito después */
    --dizo-heading-4-font: normal 900 /* ExtraBold */ /*32px/36px*/ 2rem/2.25rem var(--dizo-font-title);
    --dizo-heading-4-letter-spacing: 0 /* 0% */;
    /*** Typography > Heading 5 ***/
    --dizo-heading-5-font: normal 600 /* SemiBold */ /*24px/28px*/ 1.5rem/1.75rem var(--dizo-font-title);
    --dizo-heading-5-letter-spacing: 0 /* 0% */;
    /*** Typography > Heading 6 ***/
    --dizo-heading-6-font: normal 500 /* Medium */ /*20px/24px*/ 1.25rem/1.5rem var(--dizo-font-title);
    --dizo-heading-6-letter-spacing: 0 /* 0% */;
    /*** Typography > Label ***/
    --dizo-label-font: normal 400 /* Medium */ /*15px/20px*/ 0.938rem/1.25rem var(--dizo-font-interface-element);
    --dizo-label-font-variation-settings: var(--dizo-button-font-variation-settings);
    --dizo-label-letter-spacing: /*0.075px*/ 0.005rem /* 0.5% */;
    /*** Typography > Label 2 ***/
    --dizo-label-2-font: normal uppercase 600 /* SemiBold */ /*14px/16px*/ 0.875rem/1rem var(--dizo-font-interface-element);
    --dizo-label-2-font-variation-settings: var(--dizo-button-font-variation-settings);
    --dizo-label-2-letter-spacing: /*0.14px*/ 0.009rem /* 1% */;
    /*** Typography > Label 3 ***/
    --dizo-label-3-font: normal uppercase 700 /* Bold */ /*12px/16px*/ 0.75rem/1rem var(--dizo-font-interface-element);
    --dizo-label-3-font-variation-settings: var(--dizo-button-font-variation-settings);
    --dizo-label-3-letter-spacing: /*0.24px*/ 0.015rem /* 2% */;
    /*** Typography > Link inline ***/
    --dizo-link-inline-font: normal 400 /* Regular */ /*16px/20px*/ 1rem/1.25rem var(--dizo-font-body);
    --dizo-link-inline-letter-spacing: /*0.08px*/ 0.005rem /* 0.5% */;
    /*** Typography > Link menu ***/
    --dizo-link-menu-font: normal 700 /* Bold */ /*16px/20px*/ 1rem/1.25rem var(--dizo-font-interface-element);
    --dizo-link-menu-font-variation-settings: var(--dizo-button-font-variation-settings);
    --dizo-link-menu-letter-spacing: /*0.2px*/ 0.013rem /* 1.25% */;
    /*** Typography > Link Standalone ***/
    --dizo-link-standalone-font: normal small-caps 700 /* Bold */ /*14px/20px*/ 0.875rem/1.25rem var(--dizo-font-interface-element);
    --dizo-link-standalone-font-variation-settings: var(--dizo-button-font-variation-settings);
    --dizo-link-standalone-letter-spacing: /*0.175px*/ 0.011rem /* 1.25% */;
    /*** Typography > Subheading 1 ***/
    --dizo-subheading-1-font: normal 600 /* SemiBold */ /*19px/24px*/ 1.188rem/1.5rem var(--dizo-font-body);
    --dizo-subheading-1-letter-spacing: 0 /* 0% */;
    /*** Typography > Subheading 2 ***/
    --dizo-subheading-2-font: normal 700 /* Bold */ /*15px/20px*/ 0.938rem/1.25rem var(--dizo-font-body);
    --dizo-subheading-2-letter-spacing: /*0.03px*/ 0.002rem /* 0.20% */;
    /*** Typography > Text 1 ***/
    --dizo-text-1-font: normal 700 /* Bold */ /*17px/20px*/ 1.063/1.25rem var(--dizo-font-body);
    --dizo-text-1-letter-spacing: /*0.034px*/ 0.002rem /* 0.20% */;
    /*** Typography > Text 2 ***/
    --dizo-text-2-font: normal uppercase 600 /* SemiBold */ /*12px/12px*/ 0.75rem/0.75rem var(--dizo-font-body);
    --dizo-text-2-letter-spacing: /*0.18px*/ 0.011rem /* 1.5% */;
    /*-------- Palette colors --------*/
    /* Palette colors: Cool Grey */
    --dizo-color-cool-grey-200: #c1c7c7;
    /* Palette colors: Deep Ocean */
    --dizo-deep-ocean-700: #122632;
    /* Palette colors: Neutral palette */
    --dizo-color-dusty: #87797C;
    --dizo-color-licorice: #605356;
    /* Palette colors: Primary palette */
    /* Palette colors: Swiss Coffee */
    --dizo-color-swiss-coffee-200: #eee9ea;
    --dizo-color-swiss-coffee-800: #777273;
    /* Palette colors: Warm Grey */
    --dizo-color-warm-grey-800: #413e3f;
    /* Font */
    --font-size-base: 16px;
    /* Heading 1 */
    --dizo-heading-1-font: normal 800 min(7vw,51px)/min(10vw,56px) var(--dizo-font-title);
    --dizo-heading-4-font: normal 900 min(5vw,32px)/min(8vw,36px) var(--dizo-font-title);
    /* MDB */
    --mdb-border-radius-sm: 0;
}




/** 
 * Selectors
    ========================================================================== */


*[data-bs-target="#access-restricted"] {
    cursor: pointer;
}


/**
 * 1. PBI 1160 (enlaces monocromo)
 * 2. PBI 2416 (aumento de contraste)
 */
a {
    --mdb-link-color-rgb:
    /*59, 113, 202*/
    /* 113, 113, 113 */ /* 1 */
    59, 59, 59 /* 2 */;
}

    a:hover {
        color: var(--mdb-link-color-rgb);
    }


dd,
dl {
    margin-bottom: 0;
}

form {
    --sb-active-color: #d24b73;
    --sb-bg-color: var(--dizo-color-bluewood);
}

h1, h2, h3, h4, h5, h6 {
    font-weight: bold;
    text-wrap: balance;
}

h1 {
    font-family: initial;
}


/**
 * Bug 1626 (cambio de padding por margin para evitar el scrolling up)
 *  fuente:  https://stackoverflow.com/questions/65929206/sticky-header-input-scrolls-on-input
 */
html {
    scroll-margin-top: 10rem;
}

input,
select {
    --mdb-surface-color: var(--dizo-color-gondola);
    --mdb-border-radius: 0;
    font: var(--dizo-button-font);
    font-variation-settings: var(--dizo-button-font-variation-settings);
    letter-spacing: var(--dizo-button-letter-spacing);
}

    select[multiple] {
        border-color: var(--mdb-border-color);
        color: white;
    }

strong {
    font-weight: 600;
}

.modal-content.rounded {
    --mdb-border-radius: 1rem;
}

.modal-title {
    font-size: 1.25rem;
    text-wrap: balance;
}

.text-dark {
    color: #000 !important;
}

.trigger {
    display: none;
}



/** 
 * Button
 *
 * @markup
    <input class="btn-[primary|secondary]" />
    ========================================================================== */


.btn {
    --mdb-border-radius: 1rem;
    --mdb-btn-color: var(--dizo-color-white) /*var(--dizo-color-warm-grey-800)*/;
    --mdb-btn-active-color: var(--mdb-btn-color);
    --mdb-btn-disabled-bg: var(--mdb-btn-active-bg);
    --mdb-btn-focus-bg: var(--mdb-btn-active-bg);
    --mdb-btn-hover-bg: var(--mdb-btn-active-bg);
    --mdb-btn-hover-color: var(--mdb-btn-active-color);
    color: #000 !important;
}

.btn-primary {
    --mdb-btn-bg: var(--dizo-color-accent-color-bg) /*var(--dizo-color-opera)*/;
    --mdb-btn-active-bg: var( /*--dizo-color-opera-700*/ --dizo-color-accent-color);
    --mdb-btn-color: currentColor;
    /*color: var(--dizo-color-white) !important;*/
}

.btn-outline-primary {
    --mdb-btn-color: var(--dizo-color-opera);
    --mdb-btn-outline-border-color: currentColor;
}

.btn-outline-secondary {
    --mdb-btn-color: var(--dizo-color-accent-color);
    border-color: currentColor;
}

.btn-secondary {
    --mdb-btn-bg: var(--dizo-color-bluewood);
    --mdb-btn-active-bg: var(--dizo-color-deep-ocean);
}




/** 
 * Cookie Consent (.[cm|mp]-wrapper)
 *
 * @markup
    <div>
         <div class="cm-wrapper">
            <div class="cm">
                <div class="cm__body">
                    <button class="cm__btn">[svg]</button>
                    <div class="cm__texts">
                        <h2 class="cm__title">[text]</h2>
                        <p class="cm__desc">[text]</p>
                    </div>
                    <div class="cm__btns"
                        <div class="cm__btn-group">
                            <button class="cm__btn">
                                <span>[text]</span>
                            </button>
                        </div>
                        <div class="cm__btn-group">
                            <button type="button" class="cm__btn[--secondary]">
                                <span>[text]</span>
                            </button>
                        </div>
                    </div>
                </div>
                <div class="cm__footer">
                    <div class="cm__links">
                        <div class="cm__link-group">
                            <a href="[url]">[text]</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="pm-wrapper">[pm]</div>
    ========================================================================== */


.btn[data-cc="show-preferencesModal"] {
    text-transform: none;
}


/*
 * Es necesario que esté antes de `.cm__btn--secondary` y `.cm__btn--close` por la precedencia.
 */
.cm__btn,
.pm__btn {
    --cc-btn-primary-bg: var(--dizo-color-accent-color-bg);
    --cc-btn-primary-border-color: transparent;
    --cc-btn-primary-color: #000;
    --cc-btn-primary-hover-bg: var(--dizo-color-accent-color);
    --cc-btn-primary-hover-border-color: var(--cc-btn-primary-hover-bg);
}

/*
 * Es necesario que esté después de `.cm__btn` y antes de `.cm__btn--close` por la precedencia.
 */
.cm__btn--secondary,
.pm__btn--secondary {
    --cc-btn-secondary-bg: transparent;
    --cc-btn-secondary-border-color: var(--dizo-color-accent-color);
    --cc-btn-secondary-hover-bg: var(--cc-btn-primary-hover-bg);
    --cc-btn-secondary-hover-border-color: var(--dizo-color-accent-color);
    --cc-btn-secondary-hover-color: var(--cc-btn-primary-hover-color);
}

.cm__footer {
    background-color: #242423;
}


/*
 * Es necesario que esté después de `.cm__btn` y `.cm__btn--secondary` por la precedencia.
 */
.cm__btn--close,
.pm__close-btn {
    --cc-btn-primary-bg: transparent;
    --cc-btn-primary-color: var(--dizo-color-warm-grey-800);
    --cc-btn-primary-hover-bg: transparent;
    --cc-btn-primary-hover-color: var(--cc-btn-primary-color);
}

.cm__footer {
    --cc-footer-bg: var(--dizo-deep-ocean-700);
}

.cm__link-group a {
    background: none !important;
    color: var(--cc-btn-primary-color) !important;
}

.pm__close-btn {
    --cc-btn-secondary-bg: transparent;
    --cc-btn-secondary-border-color: transparent;
}

.toggle__icon {
    --cc-toggle-off-bg: var(--dizo-color-danger);
    --cc-toggle-on-bg: var(--dizo-color-success);
}

.section__toggle:checked:disabled ~ .toggle__icon {
    --cc-toggle-readonly-bg: var(--dizo-color-green-apple-300) !important;
}

.section__toggle:not(:checked):disabled ~ .toggle__icon {
    --cc-toggle-readonly-bg: var(--dizo-color-cadmium-red-300) !important;
}



/** 
 * Skip-link
 *
 * @markup
    <a class="skip-link" href="#main-content">[containt]</a>
    ========================================================================== */


.skip-link {
    position: absolute;
    z-index: 9999;
}




/** 
 * Main content > Page Detail > Expandable Content (.expandable)
 *
 *  PBI 1451
 *
 * BEM
 *  expandable
 *      __trigger
 *      __actuator
 *
 * @markup
    <article class="expandable">
        <input class="expandable__trigger" id="[text]" type="checkbox" />
        <label class="expandable__actuator" for="[.expandable__trigger#id]">[text]</label>
    </article>
    ========================================================================== */


.expandable {
    max-height: /* 20rem PBI 1467 */ 22.5rem;
    overflow: hidden;
    position: relative;
}

.expandable__actuator {
    cursor: pointer;
    display: flex;
    font-size: 0;
    justify-content: center;
    height: /*1.75rem*/ 2rem;
    inset: auto 0 0;
    position: absolute;
    z-index: 1;
}

    .expandable__actuator::after {
        border: solid;
        border-width: 0.15rem 0.15rem 0 0;
        content: '';
        display: block;
        height: 0.75rem;
        transform: translateY(0.5rem) rotate(135deg);
        transform-origin: 40% 75%;
        width: 0.75rem;
    }

    .expandable__actuator::before {
        background: #fbfafb;
        content: '';
        inset: 0;
        -webkit-mask-image: linear-gradient(transparent 25%, black 75%);
        mask-image: linear-gradient(transparent 25%, black 75%);
        position: absolute;
    }

.expandable:has(.expandable__trigger:checked) {
    max-height: 100%;
    overflow: visible;
}

.expandable__trigger:checked ~ .expandable__actuator {
    bottom: auto;
    height: 1.25rem;
}

    .expandable__trigger:checked ~ .expandable__actuator::after {
        transform: rotate(315deg);
        transform-origin: 135% 85%;
    }

    .expandable__trigger:checked ~ .expandable__actuator::before {
        display: none;
    }




/** 
 * Page structure
 *
 * @markup
    <html>[page]</html>
    ========================================================================== */


html {
    font-size: var(--font-size-base);
    min-height: 100%;
    position: relative;
}




/** 
 * Page (.page)
 *
 *  BEM
 *      page
 *          __header
 *          __main
 *          __footer
 *
 * @markup
    <html>
        <body class="page">
            <header class="page__header">[header]</header>
            <div class="page__main main">[main-content]</div>
            <footer class="page__footer">[footer]</footer>
        </body>
    </html>
    ========================================================================== */


.page {
    --mdb-body-color: /*var(--dizo-color-warm-grey-800)*/ #000;
    display: flex;
    flex-direction: column;
    font: var(--dizo-body-font);
    font-optical-sizing: auto;
    letter-spacing: var(--dizo-body-letter-spacing);
    min-height: 100dvh;
}

@media screen {
    .page {
        background-color: #fbfafb;
    }
}




/** 
 * Page > Header    (.header)
 *
 * BEM
 *  header
 *      __brand
 *      __main
 *          __title
 *          __security
 *      __searcher
 *      __nav
 *
 * @markup
    <header class="header">
        <div class="container">
            <div class="header__brand">[navbar-brand]</div>
            <div class="header__main">
                <span class="header__title">[text]</span>
                <nav class="header__security">[header-security]</nav>
            </div>
            <form class="header__searcher">[header-searcher]</form>
        </div>
        <div class="off-canvas">[off-canvas]</div>
        <nav class="header__nav">
            <div>[nav]</div>
        </nav>
    </header>
    ========================================================================== */


.header {
    background-color: var(--dizo-color-white);
    font: var(--dizo-caption-1-font);
    font-variation-settings: var(--dizo-caption-1-font-variation-settings);
    letter-spacing: var(--dizo-caption-1-letter-spacing);
    position: sticky; /* PBI 1519 */
    top: 0; /* PBI 1519 */
    z-index: 1021; /* PBI 1519 (para estar por encima del menú de navegación en la ficha) */
}

    .header > .container {
        align-items: center;
        display: grid;
        gap: 0 0.5rem;
        grid-template-columns: max-content 1fr;
        padding-block: 0.5rem;
    }

.header__brand {
    grid-row: 1 / 3;
}

.header__main {
    align-items: center;
    flex-grow: 1;
    flex-wrap: wrap;
    grid-row: 1 / 3;
}

    .header__main a:hover {
        color: rgb(10, 80, 180) !important;
    }

.header__nav {
    background-color: var(--mdb-gray) !important;
    color: var(--dizo-color-alabaster);
    font-size: 0.75rem;
}

.header__searcher {
    grid-column: 1 / 3;
    width: 100%;
}

.header__title {
    flex-grow: 1;
    font: var(--dizo-subheading-2-font);
    letter-spacing: var(--dizo-subheading-2-letter-spacing);
}

.header-searcher__loupe {
    max-height: 0.75rem;
}




/** 
 * Page > Header > Brand  (.navbar-brand)
 *
 * BEM
 *  navbar-brand
 *      __link
 *          __logo
 *
 * @markup
    <div class="navbar-brand">
        <a class="navbar-brand__link">
            <img class="navbar-brand__logo--[iccmu|ucm]" />
        </a>
        [navbar-brand__link]
    </div>
    ========================================================================== */


.navbar-brand {
    font: var(--dizo-heading-6-font);
    letter-spacing: var(--dizo-heading-6-letter-spacing);
}

    .navbar-brand * {
        display: block;
    }


/**
 * PBI 2427 Task 2458
 */
.navbar-brand__link {
    align-items: center;
    cursor: pointer;
    display: flex;
    height: 6rem;
    justify-content: center;
    overflow: hidden;
    width: 5.25rem;
}


/**
 * 1. PBI 2427 Task 2440 (logos más grandes en encabezado)
 * 2. PBI 2427 Task 2448 (logos un poco más pequeños)
 */
.navbar-brand__logo {
    height: /*3rem*/ 
            /* 6rem */ /* 1 */ 
            70% /* 2 */;
}


/**
 * 1. PBI 2427 Task 2440 (logos más grandes en encabezado)
 * 2. PBI 2427 Task 2448 (logos un poco más pequeños)
 */
.navbar-brand__logo--ucm {
    clip-path: inset(0% 0% 35% 0%); /* 2 */
    transform: translateY(31%) scale(1.7); /* 2 */
    /*
    1
    max-height: 6rem;
    max-width: 8rem;
    transform: scale(1.65) translate(0, 1.1rem);
    */
}




/** 
 * Page > Header > Navigation  (.nav)
 *
 *
 * @markup
    <ul class="nav">
        [nav-item]
        [nav-item]
    </ul>
    ========================================================================== */




/** 
 * Page > Header > Navigation > Item  (.nav-item)
 *
 * @markup
    <ul class="nav">
        <li class="nav-item">
            <a class="nav-link">[text]</a>
        </li>
    </ul>
    ========================================================================== */


.nav {
    width: 100%;
}

    .nav > .nav-item > .nav-link {
        --mdb-emphasis-color-rgb: 251, 251, 251;
        text-transform: uppercase;
    }




/** 
 * Page > Header > Navigation > Subitem  (.dropdown)
 *
 * @markup
    <li class="nav-item">
        <div class="dropdown nav-link">
            <a class="dropdown-toggle[ show]" data-bs-toggle="dropdown" aria-expanded="[false|true]">[text]</a>
            <ul class="dropdown-menu[ show]">
                <li>
                    <a class="dropdown-item" href="[url]">[text]</a>
                </li>
                [li]
            </ul>
        </div>
    </li>
    ========================================================================== */


.header__nav .dropdown-item::after {
    border-bottom: 0.1rem solid transparent;
    content: '';
    display: block;
}

.header__nav .dropdown-item:hover::after {
    border-bottom-color: var(--dizo-color-accent-color);
}

.header__nav .dropdown-menu {
    inset: auto auto 0px 0px;
    margin: 0px;
    position: absolute;
    text-transform: none;
    transform: translate3d(0px, -34px, 0px);
}




/** 
 * Page > Header > Searcher  (.header-searcher)
 *
 * @markup
    <form class="header-searcher">

        <!-- Inicial -->
        [
            <select>[option]</select>
            <label class="select-label">[text]</label>
        ]
        <!-- Procesado -->
        [<div class="header-searcher__select-multiple">[select-wrapper]</div>]

        <input class="header-searcher__search" />
        <button class="header-searcher__trigger">
            <img class="header-searcher__loupe" />
        </button>
        <a class="header-searcher__index">[text]</a>
        <input type="hidden" />
    </form>
    ========================================================================== */



.header-searcher .form-select {
    max-width: fit-content;
}

.header-searcher > .select-label {
    display: none;
}

.header-searcher .select-wrapper .select-label:not(.active) {
    line-height: 2;
    margin: 0;
}

.header-searcher__index {
    align-self: center;
    color: #000;
}

.header-searcher__search {
    border-right-width: 0;
    flex-grow: 1;
    padding-block: 1.075rem !important;
}

.header-searcher__trigger {
    background-color: var(--dizo-color-accent-color-bg);
    border: var(--mdb-border-width) solid var(--mdb-border-color);
    border-left-width: 0;
    border-radius: 0 0.25rem 0.25rem 0 !important;
    padding-top: .55rem !important;
    width: 2.5rem;
}

    .header-searcher__trigger:not(:focus):not(:hover) .header-searcher__loupe {
        filter: invert(1);
    }    


    /**
     * PBI 2416 (cuando el checkbox oculto recibe el foco mediante TAB)
     */
    .header-searcher:has(#filtro-secciones:focus-visible) label[for="filtro-secciones"] {
        border-radius: 4px;
        outline: 2px solid;
        outline-offset: 2px;
    }

    .header-searcher > .select-wrapper {
        display: none;
    }

    .header-searcher:has(#filtro-secciones:checked) .select-wrapper {
        display: block;
    }




/** 
 * Page > Header > Searcher > Select multiple  (.header-searcher)
 *
 * @markup
    <div class="select-wrapper">
        <div class="form-outline">
            <input class="form-control select-input">
            <label class="form-label select-label">[text]</label>
            <span class="select-arrow"></span>
            <div class="form-notch">
                <div class="form-notch-leading"></div>
                <div class="form-notch-middle"></div>
                <div class="form-notch-trailing"></div>
            </div>
        </div>
        <select class="form-select searcher__input select-initialized">
            <option value="[text]">[text]</option>
        </select>
    </div>
    ========================================================================== */


.header__searcher .select-wrapper,
.header-searcher .select-wrapper .select-label,
.header-searcher .select-input,
.header-searcher__search {
    font-size: 0.775rem;
}

.header-searcher__loupe {
    --mdb-btn-color: var(--mdb-btn-hover-color);
    box-shadow: var(--mdb-box-shadow)
}

.header-searcher .form-notch {
    background: none;
}

.header-searcher .select-label.active {
    --mdb-form-outline-select-label-color: var(--mdb-surface-color);
}

.header__searcher .select-wrapper {
    min-width: 11rem;
}

.select-label.active {
    transform: translateY(-0.5rem) scale(0.8) !important;
}

.header-searcher .form-select.searcher__input {
    display: none;
}




/** 
 * Form select wrapper > Container  (.select-dropdown-container)
 *
 * @markup
    <div class="select-dropdown-container">
        <div tabindex="0" class="select-dropdown open">
            <div class="input-group">
                <input class="form-control select-filter-input" role="searchbox" type="text">
            </div>
            <div class="select-options-wrapper" style="max-height: 190px;">
                <div class="select-options-list">
                    <div class="select-option[ select-all-option][ selected]" role="option" aria-selected="true" style="height: 38px;">
                        <span class="select-option-text">
                            <input type="checkbox" class="form-check-input" checked="true">
                            [text]
                        </span>
                    </div>
                    <div class="select-option selected" data-mdb-id="option-386507" role="option" aria-selected="true" aria-disabled="false" style="height: 38px;">
                        <span class="select-option-text">
                            <input type="checkbox" class="form-check-input" />
                            [text]
                        </span>
                    </div>
                </div>
            </div>
        </div>
    </div>
    ========================================================================== */


/**
 * PBI 1406	Task 1415 ("Todos" en vez de "Select All")
 */
.select-all-option {
    position: relative;
}

    .select-all-option .select-option-text::before {
        background-color: rgba(255, 255, 255);
        content: 'Todos';
        display: block;
        left: 2.7rem;
        position: absolute;
        right: 1rem;
    }

    .select-all-option:hover .select-option-text::before {
        background-color: var(--mdb-form-outline-select-option-hover-not-disabled-bg);
    }

    .select-all-option.selected .select-option-text::before {
        background-color: rgb(196, 212, 236);
    }

    .select-all-option.selected:hover .select-option-text::before {
        background-color: rgb(163, 187, 227);
    }

.select-input.focused {
    font: var(--dizo-button-font);
    font-variation-settings: var(--dizo-button-font-variation-settings);
    letter-spacing: var(--dizo-button-letter-spacing);
}

.select-option {
    height: auto !important;
}

.select-option-text {
    font: var(--dizo-label-font);
    font-size: 0.775rem;
    font-variation-settings: var(--dizo-label-font-variation-settings);
    letter-spacing: var(--dizo-label-letter-spacing);
    line-height: 2;
}

    .select-option-text .form-check-input {
        height: 1rem;
        width: 1rem;
    }




/** 
 * Page > Header > Security   (.header-security)
 *
 * BEM
 *  header-security
 *      __action
 *
 * @markup
    <div class="header-security">
        <* class="header-security__action">[dropdown|sign-in|user]</*>
        <button>[svg]</button>
    </div>
    ========================================================================== */


.header__security {
    --mdb-gutter-x: 0;
    align-items: center;
    flex-wrap: nowrap;
}

    .header__security::before {
        content: '';
        border: 1px solid var(--mdb-secondary-border-subtle);
        height: 1.25rem;
        margin-inline: 1rem;
    }

    .header__security > .nav-link {
        width: auto;
    }

.navbar-toggler-label,
.offcanvas-title {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: 500ms max-width;
    white-space: nowrap;
}


.offcanvas-title {
    padding-left: 1.25rem;
}




/** 
 * Page > Header > Security > Action > User (.user)
 * 
 *  BEM
 *      user
 *          __name
 *          __icon
 *
 * @markup
    <a class="user">
        <span class="user__name">[text]</span>
        <svg class="user__icon">[text]</svg>
    </a>
    ========================================================================== */


/**
 * 1. PBI 2416 (accesibilidad: control de aspecto por cambio a botón)
 */
.user {
    align-items: center;
    background-color: transparent; /* 1 */
    border: none; /* 1 */
    display: flex;
    gap: 0.5rem;
    height: 1.25rem;
    letter-spacing: var(--dizo-label-letter-spacing);
    margin-right: 0.5rem;
}

.user__icon {
    height: 1em;
    width: 1em;
}


/**
 * 1. PBI 2427 Task 2440 (ajustes por cambio de tamaño de los logos)
 */
.user__name {
    --width-limit-user-name: 14rem; /* 1 */
    max-width: /*18ch*/ calc(100vw - var(--width-limit-user-name)) /* 1 */;
    overflow: hidden;
    text-overflow: ellipsis;
}

    .user__name:empty::before {
        content: 'Iniciar sesión';
    }

@media (min-width: 768px) {
    .header__security:has(.user__name:empty) > button {
        display: none; /* El botón se debe ocultar exclusivamente cuando no se está en versión mobile (min-width: 768px) y el usuario no está autenticado :has(.user__name:empty) */
    }
}




/** 
 * Page > Header > Security > Action > Sign In   (.sign-in)
 *
 * BEM
 *  sign-in
 *      __label
 *
 * @markup
    <a class="sign-in">
        <img />
        <span class="sign-in__label">[sign-in]</span>
    </a>
    ========================================================================== */


.sign-in__label {
    color: /*var(--dizo-color-warm-grey-800)*/ #000;
    /*display: none;*/
}

@media (min-width < 576px) {
    .sign-in__label {
        display: block;
    }
}




/** 
 * Page > Header > Security > Action > Logged  (.navbar-toggler-label)
 *
 * @markup
    <div class="header-security__action">
        <span class="navbar-toggler-label">
            <img />
            <span>[text]</span>
        </span>
        <button class="nav-link">[svg]</button>
    </div>
    ========================================================================== */


.header-security__action {
    border: 1px solid var(--dizo-color-accent-color);
    border-radius: 1em;
    cursor: pointer;
    padding-inline: 1rem;
}

    .header-security__action svg {
        height: 1em;
        width: 1em;
    }

    .header-security__action .nav-link {
        align-items: center;
        display: grid !important;
        flex-grow: 1;
        grid-template-columns: 1fr auto;
    }

@media (min-width: 576px) {
    .navbar-toggler-label {
        display: flex;
    }
}




/** 
 * Page > Main content > Card (.card)
 *
 * @markup
    <div class="card">
        <img alt="[text]" src="[url]">
        <div class="card-body">
            <p class="card__type">
                <svg class="card__type-icon">[svg]</svg>
                [text]
            </p>
            <p>[text]</p>
        </div>
        <div class="card-footer">
            <a href="[url]">[text]</a>
        </div>
    </div>
    ========================================================================== */


.card__type {
    display: block;
    white-space: nowrap;
}

.card__type-icon {
    display: inline-block;
    fill: currentColor;
    height: 1em;
    transform: translateY(-0.1rem);
    width: 1em;
}

.stretched-link::after {
    cursor: pointer;
}




/** 
 * Footer   (.footer)
 *
 *  BEM
 *      footer
 *          __info
 *
 * @markup
    <footer class="footer">
        [deepmusic1]
        <div>[footer__info]</div>
    </footer>
    ========================================================================== */


.footer {
    background-color: #242423;
    color: var(--dizo-color-alabaster);
    font: var(--dizo-label-font);
    font-variation-settings: var(--dizo-label-font-variation-settings);
    letter-spacing: var(--dizo-label-letter-spacing);
}

.footer__call-to-action {
    background-color: #ede9e6;
    color: var(--dizo-color-warm-grey-800);
}

    .footer__call-to-action h2 {
        font-weight: bold;
    }

    .footer__call-to-action .card {
        background-color: transparent;
    }

.footer__help a {
    border: 1px solid var(--dizo-color-accent-color);
    background-color: transparent;
    color: var(--mdb-dark);
}

.footer__help object {
    border: 1px solid var(--dizo-color-accent-color);
    border-radius: 1rem;
}

.footer__info {
    background-color: #050505;
    font-size: small;
    padding-inline: 1rem;
}

.footer__section-list {
    list-style: none;
}

    .footer__section-list li {
        padding-bottom: 0.5rem;
    }

.footer__subscription a {
    text-decoration: underline;
}

.footer__subscription button {
    color: inherit !important;
    text-transform: none;
}

.footer__subscription .form-control {
    background-color: transparent;
}




/** 
 * Page > Footer > DEePMusic1   (.deepmusic1)
 *
 *  PBI 1512
 *
 * BEM
 *  deepmusic1
 *      __disclaimer
 *      __logo
 *      __iccmu
 *
 * @markup
    <div class="deepmusic1">
        <div class="deepmusic1__disclaimer">[text]</div>
        <div class="deepmusic1__logo">[footer__institution]</div>               
        <div class="deepmusic1__iccmu">[text]</div>
    </footer>
    ========================================================================== */


.deepmusic1__iccmu {
    font-size: 0.5rem;
    text-align: center;
}

.deepmusic1__logo img {
    max-width: 100%;
    object-fit: scale-down;
}

.deepmusic1__logo .logo-prtr {
    max-height: 6em;
    object-fit: cover;
}

.footer__institution {
    background: center no-repeat;
    background-size: contain;
    height: 4rem;
}

.footer__institution--cm {
    aspect-ratio: /*1 / 1.25*/ 1 / 1.35;
    background-image: url(/img/footer/cam.png);
    background-size: 2.95rem;
}

.footer__institution--iccmu {
    aspect-ratio: 16 / 1;
    background-image: url(/img/footer/iccmu-leyenda-horizontal.svg);
    background-size: 10rem;
    margin-top: 1rem;
    max-width: 10rem;
    transform: scale(1.25);
}

@media (min-width: 1200px) {
    div:has(> .footer__patreons) {
        transform: translateY(-2rem);
    }

    .footer__institution--iccmu {
        transform: scale(1.25) translateY(-1.5rem);
    }
}

.footer__institution--inaem {
    aspect-ratio: 16 / 2.82;
    background-image: url(/img/footer/inaem.webp);
}

.footer__institution--prtr {
    aspect-ratio: /*16 / 2.58*/ 16 / 2.6;
    background-image: url(/img/footer/prtr.png);
    background-size: 25rem;
    filter: invert(1);
}


/**
 *  PBI 2382
 *  1. Ajuste de tamaño.
 */
.footer__institution--ucm {
    aspect-ratio: /*14 / 4.75*/ 14 / 5.05; /* 1 */
    background-image: url(/img/footer/ucm.svg);
    background-size: 11rem; /* 1 */
    filter: invert(1);
}




/** 
 * Page > Footer > Information   (.footer-info)
 *
 * @markup
    <div class="footer-info">[text]</div>
    ========================================================================== */


.deepmusic1 a,
.footer-info a {
    color: var(--dizo-color-alabaster);
    display: inline-block;
}


/**
 * PBI 2427	Task 2437 Interlineado reducido.
 */
.footer__contact {
    line-height: 1.25;
}

.footer__media {
    transform: translateX(-0.5rem);
}

.footer__media_facebook,
.footer__media_linkedin,
.footer__media_twitter,
.footer__media_youtube {
    aspect-ratio: 1 / 1;
    background: center no-repeat;
    display: inline-block;
    height: 1rem;
}

.footer__media_facebook {
    background-image: url(/img/footer/redes-sociales/facebook.svg);
    background-size: 1rem;
}

.footer__media_linkedin {
    background-image: url(/img/footer/redes-sociales/linkedin.svg);
    background-size: 1.5rem;
}

.footer__media_twitter {
    background-image: url(/img/footer/redes-sociales/x.svg);
    background-size: 1.7rem;
}

.footer__media_youtube {
    aspect-ratio: 2 / 1.4;
    background-image: url(/img/footer/redes-sociales/youtube.svg);
    background-size: 1.4rem;
    filter: brightness(0) invert(1);
}

.footer__nav,
.footer__section-list {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}

.footer__nav {
    margin-top: 2rem;
}

.footer__section-list {
    padding-left: 0;
}

    .footer__section-list a {
        color: inherit;
    }

    .footer__section-list button {
        background: transparent;
        border: none;
        color: var(--dizo-color-white) !important;
        padding: 0 !important;
    }






/** 
 * SM
 *      ···········|——————————————————————>   SM           (576px ⋜ screen)
    ========================================================================== */


@media (min-width: 576px) {
    /**
     * PBI 2427 Task 2440 (ajustes por cambio de tamaño de los logos)
     */
    .user__name {
        --width-limit-user-name: calc(29rem + 25vw);
        min-width: 7rem;
    }
}






/** 
 * MD
 *      ·················|—————————————————>   MD           (767px < screen)
    ========================================================================== */


@media (min-width: 768px) {

    /** 
     * MD > Page > Header    (.header)
        ========================================================================== */


    .header__main {
        grid-row: 1;
    }

    .header__searcher {
        grid-column: 2;
        grid-row: 2;
    }

    .header__title {
        font: var(--dizo-subheading-1-font);
        font-size: 2rem;
        font-weight: normal;
        letter-spacing: var(--dizo-subheading-1-letter-spacing);
    }


    /**
     * PBI 2427 Task 2440 (ajustes por cambio de tamaño de los logos)
     */
    .user__name {
        --width-limit-user-name: 70rem;
        min-width: 4rem;
    }
}




/** 
 * <MD
 *      <----------------|··················   <MD          (screen < 768px)
    ========================================================================== */


@media (width < 576px) {

    .header > .container {
        flex-wrap: wrap;
    }
}
