/* ===== VARIABLES Y ESTILOS GENERALES ===== */
:root {
    --primary-color: #2c3e50;
    --secondary-color: #7d7d7d;
    --accent-color: #5a9bd5;
    --light-color: #f8f9fa;
    --dark-color: #343a40;

    /* paleta */
    --color1: #004b87; /* Azul oscuro */
    --color2: #7d7d7d; /* Gris medio */
    --color3: #ffa64d; /* Naranja suave */
    --color4: #ffb300; /* Naranja vibrante */
    --color5: #fff1e0; /* Naranja muy claro */
    --color6: #e64c00; /* Naranja intenso */
    --text-principal-color: #1e2a3a; /* Gris oscuro para texto principal */


    /* Colores de home*/
    --border-color: #dee2e6;           /* para bordes o lineas */
    --text-on-dark: #d0e0e7;           /* Blanco para texto sobre fondos oscuros */
    --text-on-light: #212529;          /* Casi negro para texto sobre fondos claros */
    --header-color: #f5f7fa;           /* Color de fondo para el header */
    --title-color: #585858;            /* Color de titulo para el header */
    --title-n-color: #1e2a3a;          /* Color de titulo en negrita para el header */
    --bgr-franja1-color: #d0d7e2;      /* Color de fondo para franja1 */
    --bgr-franja2-color: #eff2f6;      /* Color de fondo para franja2 */
    --bgr-franja3-color: #d0d7e2;      /* Color de fondo para franja3 */
    --bgr-destacados-color: #eff2f6;   /* Color de fondo para destacados */
    --menu-text-color: #1e2a3a;        /*color texto menu */
    --menu-overlay-color: #5e7aa0;     /*color texto overlay menu y LINEA */
    --fondo-titulo-f2-color: #1e2a3a;   /* Color de texto para el título de la franja 2 */

    /* Colores de main cursos */
    --bg-inicial-color: #00D084;
    --bg-intensivo-color: #a92ecf;
    --bg-avanzado-color: #515be0;
    --border-mcurso-color: #dee2e6;               /* para bordes o lineas */
    --bgr-mcurso-color: #f5f7fa;                  /* para fondo de los cursos */
    --bgr-mcurso-card-color: #eff2fa;             /* para fondo de las tarjetas cursos */
    --btn-comprar-color: #e64c00;                 /* para fondo de los botones comprar */
    --btn-texto-comprar-color: #ffffff;           /* para texto de los botones comprar */
    --btn-comprar-hover-color: #ff5500;           /* para hover de los botones comprar */
    --btn-texto-comprar-hover-color: #ebebeb;     /* para hover texto de los botones comprar */
    --sidebar-cursos-bg-color: #f9f9f9;           /* para fondo del sidebar cursos */
    --cat-color1: #d0d7e2;                        /* Degradado 1 */
    --cat-color2: #eff2fa;                        /* Degradado 2 */
    --texto-categoria-color: #1e2a3a;                 /* para texto de la categoría en las tarjetas de cursos */

    /* Colores de formacion */
    --bkg-inicial-color: #009760;
    --bkg-intermedio-color: #792294;
    --bkg-avanzado-color: #3840a8;
    
}

body {
    font-family: 'HelveticaNeueLTStd', sans-serif;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'HelveticaNeueLTStd', sans-serif;
    font-weight: 700;
}

/* ===== HEADER PRINCIPAL ===== definir */
.header-wrapper {
    background: var(--header-color);
    box-shadow: 0 2px 15px rgba(0,0,0,0.1);
    position: relative;
    top: 0;
    width: 100%;
    z-index: 1000;
    padding: 10px 0;
}

/* Logo */
.logo-column {
    border-right: 1px solid var(--border-color);
    padding-right: 0px;
}

.site-logo img {
    max-height: 80px;
    width: auto;
}

.logo-text h1 {
    font-size: 1.8rem;
    color: var(--primary-color);
    margin: 0;
}

/* Título del sitio */
.site-tagline .site-description {
    color: var(--title-color);
    font-size: 1.2rem;
    margin: 0;
    font-weight: 600;
}

/* Iconos sociales */
.social-col .default-social-icons {
    display: flex;
    justify-content: flex-end;
    gap: 15px;
}

.social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--light-color);
    border-radius: 50%;
    color: var(--primary-color);
    text-decoration: none;
    transition: all 0.3s ease;
}

.social-icon:hover {
    background: var(--primary-color);
    color: white;
    transform: translateY(-2px);
}

/* Menú de navegación */
.menu-col .navbar {
    padding: 0;
}

