/*Fonts: Ulagadi, Ulagadi Light, Ulagadi Semi Bold
*   En este apartado se pueden agregar los distintos tipos de letra
*   que se deseen utilizar. En este caso, se puede tomar de ejemplo
*   la colocación del tipo de letra Ulagadi
*/
@font-face{
    font-family: "Ulagadi";
    font-style: normal;
    font-weight: 600;
    src: url("../fonts/UlagadiSansSemiBold.ttf");
}

@font-face{
    font-family: "Ulagadi";
    font-style: normal;
    font-weight: 300;
    src: url("../fonts/UlagadiSansLight.ttf");
}

@font-face {
    font-family: "Ulagadi";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/UlagadiSansRegular.ttf");
}

/*variables de normalización*/
/*
*   En este apartado se colocan las variables de color, 
*   los tamaños de letras(en REM por accesibilidad),
*   los tamaños de los interlineados, y el tipo de letra
*   'genérico' que utilizará todo el documento
*/
*{
    /*#########################################*/
    /*###     Variables de tipo de letra    ###*/
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 300;
    --font-titulo: Arial, Helvetica, sans-serif;
    --font-parrafo: Arial, Helvetica, sans-serif;
    --font-input: Arial, Helvetica, sans-serif;
    /*#########################################*/
    /*###       Variables de Colores        ###*/
    /*#########################################*/
    /*-Formato: --(nombre_del_color): (código HEX, RGB, RGBA, etc.);*/
    /*menú*/
    --main-color: #103928;
    --main-alt-color: #43cd66;
    --main-alt-color-05: rgba(67, 205, 102,0.5);
    --main-alt-color-075: rgba(67, 205, 102,0.75);
    --surface-color: rgba(230, 230, 230, 1);
    --menu-hover-color: rgb(20, 20, 20);
    --menu-subitem-color: rgb(20, 20, 20);/*Recomendado: white*/
    --submenu-item-hover-color: rgba(0, 0, 0,0.9);/*recomendado black o white*/
    --nav-bg-transparente: rgb(255 255 255 / 66%);
    /* --nav-bg-transparente: linear-gradient(45deg, var(--surface-color), #74c42759); */
    --nav-bg-azul: hsl(207.69deg, 80.54%, 20.58%);
    /*textos*/
    --text-title-color: rgb(31, 31, 31);/*para h1's, etc*/
    --text-primary-color: rgb(20, 20, 20);/*Para p's, ul's, etc*/
    --text-menu-item-color: rgb(61, 61, 61);/*Para items del menú*/
    --text-footer-color: rgba(240, 240, 240, 1);/*color de texto píe de página*/
    --text-btn-color: rgb(255,255,255);/*Recomendado: white*/
    --text-buscador-color: rgba(240, 240, 240, 1);
    /*input*/
    --text-input-color: #0b2b1d;
    /*otros componentes*/
    --icon-fb: rgba(0, 0, 0,0.9);
    --icon-ig: rgba(0, 0, 0,0.9);
    --icon-yt: rgba(0, 0, 0,0.9);
    --icon-tk: rgba(0, 0, 0,0.9);
    --icon-normal: var(--text-footer-color);/*Por si se quiere cambiar el color normal de los íconos de las redes*/
    --icon-bg-hover-color: #43cd66;
    --icon-normal-hover-color: rgba(0, 0, 0,0.9);
    /*Barra lateral*/
    --scroll-bg-color: white; /*recomendado: white*/
    --scroll-thumb-color: rgb(170, 170, 170);/*recomendado: rgb(170,170,170)*/
    --scroll-thumb-hover-color: rgba(90,90,90,0.9);/*recomendado: rgb(120,120,120)*/
    --input-focus-border-color: #103928;
    --input-focus-shadow-color: rgba(16, 57, 40,0.25); /*rgba(44,58,140,0.25)*/
    --lightbox-bg-color: rgba(240, 240, 240, 0.9);/*recomendado: white*/
    /*#########################################*/
    /*###       Variables de Letras         ###*/
    /*#########################################*/
    /*Tomando de base que por defecto 1rem es igual a 16px, 
    /*se deben calcular los análogos en píxeles, ya que esto es más
    sencillo de manejar. Además, al utilizar rem, estamos asegurando
    una mayor accesibilidad para cuando las personas le hagan zoom
    a la página o cambien el tamaño de letra del navegador*/
    --txt_titulo: 1.6875rem;/*27px base, se escalará dependiendo de la pantalla*/
    --txt_parrafo: 1.5rem;/*24px*/
    --txt_titulos-menu : 1.25rem;/*el del fin es 20px aprox.*/
    --txt_subitems-menu : 1.1875rem;/*En el fin, es 19px, en teoría, uno menus que el título*/
    --txt_botones: 1.125rem;/*aprox es de 18px*/
    --txt_buscador: 1rem;/*16px*/
    --txt_leyenda-imagen: 1.125rem;/*18px base*/
    --txt_labels-form: 1.125rem;
    --txt_networks: 2rem;
    --txt_footer: 1.35rem;
    /*#########################################*/
    /*###     Variables de Interlineado     ###*/
    /*#########################################*/
    --txt_interlineado: 1.2;/*Recordemos que es un line height, por lo que no se puede settear de otra forma*/

    /*#########################################*/
    /*###         Otras variables           ###*/
    /*#########################################*/
    /*bordes, sombras y outlines*/
    --border-radius-size:10px;
    --box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.1);
    --box-shadow-main-color: 2px 2px 20px 0px rgba(0, 0, 0, 0.15);
    --box-shadow-dark-color: 2px 2px 20px 0px rgba(0, 0, 0, 0.15);
    --outline: 3px solid var(--menu-hover-color);
    /*transiciones*/
    --transition-all-02s: all 0.2s ease-in-out;
    --transition-all-05s: all 0.5s ease-in-out;
    --transition-all-1s: all 1s ease-out;
    --transition-trompoman: bottom 2s ease-in-out, transform 1.5s ease-in-out, opacity 2s ease-in-out, rotate 2s ease-in-out;
}
/*------------------------------------------------------------
    Algunas Clases de normalización para componentes comunes
------------------------------------------------------------*/
.titulo-contenido{
    font-size: var(--txt_titulo);
    font-weight: 600;
    line-height: var(--txt_interlineado);
    color: var(--text-title-color);
    margin-bottom: 0;
}

