/*
Theme Name: GeneratePress Child Theme
Template: generatepress
Version: 1.2 - Modular y Optimizado
Description: Tema hijo personalizado - Sistema modular
Author: DoOz
*/



/* Aplicación de variables globales */
body {
    background-color: var(--color-bg-alt);
    color: var(--color-text-main);
}

a {
    color: var(--color-link);
}

a:hover {
    color: var(--color-link-hover);
}


/* ==================================== */
/* 2. RESET Y ESTRUCTURA BASE - MOBILE FIRST */
/* ==================================== */

* {
    box-sizing: border-box;
}

body,
button,
input,
select,
textarea {
    font-family: 'Poppins', sans-serif;
}

a {
    text-decoration: none;
}

b,
strong {
    font-weight: 500;
}



/* * 1. Oculta el logo oscuro por defecto.
 * 2. Muestra el logo claro por defecto.
 */
.logo-youtube .logo-dark {
    display: none;
    /* Ocultar el logo oscuro */
}

.logo-youtube .logo-light {
    display: block;
    /* Mostrar el logo claro */
}


/* * 3. CUANDO EL BODY TIENE LA CLASE 'dark-mode':
 */
html.dark-mode .logo-youtube .logo-dark {
    display: block;
    /* Muestra el logo oscuro */
}

html.dark-mode .logo-youtube .logo-light {
    display: none;
    /* Oculta el logo claro */
}

/* Base Layout - Móvil */
.layout {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    position: relative;
    flex-grow: 1;
    z-index: 1;
}

.layout .header {
    background-color: var(--color-bg-header);
    /* APLICANDO VARIABLE */
    transition: width var(--transition-duration);
    height: var(--header-height);
    min-height: var(--header-height);
    position: relative;
    display: flex;
    align-items: center;
    padding: 0 10px;
}

.layout .content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.layout .site.grid-container {
    padding: 0 5px 12px;
}

.layout .footer {
    text-align: center;
    margin-top: auto;
    margin-bottom: 20px;
    padding: 20px;
    height: 64px;
    min-height: 64px;
}

/* Neutralizar altura forzada y Flexbox */
.layout.fixed-sidebar,
.layout.fixed-header,
.layout .layout {
    height: auto;
    min-height: auto;
}

.layout .layout {
    display: block;
}

/* Compensación de contenido por header */
.site-content {
    display: flex;
    margin-top: var(--header-height);
    padding-top: 0;
}



.content-area.inside-page-header .site-main {
    margin: 0;
}

/* Footer - posicionamiento estable */
.site-footer {
    position: relative;
    clear: both;
    width: auto;
}

/* Contenedores principales - Móvil */
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation,
.one-container .site-content,
.inside-page-header {
    padding: 7px;
}

.page-header.zbreadcrumbs {
    background-color: var(--color-bg-alt);
    /* APLICANDO VARIABLE */
    padding: 20px 15px 0px !important;
}

.rank-math-breadcrumb p {
    margin-bottom: 0;
    color: var(--color-text-title);
    /* APLICANDO VARIABLE */
}

.wpp-list {
    list-style: none;
    margin: 0;
}

/* Imágenes responsivas (GLOBALES) */
.size-auto,
.size-full,
.size-large,
.size-medium,
.size-thumbnail {
    max-width: 100%;
    height: auto;
}

.clear {
    clear: both;
}

.entry-header .gp-icon,
.posted-on .updated {
    display: inline;
}

/* Botones y Elementos Interactivos (GLOBALES) */
.g1-button,
.button,
[type=button],
[type=reset],
[type=submit],
button {
    box-sizing: border-box;
    display: inline-block;
    margin-right: .2px;
    position: relative;
    z-index: 0;
    text-decoration: none;
    text-align: center;
    vertical-align: middle;
    font: 500 14px / 14px 'Roboto', sans-serif;
    letter-spacing: 0;
    border-radius: 2px;
    transition: border-color 175ms ease-in-out, background-color 175ms ease-in-out, color 175ms ease-in-out, padding 175ms ease-in-out;
}

.button,
[type=button],
[type=reset],
[type=submit],
button,
label {
    cursor: pointer;
}

/* Layout de Posts y Columnas (GLOBALES) */
.generate-columns-container {
    margin: 0;
}

.post-list-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    margin: 0;
    width: 100%;
}