.menu-col .navbar-nav {
    font-size: large;
    display: flex;
    gap: 5px;
}

.menu-col .nav-link {
    color: var(--primary-color) !important;
    font-weight: 600;
    padding: 8px 15px !important;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.menu-col .nav-link:hover,
.menu-col .nav-link.active {
    background-color: rgba(44, 62, 80, 0.05);
    color: var(--secondary-color) !important;
}

/* Widget de agenda */
.agenda-col .default-agenda .agenda-link {
    display: inline-flex;
    align-items: center;
    background: linear-gradient(135deg, var(--accent-color), #667eea);
    color: white;
    padding: 6px 18px;
    border-radius: 25px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    float: right;
    margin-top: 5px;
}

.agenda-col .default-agenda .agenda-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
}


/* ===== RESPONSIVE ===== */
@media (max-width: 991.98px) {
    body {
        padding-top: 10px; /* Más espacio en móvil */
    }
    
    .logo-column {
        border-right: none;
        border-bottom: 2px solid #eee;
        padding-right: 0;
        padding-bottom: 15px;
        margin-bottom: 15px;
        text-align: center;
    }
    
    .site-logo img {
        max-height: 60px;
    }
    
    .site-tagline .site-description {
        text-align: center;
        font-size: 1rem;
    }
    
    .social-col .default-social-icons {
        display: none;
        
    }
    
    .menu-col .navbar-nav {
        flex-direction: column;
        text-align: center;
    }
    
    .agenda-col .default-agenda .agenda-link {
        float: none;
        justify-content: center;
        width: 100%;
        margin-top: 10px;
    }

    .header-wrapper {
    position: relative !important;
    top: 0;
    }
}

@media (max-width: 767.98px) {
    .top-row, .bottom-row {
        text-align: center;
    }
    
    .site-title-col,
    .social-col,
    .menu-col,
    .agenda-col {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
        margin-bottom: 10px;
    }
}



/* ==================== MENÚ POR DEFECTO ====================
function fotografia_default_menu() {
    echo '<ul class="navbar-nav me-auto">';
    $menu_items = array(
        'cursos' => 'Cursos',
        'regalos' => 'Regalos',
        'urgencias' => 'Urgencias',
        'videos' => 'Videos',
        'nosotros' => 'Nosotros',
        'contacto' => 'Contacto'
    );
    
    foreach ($menu_items as $slug => $title) {
        $url = home_url('/' . $slug . '/');
        echo '<li class="nav-item"><a class="nav-link" href="' . esc_url($url) . '">' . esc_html($title) . '</a></li>';
    }
    echo '</ul>';
} */

/* ===== ANCHO MÁXIMO PARA TODO EL CONTENIDO INTERNO ===== */
.container,
.container-fluid,
[class*="container-"] {
    max-width: 1500px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 15px;
    padding-right: 15px;
    /* padding-top: 25px; */
}

/* ===== HEADER continuacion: FONDO COMPLETO, CONTENIDO LIMITADO ===== */
.header-wrapper {
    position: sticky;
    top: 0;
}

.header-wrapper .container,
.header-wrapper .container-fluid {
    margin-left: auto;
    margin-right: auto;
}

/* ===== FOOTER: MISMA REGLA ===== */
.site-footer {
    width: 100%;
}

.site-footer .container {
    margin-left: auto;
    margin-right: auto;
}

/*VER
/* Estilo para el título de página en el header */
.page-title-wrapper .page-title {
    font-size: 1.6rem;
    font-weight: 400;
    color: var(--title-color);
    margin: 0;
    line-height: 1.2;
}

.page-title-wrapper .page-title strong {
    font-weight: bold;
    color: var(--title-n-color) ; /* Color de acento para la negrita */
}

/* Responsive: ajustar tamaño en móvil */
@media (max-width: 768px) {
    .page-title-wrapper .page-title {
        font-size: 1.3rem;
        text-align: center;
    }
}

/* ===== FUENTES PERSONALIZADAS ===== */
@font-face {
    font-family: 'HelveticaNeueLTStd' !important;
    src: url('../fonts/HelveticaNeueLTStd-Roman.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'HelveticaNeueLTStd' !important;
    src: url('../fonts/HelveticaNeueLTStd-Bd.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}


@font-face {
  font-family: 'Font Awesome 6 Free';
  src: url('../fonts/fa-solid-900.woff2') format('woff2');
  font-display: swap; /* <--- Esto soluciona la advertencia */
  font-weight: 900;
  font-style: normal;
}


/* 3. NUEVO: Vincular las clases de HTML con sus respectivas fuentes */
.fas, .fa-solid {
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900;
}


/* ===== TIPOGRAFÍA GLOBAL ===== */
body,
button,
input,
select,
optgroup,
textarea {
    font-family: 'HelveticaNeueLTStd', Helvetica, Arial, sans-serif;
    font-weight: 400;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: 'HelveticaNeueLTStd', Helvetica, Arial, sans-serif;
    font-weight: 700; /* Títulos en negrita */
}

/* Si algún título específico debe ser regular, ajústalo manualmente */
h1, .h1 {
    font-weight: 700;
}

/* ===== PÁGINA DE INICIO - FRANJAS Y CARRUSEL ===== */

/* Estructura Base de Franja 1 */
#franja-1 {
    height: 550px !important;  /*Altura fija en desktop */
    min-height: 550px; /* Tu objetivo */
    background-color: var(--bgr-franja1-color);
    display: flex;
    align-items: flex-start;
    overflow: hidden;
}

/* Columna de Texto con proporciones 40-50-10 */
.carousel-text-wrapper {
    height: 550px;
    padding: 15px; /* Tu requerimiento de padding */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.category-tag {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--accent-color) !important;
    text-transform: uppercase;
}

.carousel-text-title {
    height: 40%;
    overflow: hidden;
    padding-top: 5px;
}

.carousel-text-description {
    font-size: 1.15rem; /* Agrandar el extracto */
    line-height: 1.6;
    height: 50%;
    overflow-y: auto; /* Permite leer si el texto es largo */
    padding-right: 15px; /* Para que no toque el borde del carril */
}

.carousel-text-controls {
    height: 10%;
    display: flex;
    align-items: flex-end;
    padding-bottom: 20px;
}

/* Columna de Imagen/Video (Derecha) */
.media-wrapper {
    position: relative;
    height: 535px;
    /*padding: 15px;*/
    padding-top: 15px;
    padding-bottom: 15px;
    
    /*background-color: #f4f4f4;*/
    /*display: flex;*/
    align-items: flex-start; /* Alineado arriba */
    justify-content: start; /* Centrado start end, center, between, around, o evenly.  */
    overflow: hidden;
}

.media-wrapper img,
.media-wrapper video {
    width: 100% !important;
    height: 100% !important;
    margin-right: 15px; /* Tu requerimiento de padding */
    margin-left: 5px;
    object-fit: cover; /* El secreto para que llene sin deformar */
    object-position: center; /* Centrado perfecto */
    border-radius: 8px; /* Bordes redondeados para un look más suave */
}

/* Botones de navegación sobre la imagen */
.custom-nav {
    width: 5%; /* Área de click */
    z-index: 10;
}


    .carousel-control-prev.custom-nav {
        left: 34%;
        /* Empieza donde termina el texto (1/3 de la columna 9) */
    }

/*
.carousel-control-next.custom-nav {
    right: -35px; /* Empieza donde termina el texto (1/3 de la columna 9) */
/*}*/

.carousel-control-prev-icon, .carousel-control-next-icon {
    background-color: rgba(0, 0, 0, 0.1); /* Fondo semitransparente para visibilidad */
    border-radius: 50%;
    padding: 20px;
}

/* Transición fade del carrusel */
.carousel-fade .carousel-item {
    transition: opacity 0.8s ease-in-out; /* Ajustado para ser más fluido */
}

/* destacado de la franja 1 */
.featured-full-height {
    height: 100% !important; /* Asegura que ocupe toda la altura de la franja */
    max-height: 550px; /* Limita la altura máxima para evitar que se vea gigante */
    display: flex;
    background-color: var(--bgr-destacados-color);
    margin-top: 30px;
    margin-left: 10px;
    padding-bottom: 15px;
    flex-direction: column;
    justify-content: space-between; /* Espacio entre el contenido y el botón */
}

.featured-img-container {
    height: 250px; /* Ajusta según prefieras, el resto será texto */
}

.featured-img-container img {
    object-fit: cover;
    height: 100%;
}


/* Tarjetas de Cursos y Destacados (Mantener) */
.featured-entry-card, .curso-card, .service-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.featured-entry-card:hover, .curso-card:hover, .service-card:hover {
    transform: translateY(5px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.1) !important;
}

/* Contenedor de la columna derecha en Franja 1 definir*/
#franja-1 .col-lg-3 {
    padding: 0px !important; /* Elimina el padding derecho para que la imagen toque el borde */
    display: flex;
    align-items: center; /* Centra la tarjeta verticalmente en el carril de 550px */
    justify-content: center;
}

.featured-entry-card {
    background: var(--bgr-destacados-color);
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.08);
    height: 100%; /* Para que ocupe todo el espacio disponible con sus márgenes */
    min-height: 430px; /* Altura mínima para que no se colapse */
    /*max-height: 480px; /* Altura máxima para que no se vea gigante */
      
    /* MARGENES Y TAMAÑO: Aquí la hacemos más chica */
    margin-top: 15px;
    margin-left: 15px;
    margin-right: 15px;
    width: 100%;
    /*max-width: 320px; /* Limitamos el ancho para que no se vea tosca */
    
    /* ALTURA MÁXIMA PARA QUE NO PASE LOS 550px */
    max-height: 510px; 
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
}

.featured-entry-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.12);
}