.parrafo-contenido{
    font-size: var(--txt_parrafo);
    font-weight: 300;
    line-height: var(--txt_interlineado);
    color: var(--text-primary-color);
}

.titulo-menu{
    font-size: var(--txt_titulos-menu);
    font-weight: 300;
    line-height: var(--txt_interlineado);
    color: var(--text-menu-item-color);
    /*text-transform: uppercase;*/
}

.subtitulo-menu{
    font-size: var(--txt_subitems-menu);
    font-weight: 300;
    line-height: var(--txt_interlineado);
    color: var(--menu-subitem-color);
}

.texto-footer{
    font-size: var(--txt_footer);/*1 rem = 16px*/
    font-weight: 300;/*light*/
    line-height: var(--txt_interlineado);
    color: var(--text-footer-color);
}

.leyenda-imagen{
    font-size: var(--txt_leyenda-imagen);
    font-weight: 300;
    line-height: var(--txt_interlineado);
    color: var(--text-primary-color);
    text-align: justify;
}

.labels-formulario{
    font-size: var(--txt_labels-form);
    font-weight: 300;
    color: var(--text-primary-color);
    line-height: var(--txt_interlineado);
    /*cursor: pointer;*/
}

.texto-con-fondo{
    color: var(--text-btn-color);
    font-size: var(--txt_botones);
    border-radius: 0;
    background-color: var(--main-color);
    text-transform: uppercase;
    font-weight: 600;
    line-height: var(--txt_interlineado);
    padding-top: 0.25em;
    padding-bottom: 0.3em;
    padding-right: 0.4em;
    padding-left: 0.4em;
    border: 1px solid var(--main-color);
}

.botones{
    color: var(--text-btn-color);
    font-size: var(--txt_botones);
    background-color: var(--main-color);
    /* text-transform: uppercase; */
    text-align: center;
    font-weight: 600;
    line-height: 1;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    padding-right: 0.5em;
    padding-left: 0.5em;
    border: 1px solid var(--main-color);
    transition: all 0.5s ease-in-out;
    border-radius: var(--border-radius-size);
}