.container.grid-container {
    width: 100%;
}

/* YARPP Related Posts (GLOBAL) */
.yarpp-related-posts.generatepress-custom {
    margin: 30px 0 0 0;
    clear: both;
}

.generate-columns {
    margin-bottom: 15px;
    padding-left: 15px;
    list-style: none;
}

.generate-columns-container>.paging-navigation {
    margin-left: 15px;
}

.generate-columns-container .entry-summary {
    /* display: none;*/
}

footer.entry-meta {
    margin-top: 1em;
}


/* Widgets y Elementos Adicionales (GLOBALES DE SIDEBAR/WIDGET) */
.widget-area .widget {
    padding-left: 5px;
    padding-right: 5px;
}

.wpp-widget-item {
    padding: 15px 0 8px 0;
}

.img-100 img {
    width: 100%;
}

.masonry-load-more.load-more {
    text-align: center;
}

.generate-columns .inside-article {
    border-radius: 0 0 20px 20px;
}



/* Color de fondo para imágenes con lazy load de Perfmatters */
/* 1. Estado inicial: color de fondo visible */
img.perfmatters-lazy {
    background-color: var(--color-bg-sidebar-alt);
    /* Tu color preferido */
}

/* 2. Cuando la imagen termina de cargar y el Fade In actúa */
img.perfmatters-lazy.loaded {
    background-color: transparent;
    transition: background-color 0.5s ease;
    /* Debe durar lo mismo que tu fade in */
}

.perfmatters-lazy-youtube {
    z-index: 9;
}

/* ==========================================================
   C. BREAKPOINT PHABLET/TABLET PEQUEÑA (MIN-WIDTH: 481px)
   ========================================================== */
@media (min-width: 481px) {

    .generate-columns.mobile-grid-100,
    .grid-sizer.mobile-grid-100 {
        width: 50%
    }
}

/* ==================================== */
/* 9. RESPONSIVE - TABLET (min-width: 769px) */
/* ==================================== */

@media (min-width: 769px) {

    .layout .site.grid-container {
        padding: 0 15px 12px;
    }

    .separate-containers .inside-article,
    .separate-containers .comments-area,
    .separate-containers .page-header,
    .separate-containers .paging-navigation,
    .one-container .site-content,
    .inside-page-header {
        padding: 15px;
    }

    .layout .header {
        /* APLICANDO VARIABLE */
        padding: 0 20px;
    }

    .no-featured-image-padding .post-image {
        margin-left: -15px;
        margin-right: -15px;
    }

    .generate-columns-container {
        margin-left: -20px;
    }

    .generate-columns {
        margin-bottom: 20px;
        padding-left: 20px;
    }

    .generate-columns-container>.paging-navigation {
        margin-left: 20px;
    }

    .widget-area .widget {
        padding-left: 10px;
        padding-right: 10px;
    }

    .wpp-widget-item {
        padding: 20px 0 10px 0;
    }

    .page-header.zbreadcrumbs {
        padding: 20px 40px 0px !important;
    }
}

.zelementos .footer-widgets-container {

    padding-bottom: 0;
}

.page-header.home-slider {
    overflow: hidden;
    padding-bottom: 0 !important;
}

.page-header.home-slider .zgp-slider-track {
    margin: 0;
}


/* ==================================== */
/* 10. RESPONSIVE - DESKTOP (min-width: 1025px) */
/* ==================================== */

@media (min-width: 1025px) {
    .layout .site.grid-container {
        padding: 0 30px 12px;
    }

    .separate-containers .inside-article,
    .separate-containers .comments-area,
    .separate-containers .page-header,
    .separate-containers .paging-navigation,
    .one-container .site-content,
    .inside-page-header {
        padding: 20px;
    }

    .no-featured-image-padding .post-image {
        margin-left: -20px;
        margin-right: -20px;
    }

    .layout .header {
        padding: 0 20px;
    }

    .widget-area .widget {
        padding: 20px;
    }
}

/* ==================================== */
/* 11. RESPONSIVE - XL DESKTOP (min-width: 1366px) */
/* ==================================== */

@media (min-width: 1366px) {

    /* Aquí van los ajustes globales de tipografía para XL */

    h2.entry-title {
        font-size: 1.1rem;
    }

    h2 {
        font-size: 1.4rem;
    }
}