.featured-entry-card .badge {
    background: var(--accent-color);
}

/* Imagen dentro de la tarjeta destacada */
.featured-img-container {
    padding: 15px; /* Espacio interno para que la imagen no toque los bordes*/
    
}

.featured-entry-card .post-thumbnail {
    height: 230px !important; /* Imagen más pequeña para dar aire al texto */
    width: 230px !important;
    overflow: hidden;
}

.featured-entry-card .post-thumbnail img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

/* Contenido de texto */
.featured-entry-card .entry-header-content {
    font-size: 1.0rem;
    padding: 25px 20px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-grow: 1; /* Esto hace que esta sección ocupe todo el espacio sobrante */
}

.featured-entry-card .entry-title {
    font-size: 1.25rem;
    line-height: 1.4;
    margin-bottom: auto; /* <--- El "truco del arquitecto": empuja todo lo que esté debajo */
    padding-bottom: 15px;
    /* Aplicamos el line-clamp para seguridad */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
}

/* Estilo para el botón o enlace al final */
.featured-entry-card .btn-Más-información {
    align-self: center; /* Alinea el botón horizontalmente */
    margin-top: 10px;       /* Espacio respecto al texto de arriba */
    padding: 8px 20px;
    background-color: #ffffff;
    color: var(--accent-color) !important;
    border: 2px solid var(--accent-color);
    border-radius: 25px;
}