.botones:hover, .botones:focus{
    background-color: var(--main-alt-color-075);
    color: var(--main-color);
    border: 1px solid var(--main-color);
    box-shadow: var(--box-shadow-main-color);
}

.botones:disabled{
    background-color: var(--text-menu-item-color);
    border-color: var(--text-primary-color);
    color: var(--text-primary-color);
}

.botones:disabled:hover{
    background-color: var(--text-menu-item-color);
    border-color: var(--text-primary-color);
    color: var(--text-primary-color);
}

.input-field{
    font-family: var(--font-input);
    color: var(--text-input-color);
    font-weight: 300;
    line-height: var(--txt_interlineado);
    border-radius: 0;
    border-color: var(--text-primary-color);
    font-size: var(--txt_botones);
    border-radius: var(--border-radius-size);
}
/*Al estar usando BS5, usamos esta clase para los inputs, por eso debemos reescribir sus estilos*/
.form-control:focus {
    color: var(--main-color);
    font-weight: 600;
    background-color: var(--bs-body-bg);
    border-color: var(--input-focus-border-color);
    outline: 0;
    box-shadow: 0 0 0 0.25rem var(--input-focus-shadow-color);
}

.texto-buscador{
    font-size: var(--txt_buscador);
    font-weight: 300;
    line-height: var(--txt_interlineado);
    color: var(--text-buscador-color);
    background-color: var(--main-color);
}

.buscador-menu-item{
    padding: 0.4em 0.8em;
    cursor: pointer;
    border: 1px solid var(--text-buscador-color);
    transition: all 0.5s ease-in-out;
    text-decoration: none;
    border-radius: var(--border-radius-size);
    box-shadow: var(--box-shadow-dark-color);
}

.buscador-menu-item:hover,
.buscador-menu-item:focus{
    background-color: var(--text-buscador-color);
    border-color: var(--main-color);
    color: var(--main-color) !important;
}


.lightbox-caption{
    /*Clase usada por el componente de galería*/
    background-color: var(--lightbox-bg-color);
    color: var(--text-primary-color);
    font-weight: 300;
    font-size: var(--txt_leyenda-imagen);
    line-height: var(--txt_interlineado);
    border-radius: 0px 0px 10px 10px;
}

html {
    background-color: white;/*color o textura*/ 
    scrollbar-gutter: stable;
}

/*fix del overflow en x para las animaciones, estilos por defecto: 
padding de arriba para no topar con la navbar, altura mínima*/
main{
    overflow-x: hidden;
    min-height: 89.3vh;
    padding-top: 5.71rem;
}

/*utilidad para colocar puntero de manita*/
.cursor-pointer{
    cursor: pointer;
}
/*-----------------------------------------------------------
    Fin de las clases normalizadas para componentes comunes
-------------------------------------------------------------*/

/*-----------------------------------------------------------
    Ajustes para el menú, submenús y el megamenú
-------------------------------------------------------------*/

nav{
    /* background-color: var(--main-color); */
    background: var(--nav-bg-transparente);
}

header{
    position: relative;
}

header::before{
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(10px);
    box-shadow: var(--box-shadow-dark-color);
}

.navbar-nav{
    text-align: center;
    justify-content: space-evenly;
    width: 100%;
}

.navbar-nav .dropdown-menu {
    text-align: center;
}

.navbar-brand{
    padding-bottom: 0;
    padding-top: 0;
    border-radius: var(--border-radius-size);
    transition: background-color 1s ease-in-out, box-shadow 1s ease-in-out;
    /* background-color: rgba(255,255,255,0.1); */
}

.navbar-brand:is(:hover,:focus){
    /* --navbar-brand-focus-color: rgba(0,0,0,0.15);
    background-color: var(--navbar-brand-focus-color); */
    box-shadow: inset 3px 3px 15px #dbdbdb,
    inset -3px -3px 15px #fff;
}

.navbar-brand:after{
    content: "";
    display: block;
    position: fixed;
    bottom: -50%;
    right: 1%;
    /* background-color: blue; */
    background-image: url("../../img/Trompoman-cut.PNG");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    background-clip: border-box;
    /* mask-image: url("../../img/Vector\ 1.svg");
    mask-size: contain;
    mask-position: center center;
    mask-repeat: no-repeat; */

    aspect-ratio: 7/10;
    width: clamp(7rem,10vw,20rem);
    
    /* border: 3px dashed black; */
    opacity: 0;
    rotate: 15deg;
    transition: var(--transition-trompoman);
    z-index: 5;
}

.navbar-brand:is(:hover,:focus):after{
    opacity: 1;
    transform: scale(1.075);
    rotate: 0deg;
    bottom: 0;
}

/*nav item bottom border y hovers
También se trabajan los active, 
para represenar la sección seleccionada*/
.nav-main-link::after{
    background-color: var(--menu-hover-color);
    position: relative;
    bottom: 0;
    left: 50%;
    width: 0%;
    height: 3px;
    content: "";
    display: block;
    transition: all 0.5s;
    border-radius: 1rem;
}

.nav-main-link:hover::after,
.nav-main-link:focus::after{
    width: 100%;
    left:0%;
}

.navbar-toggler{
    color: var(--menu-hover-color);
    border-color: var(--menu-hover-color);
    background-color: var(--nav-bg-azul);
    filter: contrast(1.5);
}

.nav-item >a:is(:focus){
    outline: var(--outline);
    border-radius: var(--border-radius-size);
    /* box-shadow: inset 3px 3px 15px #dbdbdb,
    inset -3px -3px 15px #fff; */
}

.search-container{
    display: flex;
    align-items: center;
    justify-content: center;
}

/*
* Estos son otros ejemplos que se pueden colocar como alternativa al pseudo elemento
* con la barrita de abajo
* Se obtuvieron de: https://dev.to/afif/100-underline-overlay-animation-the-ultimate-css-collection-4p40
.nav-main-link{
    background:
    linear-gradient(currentColor 0 0) 0 0,
    linear-gradient(currentColor 0 0) 0 0,
    linear-gradient(currentColor 0 0) 0 100%,
    linear-gradient(currentColor 0 0) 0 100%,
    linear-gradient(currentColor 0 0) 100% 0,
    linear-gradient(currentColor 0 0) 100% 0,
    linear-gradient(currentColor 0 0) 100% 100%,
    linear-gradient(currentColor 0 0) 100% 100%;
    background-size: var(--d, 0) 3px, 3px var(--d, 0);
    background-repeat: no-repeat;
    transition: 0.5s;
}

.nav-main-link:hover{
    --d: 20px;
}
*/

.nav-link:focus, .nav-link:hover {
    color: 	var(--menu-hover-color);
}

.active-menu{
    color: var(--menu-hover-color);
}

.active-menu::after{
    width: 100%;
    left:0%;
    background-color: var(--menu-hover-color);
    position: relative;
    bottom: 0;
    height: 3px;
    content: "";
    display: block;
    transition: all 0.5s;
    border-radius: 1rem;
}

.active-menu-color-only{
    color: var(--menu-hover-color);
}

.active-submenu{
    color: var(--submenu-item-hover-color);
    background-color: var(--text-menu-item-color);
}

.navbar-nav .nav-link.show {
    color: var(--menu-hover-color);/*fix para clase de BS que lo coloca blanco*/
}

/*submenú y dropdowns*/
/*https://www.youtube.com/watch?v=sqwk7xXBhFk*/
.dropdown .dropdown-menu{
    display: none;
}

.dropend:hover .dropdown-toggle:hover{
    color: var(--submenu-item-hover-color);
    background-color: var(--text-menu-item-color);
    /* margin-left: 1em; */
}

.dropdown-item:hover{
    background-color: var(--text-menu-item-color);
    color:var(--submenu-item-hover-color);
}

.dropdown:hover > .dropdown-menu, .dropend:hover > .dropdown-menu{
    display: block;
    margin-top: -.125em;
    margin-left: .125em;
    background-color: var(--main-color);
    border-radius: 0;
}