/* ===== AJUSTE DE CONTROLES CARRUSEL RESPONSIVE ===== */
@media (max-width: 991.98px) {
    /* 1. Aseguramos que el contenedor sea el punto de referencia */
    .media-wrapper {
        position: relative;
        display: flex;
        align-items: center; /* Centra las flechas verticalmente respecto a la foto */
    }

    /* 2. Reposicionamos los controles específicos */
    .carousel-control-prev.custom-nav,
    .carousel-control-next.custom-nav {
        width: 40px; /* Tamaño fijo para que sea fácil de tocar */
        height: 40px;
        top: 50%;
        transform: translateY(-50%); /* Centrado vertical exacto */
        position: absolute;
        opacity: 0.8;
    }

    /* Flecha Izquierda: pegada al borde izquierdo de la imagen */
    .carousel-control-prev.custom-nav {
        left: 10px !important; /* Sobrescribimos el 30% del desktop */
    }

    /* Flecha Derecha: pegada al borde derecho de la imagen */
    .carousel-control-next.custom-nav {
        right: 10px !important; /* Sobrescribimos el valor negativo del desktop */
    }

    /* 3. Ajuste de los iconos para que se vean bien en móvil */
    .carousel-control-prev-icon, 
    .carousel-control-next-icon {
        padding: 15px; /* Un poco más pequeños que en desktop */
        background-color: rgba(0, 0, 0, 0.5); /* Un poco más oscuro para mejor contraste sobre fotos */
    }
}