@media screen and (min-width: 993px){/*lg breakpoint for bs5.3*/
    /*para desktop o pantallas horizontales*/
    .dropend:hover > .dropdown-menu{
        position: absolute;
        top:0;
        left:100%;
        /* border-radius: 5px 0% 0% 5px; */
    }

    .dropend .dropdown-toggle{
        margin-left: 0.5em;
        border-radius: 5px 0% 0% 5px;
    }

    .navbar-nav .dropdown-menu {
        text-align: left;
    }

    /*Del mega menu*/
    /*https://www.youtube.com/watch?v=V5MquVuKlU4*/
    .mega-dropdown:hover > .dropdown-menu{
        display: flex;
        padding-top: 0.5em;
        padding-bottom: 0.5em;
        border-radius: 0;/*Para diseño cuadrado, dejar en 0*/
        background: var(--main-color);
    }

    /*del navbar*/
    .navbar>.container, .navbar>.container-fluid, .navbar>.container-lg, .navbar>.container-md, 
    .navbar>.container-xl, .navbar>.container-xxl{
        display: flex;
        flex-wrap: inherit;
        align-items: center;
        justify-content: space-between;
    }
    /*fin de media query del navbar*/
}

@media screen and (max-width: 993px){/*lg breakpoint for bs5.3*/
    /*Para móvil o ventanas verticales*/
    /*limite para mega menu y submenus asi no se desbordan*/
    .mega-dropdown:hover > .dropdown-menu{
        max-height: 40vh;
        overflow-y:auto;
        border-radius: 0;
        background: var(--main-color);
    }

    /*Para que el submenú no crezca demasiado*/
    .dropdown:hover > .dropdown-menu{
        overflow-y: auto;
        max-height: 40vh;
        border-radius: 0;
    }

    /*custom scroll para el submenú*/
    .dropdown:hover > .dropdown-menu::-webkit-scrollbar{
        width: 5px;
    }

    .dropdown:hover > .dropdown-menu::-webkit-scrollbar-track{
        background-color: var(--scroll-bg-color);
        border-radius: 2px;
    }

    .dropdown:hover > .dropdown-menu::-webkit-scrollbar-thumb{
        background-color: var(--scroll-thumb-color);
        border-radius: 2px;
    }

    .dropdown:hover > .dropdown-menu::-webkit-scrollbar-thumb:hover{
        background-color: var(--scroll-thumb-hover-color);
    }

    /*Para el texto del footer en móvil*/
    .texto-footer{
        font-size: 1rem !important;/*1 rem = 16px*/
    }

    .networks{
        font-size: 1.5rem !important;
    }
    /*fin media query footer movil*/
}
/*fin media query para móviles*/

/*custom scrollbars*/
.mega-menu::-webkit-scrollbar{
    width: 5px;
}

.mega-menu::-webkit-scrollbar-track{
    background-color: var(--scroll-bg-color);
    border-radius: 2px;
}

.mega-menu::-webkit-scrollbar-thumb{
    background-color: var(--scroll-thumb-color);
    border-radius: 2px;
}

.mega-menu::-webkit-scrollbar-thumb:hover{
    background-color: var(--scroll-thumb-hover-color);
}
/*----------------------------------------------------------
        Fin de ajustes para el menú y media queries
----------------------------------------------------------*/

/*custom scroll página entera*/
body::-webkit-scrollbar{
    width: 10px;
}

body::-webkit-scrollbar-track{
    background-color: var(--scroll-bg-color);
    border-radius: 0;
}

body::-webkit-scrollbar-thumb{
    background-color: var(--scroll-thumb-color);
    border-radius: 5px;
}

body::-webkit-scrollbar-thumb:hover{
    background-color: var(--scroll-thumb-hover-color);
}

textarea::-webkit-scrollbar{
    width: 10px;
}

textarea::-webkit-scrollbar-track{
    background-color: var(--scroll-bg-color);
    border-radius: 6px;
}

textarea::-webkit-scrollbar-thumb{
    background-color: var(--scroll-thumb-color);
    border-radius: 6px;
}

textarea::-webkit-scrollbar-thumb:hover{
    background-color: var(--scroll-thumb-hover-color);
}
/*scroll base para ponerle a los demás elementos*/
.custom-scroll::-webkit-scrollbar{
    width: 10px;
}

.custom-scroll::-webkit-scrollbar-track{
    background-color: var(--scroll-bg-color);
    border-radius: 0;
}

.custom-scroll::-webkit-scrollbar-thumb{
    background-color: var(--scroll-thumb-color);
    border-radius: 5px;
}

.custom-scroll::-webkit-scrollbar-thumb:hover{
    background-color: var(--scroll-thumb-hover-color);
}

/*Footer / pie de página*/
footer{
    background-color: var(--main-color);
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    padding: 1em 3em;
    box-shadow: var(--box-shadow-dark-color);
}

.networks{
    display: flex;
    align-content: center;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    flex-wrap: nowrap;
    font-size: var(--txt_networks);
    font-weight: 300;
    line-height: var(--txt_interlineado);
    color: var(--icon-normal);
    column-gap: 0.5em;
}

/*Segmento de networks, cambiar el nth-child
según la cantidad de redes que se tengan*/
.networks a{
    text-decoration: none;
    color: var(--icon-normal);
    transition: var(--transition-all-05s);
    padding: 0.5em 0.6em;
    border-radius: var(--border-radius-size);
}

.networks a:is(:hover, :focus){
    color: var(--icon-normal-hover-color);
    background-color: var(--icon-bg-hover-color);
}


.hide{
    display: none;
}

/* ══════════════════════════════════════════════════════════
   Mejoras globales de interfaz
   ══════════════════════════════════════════════════════════ */

body {
    -webkit-font-smoothing: antialiased;
}

.titulo-contenido,
.titulo-noticia,
.entry-title,
.filter-title {
    text-wrap: balance;
}

.entry-price {
    font-variant-numeric: tabular-nums;
}

.botones:active:not(:disabled) {
    transform: scale(0.96);
    transition-property: background-color, color, border-color, transform, box-shadow;
    transition-duration: 0.15s;
}

/* Smooth theme transitions on key elements */
body,
nav,
footer,
.noticia,
.catalog-entry,
.bloque-formulario,
.bloque-datos,
.catalog-list-panel,
.catalog-viewer-placeholder,
.form-control,
.form-check-input {
    transition-property: background-color, color, border-color, box-shadow;
    transition-duration: 0.25s;
    transition-timing-function: ease;
}

html {
    transition-property: background-color;
    transition-duration: 0.25s;
    transition-timing-function: ease;
}

/* ══════════════════════════════════════════════════════════
   Modo oscuro
   ══════════════════════════════════════════════════════════ */

html[data-theme="dark"] {
    background-color: #0b1a10;
}

[data-theme="dark"] * {
    --surface-color: #1a2e22;
    --nav-bg-transparente: rgba(10, 22, 14, 0.88);
    --text-title-color: #dff0e6;
    --text-primary-color: #b8d4c4;
    --text-menu-item-color: #8ab89e;
    --menu-hover-color: #dff0e6;
    --submenu-item-hover-color: #dff0e6;
    --scroll-bg-color: #0e1f15;
    --scroll-thumb-color: #2e5040;
    --scroll-thumb-hover-color: #3d6e58;
    --lightbox-bg-color: rgba(10, 22, 14, 0.92);
    --box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.4);
    --box-shadow-main-color: 2px 2px 20px 0px rgba(0,0,0,0.45);
    --box-shadow-dark-color: 2px 2px 20px 0px rgba(0,0,0,0.5);
    --input-focus-border-color: #43cd66;
    --input-focus-shadow-color: rgba(67, 205, 102, 0.25);
}

[data-theme="dark"] body {
    background-color: #0b1a10;
    color: #b8d4c4;
}

[data-theme="dark"] footer {
    background-color: #071a0f;
}

[data-theme="dark"] .navbar-brand:is(:hover,:focus) {
    box-shadow: inset 3px 3px 15px #071a0f,
                inset -3px -3px 15px #1a3d2b;
}

/* ── Superficies blancas ── */
[data-theme="dark"] .noticia {
    background-color: #122218;
}

[data-theme="dark"] .titulo-noticia,
[data-theme="dark"] .titulo-contenido {
    color: #dff0e6;
}