/* ===== OPTIMIZACIÓN FRANJA 1 - MODO MOBILE (991px hacia abajo) ===== */
@media (max-width: 991.98px) {
    
    /* 1. Contenedor de Texto: Altura total controlada para evitar saltos */
    .carousel-text-wrapper {
        display: flex;
        flex-direction: column;
        height: auto !important;
        min-height: 350px; /* Asegura un bloque consistente */
        padding: 20px 15px !important;
    }

    /* Espacio fijo para Categoría (Tag) */
    .category-tag {
        height: 25px;
        margin-bottom: 5px;
        display: block;
    }

    /* Espacio fijo para Título (Máximo 2-3 líneas) */
    .carousel-text-title {
        height: 90px !important; /* Altura fija para títulos */
        overflow: hidden;
        margin-bottom: 10px;
    }

    .carousel-text-title h2 {
        font-size: 1.5rem !important;
        line-height: 1.2;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        line-clamp: 3;
    }

    /* Espacio fijo para Descripción (con scroll interno si excede) */
    .carousel-text-description {
        height: 120px !important; /* Altura fija para el extracto */
        overflow-y: auto; 
        margin-bottom: 15px;
        font-size: 1rem !important;
        padding-right: 10px;
    }

    /* 2. Marco Fijo para la Imagen/Video */
    .media-wrapper {
        height: 300px !important; /* Altura inamovible en móvil */
        width: 100% !important;
        padding: 0 15px !important; /* Margen lateral para que no toque bordes del cel */
        display: block;
        position: relative;
    }

    .media-wrapper img,
    .media-wrapper video {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important; /* Recorta la imagen para llenar el marco sin deformar */
        object-position: center;
        border-radius: 8px;
        margin: 0 !important; /* Reseteamos márgenes del desktop */
    }

    /* 3. Reposicionamiento de flechas sobre el nuevo marco de 300px */
    .carousel-control-prev.custom-nav,
    .carousel-control-next.custom-nav {
        top: 50%;
        transform: translateY(-50%);
        width: 45px;
        height: 45px;
    }
    
    .carousel-control-prev.custom-nav { left: 20px !important; }
    .carousel-control-next.custom-nav { right: 20px !important; }
}

/* Estructura Base de Franja 2 ============*/
#franja-2 {
    background-color: var(--bgr-franja2-color);
}

/* Controles personalizados arriba a la derecha */
.carousel-custom-controls .btn {
    border-radius: 50%;
    width: 35px;
    height: 35px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 5px;
    border: 1px solid var(--border-color);
    color: var(--primary-color);
    transition: all 0.2s ease;
}

.carousel-custom-controls .btn:hover {
    background-color: var(--primary-color);
    color: #fff;
}

/* Transición suave entre grupos de tarjetas */
#carouselFranja2 .carousel-item {
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Ajuste de tarjetas en el carrusel */
.curso-card {
    transition: transform 0.3s ease;
    border: 1px solid transparent !important;
}

.curso-card:hover {
    transform: translateY(-5px);
    border-color: var(--border-color) !important;
    box-shadow: 0 10px 20px rgba(0,0,0,0.05) !important;
}

/* Responsive: En móviles mostramos de a 1 o 2 */
@media (max-width: 768px) {
    #carouselFranja2 .col-md-6 {
        width: 50%; /* Mostramos 2 tarjetas en tablets */
    }
}

@media (max-width: 576px) {
    #carouselFranja2 .col-md-6 {
        width: 100%; /* 1 tarjeta en móviles */
    }
}

/* Estructura Base de Franja 3 */
#franja-3 {
    background-color: var(--bgr-franja3-color);
}

/* Apilado para móviles */
@media (max-width: 991px) {
    #franja-1 {
        height: auto !important;
        display: block;
    }
    
    .carousel-text-wrapper {
        height: auto;
        padding: 30px 15px;
    }

    .carousel-text-title, .carousel-text-description, .carousel-text-controls {
        height: auto;
        margin-bottom: 20px;
    }

    .media-wrapper {
        height: 350px;
    }
    
    .media-wrapper img, .media-wrapper video {
        max-height: 350px;
    }
}


/* ===== DISEÑO DE MENÚ PARA WP_NAV_MENU ===== */

/* 1. Ajuste del contenedor de la lista de WP */
.navbar-nav {
    display: flex;
    flex-direction: row;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* 2. Estilo base para los enlaces del menú */
.navbar-nav li a {
    color: var(--menu-text-color)!important; /* Gris inicial */
    text-decoration: none;
    padding: 0.5rem 1rem;
    display: block;
    font-weight: 500;
    position: relative; /* Necesario para la línea */
    transition: color 0.3s ease;
}

/* 3. Creación de la línea animada */
.navbar-nav li a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0; /* Pegado al fondo del texto */
    left: 50%;
    background-color: var(--menu-overlay-color); 
    transition: all 0.3s ease-in-out;
    transform: translateX(-50%);
}

/* 4. Efecto Hover: Cambia a Negro y expande línea */
.navbar-nav li a:hover {
    color: var(--menu-overlay-color) !important;
}

.navbar-nav li a:hover::after {
    width: 70%; /* Se expande la línea */
}

/* 5. ESTADO ACTIVO: WordPress usa la clase .current-menu-item */
.navbar-nav .current-menu-item > a,
.navbar-nav .current_page_item > a {
    color: var(--menu-overlay-color) !important;
    font-weight: 700;
}

.navbar-nav .current-menu-item > a::after,
.navbar-nav .current_page_item > a::after {
    width: 70%; /* La línea queda fija en la página activa */
    background-color: var(--menu-overlay-color);
}

/* ===== NUEVO ESTILO MARKETPLACE CURSOS ===== */
.curso-marketplace-card {
    background-color: var(--bgr-mcurso-card-color);
    height: 526px !important; /* Alto fijo solicitado */
    border: 1px solid var(--border-mcurso-color) !important; /* Borde de 1px */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
    position: relative;
    display: flex;
    flex-direction: column;
}

/* Conservar y potenciar el efecto hover actual */
.curso-marketplace-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.1) !important;
    border-color: #cccccc !important;
}

/* Contenedor de imagen para que sea más alta y centrada */
.curso-image-container {
    height: 280px; /* Aumentamos el alto de la imagen */
    overflow: hidden;
}

.curso-image-container img {
    height: 100%;
    width: 100%;
    object-fit: cover; /* Centra y cubre el espacio */
    padding: 5px;
    transition: transform 0.5s ease;
}

.curso-marketplace-card:hover .curso-image-container img {
    transform: scale(1.05); /* Zoom suave al pasar el mouse */
}

/* Botón de Comprar */
.btn-buy {
    background-color: var(--btn-comprar-color);
    color: var(--btn-texto-comprar-color) !important;
    border-radius: 0; /* Estilo minimalista */
    padding: 8px 15px;
    letter-spacing: 1px;
    transition: background 0.3s ease;
    position: relative;
    z-index: 2; /* Por encima del enlace general */
}

.btn-buy:hover {
    background-color: var(--btn-comprar-hover-color); 
    color: var(--btn-texto-comprar-hover-color);
}

/* Ajuste del enlace "Ver curso" */
.link-ver-curso {
    color: var(--accent-color) !important;
    position: relative;
    z-index: 2;
    transition: transform 0.3s ease;
}

.curso-marketplace-card:hover .link-ver-curso {
    transform: translateX(5px);
    color: #000 !important;
}

/* Capa de enlace general (opcional, para que toda la ficha sea clickeable menos los botones) */
.card-overlay-link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 75%; /* No cubre la zona de botones inferior */
    z-index: 1;
}

.courses-hero {
    display: none !important;
}

/* Estilos para la paginación */
.page-numbers {
    display: inline-block;
    padding: 8px 16px;
    margin: 0 4px;
    border-radius: 4px;
    background: #f8f9fa;
    color: #333;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 1px solid #dee2e6;
}

.page-numbers.current {
    background: #5a9bd5; /* O tu color corporativo */
    color: #fff;
    border-color: #5a9bd5;
}

.page-numbers:hover:not(.current) {
    background: #e9ecef;
}

/* .link-ver-curso:hover i {
    color: #000000;
} */

/* =====disposición de columnas y el manejo de la imagen===== */
/* Layout Principal */
.layout-wrapper {
    display: flex;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

.content-area {
    flex: 3; /* Ocupa el 75% aprox */
    min-width: 0; /* Evita desbordamientos de pre/code */
}

.sidebar-curso {
    flex: 1; /* Ocupa el 25% aprox */
    background: var(--sidebar-cursos-bg-color);
    padding: 20px;
    border-radius: 8px;
}

/* Control de Imagen Destacada */
.post-thumbnail img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    margin-bottom: 25px;
}

/* Responsive */
@media (max-width: 992px) {
    .layout-wrapper {
        flex-direction: column;
    }
    .sidebar-curso {
        order: 2; /* El sidebar baja al final en móviles */
    }
}

.ocultar-featured-image .post-thumbnail {
    display: none !important;
}

/* =====Estilo unificado para sidebars===== 
.sidebar-inner .widget {
    background: #fff;
    margin-bottom: 2rem;
}
*/

.entry-content {
    line-height: 1.8;
    font-size: 1.1rem;
    color: #333;
}

/* Evitar que la imagen destacada sea gigante si es vertical */
.post-thumbnail img {
    max-height: 60vh;
    width: 100%;
    object-fit: cover;
}

/* Ajustes para el template Curso Simple con Bootstrap */
#primary.site-main {
    padding-top: 0px !important;
    background-color: var(--bgr-mcurso-color); /* O el color de fondo que prefieras */
    min-height: 80vh;
}

/* Espaciado para el sidebar sticky */
.sidebar-inner {
    padding-left: 15px;
}