[data-theme="dark"] .parrafo-noticia,
[data-theme="dark"] .parrafo-contenido,
[data-theme="dark"] .leyenda-imagen,
[data-theme="dark"] .labels-formulario {
    color: #b8d4c4;
}

[data-theme="dark"] .btn-noticia {
    color: #b8d4c4;
    border-top-color: rgba(184, 212, 196, 0.2);
}

[data-theme="dark"] .btn-noticia:hover {
    color: #43cd66;
}

[data-theme="dark"] .catalog-entry {
    background-color: #122218;
}

[data-theme="dark"] .entry-title {
    color: #dff0e6;
}

[data-theme="dark"] .entry-price {
    color: #b8d4c4;
}

[data-theme="dark"] .bloque-formulario,
[data-theme="dark"] .bloque-datos {
    background-color: #122218;
}

[data-theme="dark"] .catalog-list-panel {
    background-color: #122218;
}

[data-theme="dark"] .catalog-viewer-placeholder {
    background-color: #1a2e22;
}

[data-theme="dark"] .form-control {
    background-color: #1a2e22;
    border-color: #2e5040;
    color: #b8d4c4;
}

[data-theme="dark"] .form-control:focus {
    background-color: #1a2e22;
    color: #dff0e6;
}

[data-theme="dark"] .form-check-input {
    background-color: #1a2e22;
    border-color: #2e5040;
}

[data-theme="dark"] .form-check-input:checked {
    background-color: #43cd66;
    border-color: #43cd66;
}

[data-theme="dark"] .separator {
    border-top-color: rgba(184, 212, 196, 0.3);
}

[data-theme="dark"] .filter-container {
    background-color: #1a3d28;
}

[data-theme="dark"] .filter-section-title,
[data-theme="dark"] .filter-price-label,
[data-theme="dark"] .filter-price-order-label,
[data-theme="dark"] .filter-title {
    color: #dff0e6;
}

[data-theme="dark"] .contact-text,
[data-theme="dark"] .contact-text a {
    color: #b8d4c4;
}

[data-theme="dark"] .contact-icon {
    color: #43cd66;
}

[data-theme="dark"] .catalog-list-title {
    background-color: #0f3020;
}

[data-theme="dark"] .catalog-item {
    color: #b8d4c4;
}

[data-theme="dark"] .catalog-item:hover {
    background-color: rgba(67, 205, 102, 0.1);
    color: #dff0e6;
}

[data-theme="dark"] .catalog-item.active {
    background-color: #1e5c38;
    color: #dff0e6;
}

/* ── Botón de tema ── */
.theme-toggle-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid rgba(61, 61, 61, 0.4);
    color: var(--text-menu-item-color);
    border-radius: var(--border-radius-size);
    width: 2.2rem;
    height: 2.2rem;
    cursor: pointer;
    font-size: 1rem;
    padding: 0;
    transition-property: background-color, color, border-color, transform;
    transition-duration: 0.25s;
    transition-timing-function: ease;
}

.theme-toggle-btn:hover {
    background-color: var(--main-alt-color-05);
    color: var(--main-color);
    border-color: var(--main-alt-color);
}

.theme-toggle-btn:active {
    transform: scale(0.96);
}

.theme-icon-moon,
.theme-icon-sun {
    position: absolute;
    transition-property: opacity, transform;
    transition-duration: 0.25s;
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}

/* Modo claro: mostrar luna (toggle a oscuro), ocultar sol */
.theme-icon-moon { opacity: 1; transform: scale(1); }
.theme-icon-sun  { opacity: 0; transform: scale(0.25); }

/* Modo oscuro: mostrar sol (toggle a claro), ocultar luna */
[data-theme="dark"] .theme-icon-moon { opacity: 0; transform: scale(0.25); }
[data-theme="dark"] .theme-icon-sun  { opacity: 1; transform: scale(1); }

[data-theme="dark"] .theme-toggle-btn {
    border-color: rgba(138, 184, 158, 0.3);
    color: #8ab89e;
}

[data-theme="dark"] .theme-toggle-btn:hover {
    background-color: rgba(67, 205, 102, 0.15);
    color: #43cd66;
    border-color: #43cd66;
}

.theme-toggle-item {
    display: flex;
    align-items: center;
    padding-inline: 0.25rem;
}