/* Widgets del sidebar de cursos */
.sidebar-inner .widget {
    margin-bottom: 30px;
    padding: 20px;
    background: var(--sidebar-cursos-bg-color);
    border: 1px solid #eee;
    border-radius: 8px;
}

/* Responsivo: en tablets el sidebar pasa abajo */
@media (max-width: 991px) {
    .sidebar-inner {
        padding-left: 0;
        margin-top: 40px;
    }
}

/* Bloque de categoría superior en la tarjeta de cursos */
.curso-category-badge {
    /* Degradado de #6c7a8d a #d0d7e2 */
    background: var(--cat-color1);
    padding: 8px 15px;
    width: 100%;
    border-top-left-radius: calc(0.375rem - 1px); /* Ajuste para que encaje con el borde de la tarjeta */
    border-top-right-radius: calc(0.375rem - 1px);
    display: flex;
    align-items: center;
}

.curso-category-badge .cat-name {
    color: var(--texto-categoria-color) !important;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-left: 5px; /* Margen a la izquierda del texto */
}
/*===============responsive ===============*/
/* Ajuste para que la imagen no tenga bordes redondeados arriba si hay categoría */
.curso-category-badge + .curso-image-container img {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

/* Ajustes para el header móvil */
@media (max-width: 767.98px) {
    .mobile-header-row {
        border-bottom: 1px solid #eee;
        background: #fff;
    }

    .mobile-logo-col img {
        max-width: 50px; /* Ajusta según tu logo */
        height: auto;
    }

    .mobile-site-name span {
        font-size: 0.9rem;
        letter-spacing: 1px;
        text-transform: uppercase;
    }

    .mobile-menu-col .navbar-toggler {
        border: none;
        font-size: 1.5rem;
        color: #333;
    }

    /* Estilo para el menú desplegable en móvil */
    #mainNavMobile {
        width: 100%;
        background: #f8f9fa;
        margin-top: 15px !important;
        padding: 15px;
        position: absolute;
        top: 60px; /* Ajusta según altura de tu header */
        left: 0;
        z-index: 9999;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }

    .mobile-nav-list {
        display: flex !important;
        flex-direction: column !important; /* Esto los pone uno debajo de otro */
        align-items: flex-start !important; /* Los alinea a la izquierda */
        padding: 15px 0;
        margin: 0;
        list-style: none;
        font-size: 1.15rem !important; /* Ajusta este valor (1.2rem, 1.3rem, 1.5rem) según tu gusto */
        font-weight: 500;             /* Un poco más de peso para que se lea mejor */
        letter-spacing: 0.5px;        /* Un toque de aire entre letras para estilo profesional */
        text-transform: uppercase;     /* (Opcional) Si quieres que mantenga la estética de los títulos */
    }

    .mobile-nav-list .nav-item {
        width: 100% !important; /* Ocupa todo el ancho para que el siguiente baje */
        display: block !important;
    }

    .mobile-nav-list .nav-link {
        display: block !important;
        width: 100%;
        padding: 12px 20px !important; /* Espaciado cómodo para el dedo */
        border-bottom: 1px solid rgba(0,0,0,0.05); /* Separador sutil */
        text-align: left !important;
        
    }

    /* Si tienes submenús (dropdowns), asegúrate de que también se alineen */
    .mobile-nav-list .dropdown-menu {
        border: none;
        background: transparent;
        padding-left: 15px; /* Sangría para subelementos */
        text-align: left;
    }
}

/* Evitar que el menú de escritorio interfiera */
@media (max-width: 991px) {
    #mainNavMobile .navbar-nav {
        flex-direction: column !important;
    }
}

#mainNavMobile {
    background-color: #ffffff; /* O el color de tu header */
    width: 100%;
    z-index: 1050;
    border-bottom: 2px solid var(--accent-color);
}

/* Estilos específicos para el título en móvil */
.mobile-site-name .site-title-styled {
    font-size: 0.85rem; /* Ajusta según prefieras el tamaño en móvil */
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: inline-block;
    line-height: 1.2;
}

.mobile-site-name .site-title-styled strong {
    font-weight: 800; /* Forzamos un peso mayor para el "Espacio fotográfico" */
    color: var(--primary-color);
}

.mobile-site-name .site-title-styled .city-name {
    color: #7d7d7d; /* El gris que usas en tu variable --secondary-color */
    font-weight: 400;
}


/*===============galería ===============*/
/* Estilos para Galería */
.galeria-card {
    transition: transform 0.3s ease;
}
.galeria-card:hover {
    transform: translateY(-5px);
}
.img-gallery-fit {
    height: 250px;
    object-fit: cover; /* Recorta la imagen para llenar el contenedor uniformemente */
    width: 100%;
}
.galeria-image-container {
    overflow: hidden;
    border-radius: 0.375rem 0.375rem 0 0;
}

/*==============pagina individual galería ===============*/
/* --- Escape Total de la Galería --- */

/* Contenedor principal de la página */
.galeria-wide-layout {
    width: 100% !important;
    max-width: 100% !important; /* Aquí anulamos cualquier herencia */
    margin: 0;
    padding: 0;
}

/* El Hero ocupa el 100% del viewport */
.hero-canvas {
    height: 90vh;
    width: 100%;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: flex-end;
}

.hero-canvas-overlay {
    width: 100%;
    background: linear-gradient(transparent, rgba(0,0,0,0.8));
    padding: 60px 5%; /* 5% de margen interno para que el texto no toque el borde */
}

/* Contenido del editor (Meta Slider, etc) */
.entry-content-canvas {
    width: 100%;
}

/* Forzamos a Meta Slider a ser 100% si está dentro */
.entry-content-canvas .metaslider {
    max-width: 100% !important;
}


.canvas-footer {
    display: flex;
    justify-content: space-between;
    padding: 40px 5%;
    border-top: 1px solid #eee;
}

/* ==========================================================================
   SOLUCIÓN PARA SUBMENÚS: HOVER EN DESKTOP Y VISIBLES EN MÓVIL
   ========================================================================== */

/* 1. COMPORTAMIENTO PARA ESCRITORIO (Pantallas grandes) */
@media (min-width: 768px) {
    /* Asegurar que el elemento padre tenga posición relativa para alinear el submenú */
    .navbar-nav li {
        position: relative;
    }

    /* Ocultar el submenú por defecto y darle estilo de caja flotante */
    .navbar-nav li .sub-menu,
    .navbar-nav li .dropdown-menu {
        position: absolute;
        top: 100%; /* Se posiciona justo debajo del texto del padre */
        left: 0;
        background-color: #ffffff; /* Fondo blanco para que no se transparente el contenido */
        min-width: 200px;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        padding: 10px 0;
        margin: 0;
        list-style: none;
        
        /* Ocultado inicial con transiciones suaves */
        opacity: 0;
        visibility: hidden;
        display: block !important; /* Evita conflictos si JS intenta forzar un display:none */
        transform: translateY(10px);
        transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
        z-index: 9999;
    }

    /* EFECTO HOVER: Mostrar el submenú cuando el mouse pasa por encima del padre */
    .navbar-nav li:hover > .sub-menu,
    .navbar-nav li:hover > .dropdown-menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    /* Estilos para los enlaces internos del submenú en desktop */
    .navbar-nav li .sub-menu li a,
    .navbar-nav li .dropdown-menu li a {
        padding: 8px 20px;
        font-size: 0.95rem;
        font-weight: 400;
        color: var(--text-on-light) !important;
        border-bottom: none;
    }

    /* Quitar la línea animada del hover del padre a los hijos del submenú */
    .navbar-nav li .sub-menu li a::after,
    .navbar-nav li .dropdown-menu li a::after {
        display: none !important;
    }

    /* Hover de los elementos del submenú */
    .navbar-nav li .sub-menu li a:hover,
    .navbar-nav li .dropdown-menu li a:hover {
        background-color: var(--bgr-franja2-color);
        color: var(--menu-overlay-color) !important;
    }
}

/* 2. COMPORTAMIENTO MÓVIL (Ajuste de seguridad) */
@media (max-width: 767.98px) {
    /* Forzar a que en móviles se mantengan estáticos y visibles en el bloque */
    .mobile-nav-list .sub-menu,
    .mobile-nav-list .dropdown-menu {
        position: static !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        transform: none !important;
        box-shadow: none !important;
        background: transparent !important;
        padding-left: 15px; /* Mantiene la sangría que ya tenías configurada */
    }
}

/* Ocultar por completo la columna de la agenda en la versión en inglés */
html[lang^="en"] .agenda-col {
    display: none !important;
}

/* Hacer que la columna del menú ocupe el 100% del ancho (estilo col-md-12) solo en inglés */
html[lang^="en"] .menu-col {
    flex: 0 0 100% !important;
    max-width: 100% !important;
}

.woocommerce-cart .related.products,
.woocommerce-cart .related {
    display: none !important;
}

.paso-item {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
}
.paso-item:hover {
    transform: translateY(-4px);
}