/*
Theme Name:   Centro Formacion Laguna Child
Theme URI:    https://centroformacionlaguna.com
Description:  Child Theme de Eduma para Centro de Formación Laguna
Author:       Juan Carlos Robles Magán
Author URI:   http://roblesmagan.com/
Template:     eduma
Version:      1.4.9
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  infosystem-child
Tags: education, e-learning, courses
*/

/* ============================================================
   INFOSYSTEM BRAND COLORS - VARIABLES CSS
   ============================================================ */
:root {
    --color-primary:        #022157;   /* Azul corporativo */
    --color-primary-dark:   #01163b;   /* Azul corporativo oscuro */
    --color-primary-light:  #0d3882;   /* Azul corporativo claro */
    --color-secondary:      #D4880A;   /* Dorado/Naranja corporativo */
    --color-secondary-dark: #B8720A;   /* Dorado oscuro hover */
    --color-secondary-light:#E8A020;   /* Dorado claro */
    --color-accent:         #D4880A;   /* Dorado corporativo */
    --color-text:           #2C2C2C;   /* Texto principal */
    --color-text-light:     #666666;   /* Texto secundario */
    --color-bg:             #FFFFFF;   /* Fondo principal */
    --color-bg-light:       #F8F5F0;   /* Fondo suave cálido */
    --color-bg-dark:        #111827;   /* Fondo oscuro footer */
    --color-border:         #E8DDD0;   /* Bordes suaves */

    --font-heading:         'Merriweather', Georgia, serif;
    --font-body:            'Source Sans Pro', 'Open Sans', Arial, sans-serif;

    --radius:               6px;
    --shadow-sm:            0 2px 8px rgba(2,33,87,0.1);
    --shadow-md:            0 4px 20px rgba(2,33,87,0.15);
    --shadow-lg:            0 8px 40px rgba(2,33,87,0.2);

    --transition:           all 0.3s ease;
}

/* ============================================================
   TIPOGRAFÍA
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@400;700;900&family=Source+Sans+Pro:wght@300;400;600;700&display=swap');

body {
    font-family: var(--font-body);
    color: var(--color-text);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-heading);
    color: var(--color-primary);
}

/* ============================================================
   BOTONES — COLOR PRIMARIO
   ============================================================ */
.btn,
button,
input[type="submit"],
input[type="button"],
.button,
a.btn,
.thim-btn,
.lp-button,
a.lp-button {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: #fff !important;
    border-radius: var(--radius) !important;
    font-family: var(--font-body) !important;
    font-weight: 600 !important;
    letter-spacing: 0.5px;
    transition: var(--transition) !important;
}

.btn:hover,
button:hover,
input[type="submit"]:hover,
.button:hover,
a.btn:hover,
.thim-btn:hover,
.lp-button:hover,
a.lp-button:hover {
    background-color: var(--color-secondary) !important;
    border-color: var(--color-secondary) !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: var(--shadow-md) !important;
}

/* Botones secundarios/outline */
.btn-outline,
.button-outline {
    background-color: transparent !important;
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
}

.btn-outline:hover {
    background-color: var(--color-primary) !important;
    color: #fff !important;
}

/* ============================================================
   HEADER / NAVEGACIÓN
   ============================================================ */
#header,
.site-header,
header.header,
.thim-header {
    background-color: var(--color-bg) !important;
    border-bottom: 3px solid var(--color-secondary) !important;
    box-shadow: 0 2px 15px rgba(2,33,87,0.08) !important;
}

/* Menú de navegación - enlaces */
#header .nav > li > a,
.site-header .nav > li > a,
header nav ul li a,
.main-navigation a,
.thim-header .nav > li > a {
    color: var(--color-primary) !important;
    font-family: var(--font-body) !important;
    font-weight: 600 !important;
    font-size: 14px;
    letter-spacing: 0.3px;
    transition: var(--transition) !important;
}

#header .nav > li > a:hover,
.site-header .nav > li > a:hover,
header nav ul li a:hover,
.main-navigation a:hover {
    color: var(--color-secondary) !important;
}

/* Menú activo */
#header .nav > li.current-menu-item > a,
#header .nav > li.active > a {
    color: var(--color-secondary) !important;
    border-bottom: 2px solid var(--color-secondary);
}

/* Submenú dropdown */
#header .nav .sub-menu,
.main-navigation .sub-menu {
    border-top: 3px solid var(--color-primary) !important;
    box-shadow: var(--shadow-md) !important;
}

#header .nav .sub-menu a,
.main-navigation .sub-menu a {
    color: var(--color-text) !important;
}

#header .nav .sub-menu a:hover,
.main-navigation .sub-menu a:hover {
    color: var(--color-primary) !important;
    background-color: var(--color-bg-light) !important;
}

/* ============================================================
   TOPBAR (barra superior)
   ============================================================ */
.topbar,
#topbar,
.thim-topbar {
    background-color: var(--color-primary) !important;
    color: #fff !important;
}

.topbar a,
#topbar a,
.thim-topbar a {
    color: #fff !important;
}

.topbar a:hover,
.thim-topbar a:hover {
    color: var(--color-secondary) !important;
}

/* ============================================================
   HERO / REVOLUTION SLIDER
   ============================================================ */
.rev_slider_wrapper,
.tp-banner-container {
    border-bottom: 4px solid var(--color-secondary);
}

/* Overlay en slides */
.tp-caption a,
.tp-caption .btn,
.rev_slider .tp-caption a {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

/* ============================================================
   SECCIÓN DE PLANES / CURSOS
   ============================================================ */
.section-plans,
.thim-sc-courses,
.lp-archive-courses {
    background-color: var(--color-bg-light);
}

/* Tarjetas de cursos */
.course-item,
.item-course,
.lp-course-item,
.learnpress-courses .course {
    border-radius: var(--radius) !important;
    border: 1px solid var(--color-border) !important;
    transition: var(--transition) !important;
    overflow: hidden;
}

.course-item:hover,
.item-course:hover,
.lp-course-item:hover {
    transform: translateY(-5px) !important;
    box-shadow: var(--shadow-lg) !important;
    border-color: var(--color-secondary) !important;
}

/* Precio de curso */
.course-price,
.lp-course-price,
.price {
    color: var(--color-primary) !important;
    font-weight: 700 !important;
}

/* Badge GRATIS */
.course-free,
.free-badge,
span.free {
    background-color: var(--color-secondary) !important;
    color: #fff !important;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

/* ============================================================
   SECCIÓN "POR QUÉ ELEGIRNOS" / ICONOS
   ============================================================ */
.why-choose-us .icon,
.thim-sc-icon-box .icon,
.elementor-icon,
.icon-box .icon {
    color: var(--color-primary) !important;
}

.thim-sc-icon-box:hover .icon,
.icon-box:hover .icon {
    color: var(--color-secondary) !important;
}

.thim-sc-icon-box h3,
.icon-box h3 {
    color: var(--color-primary) !important;
}

/* ============================================================
   SECCIÓN REGISTRO / NEWSLETTER
   ============================================================ */
.section-register,
.newsletter-section,
.thim-sc-register {
    background-color: var(--color-primary) !important;
    color: #fff !important;
}

.section-register h2,
.section-register h3,
.newsletter-section h2,
.thim-sc-register h2 {
    color: #fff !important;
}

/* Input de email en newsletter */
.newsletter-section input[type="email"],
.newsletter-section input[type="text"],
.mc4wp-form input[type="email"] {
    border: 2px solid var(--color-secondary) !important;
    border-radius: var(--radius) !important;
    padding: 12px 16px !important;
}

.newsletter-section input[type="submit"],
.mc4wp-form input[type="submit"] {
    background-color: var(--color-secondary) !important;
    border-color: var(--color-secondary) !important;
    color: #fff !important;
}

/* ============================================================
   SECCIÓN DE TESTIMONIOS
   ============================================================ */
.testimonials-section,
.thim-sc-testimonials {
    background-color: var(--color-bg-light) !important;
}

.testimonial-item .quote-icon,
.testimonials .quote {
    color: var(--color-secondary) !important;
}

/* ============================================================
   CABECERA, PORTADA Y LOGO DE PIE
   ============================================================ */
@media (min-width: 1025px) {
    html body #header,
    html body #masthead {
        --thim-width-logo: 280px;
    }

    html body #header .width-logo .thim-logo img,
    html body #masthead .width-logo .thim-logo img {
        width: 250px !important;
        max-width: 250px !important;
        max-height: 76px !important;
        height: auto !important;
        object-fit: contain;
    }
}

@media (max-width: 1024px) {
    html body #header,
    html body #masthead {
        --thim-width-logo: 210px;
    }

    html body #header .width-logo .thim-logo img,
    html body #masthead .width-logo .thim-logo img,
    html body .site-header .thim-logo img {
        width: 190px !important;
        max-width: 190px !important;
        max-height: 62px !important;
        height: auto !important;
        object-fit: contain;
    }
}

html body.home .elementor-element-1de9e11 {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 24px !important;
}

html body.home .elementor-element-c091706 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
}

body.home .elementor .e-283b33f-0b2fc97 {
    max-width: 1150px;
    font-family: "Source Sans Pro", Arial, sans-serif !important;
    font-size: clamp(42px, 4.4vw, 60px) !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em;
}

body.home .elementor .e-ad1dace-8e1787a {
    font-family: "Source Sans Pro", Arial, sans-serif !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    letter-spacing: 0.025em;
}

body.home .elementor .e-d96f521-fb79dfc {
    max-width: 1050px !important;
    font-family: "Source Sans Pro", Arial, sans-serif !important;
    font-size: 18px !important;
    line-height: 1.6 !important;
}

html body.home .elementor-element-1023731 {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100% !important;
    margin: 0 !important;
}

html body.home .elementor-element-1023731 > .elementor-element {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 7px !important;
    width: auto !important;
    min-height: 112px !important;
    margin: 0 !important;
    padding: 18px !important;
    border: 1px solid #b9d8ff !important;
    border-radius: 14px !important;
    background: #dcecff !important;
    box-shadow: 0 8px 22px rgba(2, 33, 87, 0.16) !important;
    backdrop-filter: none !important;
}

html body.home .elementor-element-1023731 .elementor-element h2 {
    margin: 0 !important;
    color: #082f6b !important;
    font-family: "Source Sans Pro", Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
}

html body.home .elementor-element-1023731 .elementor-element p {
    margin: 0 !important;
    color: #163f73 !important;
    font-family: "Source Sans Pro", Arial, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.42 !important;
}

/* El logo circular blanco debe quedar limpio sobre el fondo oscuro del footer. */
html body .elementor-8920 .elementor-element-69f4823 img {
    width: 148px !important;
    height: 148px !important;
    max-width: 148px !important;
    max-height: 148px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    box-shadow: none !important;
    object-fit: contain !important;
}

@media (max-width: 1024px) {
    html body.home .elementor-element-1023731 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    html body #header .width-logo .thim-logo img,
    html body #masthead .width-logo .thim-logo img,
    html body .site-header .thim-logo img {
        width: 180px !important;
        max-width: 180px !important;
        max-height: 56px !important;
    }

    body.home .elementor .e-283b33f-0b2fc97 {
        font-size: clamp(36px, 8vw, 48px) !important;
        line-height: 1.08 !important;
    }

    body.home .elementor .e-d96f521-fb79dfc {
        font-size: 16px !important;
    }

    html body.home .elementor-element-1023731 > .elementor-element {
        min-height: 100px !important;
        padding: 14px !important;
    }

    html body.home .elementor-element-1023731 .elementor-element h2 {
        font-size: 17px !important;
    }

    html body.home .elementor-element-1023731 .elementor-element p {
        font-size: 13px !important;
    }

    html body .elementor-8920 .elementor-element-69f4823 img {
        width: 120px !important;
        height: 120px !important;
        max-width: 120px !important;
        max-height: 120px !important;
    }
}

/* ============================================================
   CABECERAS INTERIORES, MIGAS Y CATÁLOGO A ANCHO COMPLETO
   ============================================================ */
body:not(.home) .top_heading_out .top_site_main {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 300px !important;
    background-image: linear-gradient(rgba(2, 33, 87, 0.72), rgba(1, 22, 59, 0.82)), url("https://centroformacionlaguna.com/wp-content/uploads/2026/09/centro-formacion-laguna-home.webp") !important;
    background-position: center 45% !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
}

body:not(.home) .top_heading_out .top_site_main > .overlay-top-header {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    background: linear-gradient(rgba(2, 33, 87, 0.38), rgba(1, 22, 59, 0.48)), url("https://centroformacionlaguna.com/wp-content/uploads/2026/09/centro-formacion-laguna-home.webp") center 45% / cover no-repeat !important;
    opacity: 1 !important;
}

body:not(.home) .top_heading_out .page-title-wrapper {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 300px !important;
    padding: 24px !important;
}

body:not(.home) .top_heading_out h1.page-title,
body:not(.home) .top_heading_out .page-title {
    color: #fff !important;
    text-align: center !important;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.42) !important;
}

/* Ocultar las migas de pan en todas las páginas interiores. */
body:not(.home) .breadcrumbs-wrapper,
body:not(.home) .breadcrumbs,
body:not(.home) #breadcrumbs,
body:not(.home) .breadcrumb,
body:not(.home) nav[aria-label="Breadcrumb"] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* El archivo de cursos utiliza todo el ancho disponible, sin la columna lateral vacía. */
body.woocommerce-shop .site-content.container,
body.post-type-archive-product .site-content.container,
body.tax-product_cat .site-content.container {
    width: 100% !important;
    max-width: 1140px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 15px !important;
    padding-left: 15px !important;
}

body.woocommerce-shop .site-content > .row,
body.post-type-archive-product .site-content > .row,
body.tax-product_cat .site-content > .row {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body.woocommerce-shop .site-content #sidebar,
body.woocommerce-shop .site-content .widget-area,
body.post-type-archive-product .site-content #sidebar,
body.post-type-archive-product .site-content .widget-area,
body.tax-product_cat .site-content #sidebar,
body.tax-product_cat .site-content .widget-area {
    display: none !important;
    width: 0 !important;
    max-width: 0 !important;
    overflow: hidden !important;
}

body.woocommerce-shop .site-content main.site-main,
body.post-type-archive-product .site-content main.site-main,
body.tax-product_cat .site-content main.site-main {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body.woocommerce-shop ul.product-grid,
body.post-type-archive-product ul.product-grid,
body.tax-product_cat ul.product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 28px !important;
    row-gap: 36px !important;
}

@media (max-width: 1200px) {
    body.woocommerce-shop ul.product-grid,
    body.post-type-archive-product ul.product-grid,
    body.tax-product_cat ul.product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    body:not(.home) .top_heading_out .top_site_main,
    body:not(.home) .top_heading_out .page-title-wrapper {
        min-height: 220px !important;
    }

    body.woocommerce-shop .site-content.container,
    body.post-type-archive-product .site-content.container,
    body.tax-product_cat .site-content.container {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }

    body.woocommerce-shop ul.product-grid,
    body.post-type-archive-product ul.product-grid,
    body.tax-product_cat ul.product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px !important;
    }
}

@media (max-width: 520px) {
    body.woocommerce-shop ul.product-grid,
    body.post-type-archive-product ul.product-grid,
    body.tax-product_cat ul.product-grid {
        grid-template-columns: 1fr !important;
    }
}

.testimonial-item .author-name,
.testimonials .name {
    color: var(--color-primary) !important;
    font-weight: 700;
}

/* Estrellas de valoración */
.star-rating span::before,
.ratings .star::before {
    color: var(--color-secondary) !important;
}

/* ============================================================
   BLOG - ENTRADAS
   ============================================================ */
.post-title a,
.entry-title a,
h2.entry-title a {
    color: var(--color-primary) !important;
    transition: var(--transition);
}

.post-title a:hover,
.entry-title a:hover {
    color: var(--color-secondary) !important;
}

.category-label,
.post-categories a {
    background-color: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 4px;
    padding: 2px 8px;
}

.read-more a,
a.more-link {
    color: var(--color-primary) !important;
    font-weight: 600;
    border-bottom: 2px solid var(--color-secondary);
}

.read-more a:hover,
a.more-link:hover {
    color: var(--color-secondary) !important;
}

/* ============================================================
   BREADCRUMBS
   ============================================================ */
.breadcrumbs,
.breadcrumb {
    background-color: var(--color-bg-light) !important;
    border-bottom: 2px solid var(--color-border);
}

.breadcrumbs a,
.breadcrumb a {
    color: var(--color-primary) !important;
}

.breadcrumbs .current,
.breadcrumb .active {
    color: var(--color-secondary) !important;
}

/* ============================================================
   PAGINACIÓN
   ============================================================ */
.pagination .current,
.page-numbers.current {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: #fff !important;
}

.pagination a,
.page-numbers a {
    color: var(--color-primary) !important;
    border-color: var(--color-border) !important;
}

.pagination a:hover,
.page-numbers a:hover {
    background-color: var(--color-primary) !important;
    color: #fff !important;
}

/* ============================================================
   FOOTER
   ============================================================ */
#footer,
.site-footer,
footer.footer,
.thim-footer {
    background-color: var(--color-bg-dark) !important;
    color: #ccc !important;
    border-top: 4px solid var(--color-secondary) !important;
}

#footer h3,
#footer h4,
.site-footer h3,
.site-footer h4,
.thim-footer h3,
.thim-footer .widget-title {
    color: var(--color-secondary) !important;
    font-family: var(--font-heading) !important;
    border-bottom: 1px solid rgba(212,136,10,0.3);
    padding-bottom: 8px;
    margin-bottom: 16px;
}

#footer a,
.site-footer a,
.thim-footer a {
    color: #bbb !important;
    transition: var(--transition);
}

#footer a:hover,
.site-footer a:hover,
.thim-footer a:hover {
    color: var(--color-secondary) !important;
}

/* Footer bottom bar */
.footer-bottom,
.copyright-bar,
#footer .bottom {
    background-color: #0D0505 !important;
    border-top: 1px solid rgba(212,136,10,0.2) !important;
    color: #999 !important;
}

.footer-bottom a {
    color: var(--color-secondary) !important;
}

/* Iconos RRSS */
.social-icons a,
.social-links a,
.thim-social a {
    background-color: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 50% !important;
    width: 36px !important;
    height: 36px !important;
    line-height: 36px !important;
    text-align: center !important;
    display: inline-block !important;
    transition: var(--transition) !important;
}

.social-icons a:hover,
.social-links a:hover {
    background-color: var(--color-secondary) !important;
    transform: translateY(-2px);
}

/* ============================================================
   LEARNPRESS — PÁGINA DE CURSO INDIVIDUAL
   ============================================================ */
.course-summary,
.single-course .course-info {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius) !important;
}

.course-info .price,
.single-course .course-price {
    color: var(--color-primary) !important;
    font-size: 28px !important;
    font-weight: 700 !important;
}

.lp-buy-course,
.course-enroll-btn,
.btn-enroll {
    background-color: var(--color-primary) !important;
    color: #fff !important;
    font-size: 16px !important;
    padding: 14px 28px !important;
    border-radius: var(--radius) !important;
    width: 100% !important;
    text-align: center !important;
    font-weight: 700 !important;
}

.lp-buy-course:hover,
.course-enroll-btn:hover {
    background-color: var(--color-secondary) !important;
}

/* Tabs del curso */
.lp-course-nav li a,
.course-tabs li a {
    color: var(--color-text) !important;
    border-bottom: 3px solid transparent;
}

.lp-course-nav li.active a,
.lp-course-nav li a:hover,
.course-tabs li.active a {
    color: var(--color-primary) !important;
    border-bottom-color: var(--color-primary) !important;
}

/* ============================================================
   SECCIÓN DE PLANES DESTACADOS (Cards de Plan)
   ============================================================ */
.plan-card,
.pricing-table,
.thim-sc-pricing {
    border: 2px solid var(--color-border) !important;
    border-radius: var(--radius) !important;
    transition: var(--transition) !important;
}

.plan-card:hover,
.pricing-table:hover {
    border-color: var(--color-primary) !important;
    box-shadow: var(--shadow-lg) !important;
    transform: translateY(-5px);
}

.plan-card .plan-header,
.pricing-table .plan-name {
    background-color: var(--color-primary) !important;
    color: #fff !important;
    padding: 20px !important;
    border-radius: var(--radius) var(--radius) 0 0 !important;
}

.plan-card.featured,
.pricing-table.featured {
    border-color: var(--color-secondary) !important;
}

.plan-card.featured .plan-header {
    background-color: var(--color-secondary) !important;
}

/* ============================================================
   FORMULARIOS — CONTACTO
   ============================================================ */
.contact-form input,
.contact-form textarea,
.wpcf7 input,
.wpcf7 textarea,
.wpcf7 select {
    border: 2px solid var(--color-border) !important;
    border-radius: var(--radius) !important;
    padding: 12px 16px !important;
    transition: var(--transition) !important;
    font-family: var(--font-body) !important;
}

.contact-form input:focus,
.contact-form textarea:focus,
.wpcf7 input:focus,
.wpcf7 textarea:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(2,33,87,0.1) !important;
    outline: none !important;
}

.wpcf7-submit,
.contact-form [type="submit"] {
    background-color: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    padding: 14px 32px !important;
    border-radius: var(--radius) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: var(--transition) !important;
}

.wpcf7-submit:hover,
.contact-form [type="submit"]:hover {
    background-color: var(--color-secondary) !important;
}

/* ============================================================
   WIDGETS — BARRA LATERAL
   ============================================================ */
.widget-title,
.widget h3,
aside .widget h2 {
    color: var(--color-primary) !important;
    border-left: 4px solid var(--color-secondary) !important;
    padding-left: 12px !important;
    font-family: var(--font-heading) !important;
}

/* ============================================================
   SECCIÓN HERO / BANNER INTERIOR DE PÁGINAS
   ============================================================ */
.page-header-banner,
.thim-page-header,
.inner-page-header {
    background-color: var(--color-primary) !important;
    position: relative;
}

.page-header-banner::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-secondary), var(--color-primary));
}

.page-header-banner h1,
.thim-page-header h1 {
    color: #fff !important;
    font-family: var(--font-heading) !important;
}

/* ============================================================
   ACCESIBILIDAD — FOCUS
   ============================================================ */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 3px solid var(--color-secondary) !important;
    outline-offset: 2px !important;
}

/* ============================================================
   SCROLLBAR PERSONALIZADO (Chrome/Edge)
   ============================================================ */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--color-bg-light);
}

::-webkit-scrollbar-thumb {
    background: var(--color-primary);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--color-secondary);
}

/* ============================================================
   RESPONSIVE — AJUSTES MÓVIL
   ============================================================ */
@media (max-width: 768px) {
    h1 { font-size: 1.8rem; }
    h2 { font-size: 1.5rem; }
    h3 { font-size: 1.2rem; }

    .course-item,
    .plan-card {
        margin-bottom: 20px;
    }

    #header .nav {
        background-color: var(--color-bg) !important;
    }

    /* Botón hamburguesa */
    .navbar-toggle span,
    .menu-toggle span {
        background-color: var(--color-primary) !important;
    }
}

@media (max-width: 480px) {
    .btn, button, .button {
        width: 100%;
        text-align: center;
    }
}

/* ============================================================
   ANTI-GRAVITY: CORRECCIONES DE MAQUETACIÓN E INICIO
   ============================================================ */

/* 1. Ocultar Itinerarios Formativos en la home */
.elementor-element-97858f2 {
    display: none !important;
}



/* 3. Correcciones de la página de Cursos (ancho 100% y centrado) */
body.tax-product_cat .site-content > .row {
    display: flex !important;
    justify-content: center !important;
}

body.tax-product_cat .site-content #sidebar,
body.tax-product_cat .site-content .widget-area {
    display: none !important;
    width: 0 !important;
    overflow: hidden !important;
}

body.tax-product_cat .site-content main.site-main {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    float: none !important;
}

/* Ajustes de Grid de Cursos (WooCommerce) */
body.tax-product_cat .product-grid {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    column-gap: 30px !important;
    row-gap: 40px !important;
}

@media (max-width: 991px) {
    body.tax-product_cat .product-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 600px) {
    body.tax-product_cat .product-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Tarjetas de Cursos Simétricas de Alta Calidad */
body.tax-product_cat .product-grid .product {
    display: flex !important;
    flex-direction: column !important;
}

body.tax-product_cat .product-grid .product .content__product {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    background: #ffffff !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 8px !important;
    padding: 24px !important;
    box-shadow: var(--shadow-sm) !important;
    transition: var(--transition) !important;
    box-sizing: border-box !important;
}

body.tax-product_cat .product-grid .product .content__product:hover {
    transform: translateY(-5px) !important;
    box-shadow: var(--shadow-md) !important;
    border-color: var(--color-secondary) !important;
}

/* Tipografía de las Tarjetas */
body.tax-product_cat .product-grid .product .product__title {
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
    margin-top: 15px !important;
}

body.tax-product_cat .product-grid .product .product__title a.title {
    font-family: var(--font-heading) !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
    line-height: 1.4 !important;
    text-decoration: none !important;
    margin-bottom: 10px !important;
}

body.tax-product_cat .product-grid .product .product__title a.title:hover {
    color: var(--color-secondary) !important;
}

body.tax-product_cat .product-grid .product .product__title .price {
    font-family: var(--font-body) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: var(--color-secondary) !important;
    margin-bottom: 12px !important;
}

body.tax-product_cat .product-grid .product .product__title .description {
    flex-grow: 1 !important;
    margin-bottom: 20px !important;
}

body.tax-product_cat .product-grid .product .product__title .description p {
    font-family: var(--font-body) !important;
    font-size: 0.9rem !important;
    color: var(--color-text-light) !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* Botones Granate de la Tarjeta */
body.tax-product_cat .product-grid .product .product__title a.button {
    font-family: var(--font-body) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    background-color: var(--color-primary) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 12px 24px !important;
    text-align: center !important;
    text-decoration: none !important;
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transition: var(--transition) !important;
}

body.tax-product_cat .product-grid .product .product__title a.button:hover {
    background-color: var(--color-secondary) !important;
    color: #ffffff !important;
    box-shadow: var(--shadow-sm) !important;
}

/* 4. Correcciones de la página de Curso Individual (ancho 100% y centrado) */
body.single-product .site-content > .row {
    display: flex !important;
    justify-content: center !important;
}

body.single-product .site-content #sidebar,
body.single-product .site-content .widget-area {
    display: none !important;
    width: 0 !important;
    overflow: hidden !important;
}

body.single-product .site-content main.site-main {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    float: none !important;
}

/* Ocultar precios e importes en la página de curso individual */
body.single-product .price,
body.single-product .amount,
body.single-product .woocommerce-Price-amount,
body.single-product .course-price {
    display: none !important;
}

/* Centrar verticalmente el título de los banners de cabecera en todas las páginas internas y fijar altura a 300px */
body:not(.home) .top_heading,
body:not(.home) .top_heading.style_heading_3_out {
    display: block !important;
    width: 100% !important;
    height: 300px !important;
    min-height: 300px !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background-color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    position: relative !important;
}

body:not(.home) .top_heading .top_site_main {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    position: relative !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background: transparent !important;
}

body:not(.home) .top_heading .top_site_main span.overlay-top-header {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
    opacity: 1 !important;
    display: block !important;
}

body:not(.home) .top_heading .page-title-wrapper {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background: transparent !important;
}

body:not(.home) .top_heading .banner-wrapper {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background: transparent !important;
}

body:not(.home) .top_heading h1.page-title,
body:not(.home) .top_heading h2.page-title,
body:not(.home) .top_heading .page-title {
    color: #fff !important;
    text-shadow: 0 4px 28px rgba(0,0,0,.45) !important;
    font-size: clamp(28px, 4vw, 48px) !important;
    font-weight: 800 !important;
    letter-spacing: .3px !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    text-align: center !important;
}

/* === Redes Sociales en Compartir (Instagram, TikTok, LinkedIn) === */
.thim-social-share li .instagram-social a.instagram,
.thim-social-share li .tiktok-social a.tiktok,
.thim-social-share li .linkedin-social a.linkedin {
    background: #ffffff !important;
    border: 1px solid #eeeeee !important;
    color: #999999 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s ease !important;
}
.thim-social-share li .instagram-social a.instagram:hover {
    background: #e1306c !important;
    border-color: #e1306c !important;
    color: #ffffff !important;
}
.thim-social-share li .tiktok-social a.tiktok:hover {
    background: #000000 !important;
    border-color: #000000 !important;
    color: #ffffff !important;
}
.thim-social-share li .linkedin-social a.linkedin:hover {
    background: #0077b5 !important;
    border-color: #0077b5 !important;
    color: #ffffff !important;
}

/* === Ocultar bloque de eventos vacío en el Inicio === */
body.home .elementor-element-c7360be {
    display: none !important;
}

/* === Alinear y bajar las 3 tarjetas de estadísticas (badges) en el Inicio (Desktop Only) === */
@media (min-width: 1025px) {
    body.home .elementor-element-1023731 {
        display: flex !important;
        align-self: center !important;
        margin-top: 50px !important; /* Bajarlo para centrarlo verticalmente */
        margin-bottom: 0 !important;
    }
}

/* Evitar desbordamiento horizontal y ocultar estadísticas en móviles/tablets */
@media (max-width: 1024px) {
    html {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
        height: auto !important;
    }
    
    body {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
        height: auto !important;
        min-height: 100% !important;
        touch-action: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
    
    #wrapper-container,
    #page, 
    #main-content,
    .content-pusher,
    .site-content {
        max-width: 100% !important;
        /* Use clip to hide horizontal overflow without creating a nested scroll port */
        overflow-x: clip !important;
        overflow-y: visible !important;
        height: auto !important;
    }

    /* Asegurar que el menú móvil no intercepte gestos ni bloquee toques cuando está cerrado */
    .mobile-menu-wrapper {
        pointer-events: none !important;
        visibility: hidden !important;
    }
    
    /* Restaurar interacción sólo cuando el menú móvil está abierto */
    body.mobile-menu-open .mobile-menu-wrapper {
        pointer-events: auto !important;
        visibility: visible !important;
    }
    
    html body.home .elementor-element-63b7721,
    html body.home .elementor-element-1de9e11 {
        max-width: 100% !important;
        overflow: hidden !important;
    }

    /* Ocultar las tarjetas de estadísticas (badges de valoración, alumnos y cursos) */
    html body.home .elementor-element-1023731 {
        display: none !important;
    }

    /* Hacer que la columna del texto de la home ocupe el 100% en móvil */
    html body.home .elementor-element-c091706 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
        padding-inline-start: 15px !important;
        padding-inline-end: 15px !important;
        box-sizing: border-box !important;
    }

    /* Stack la sección de registro/contacto en vertical (texto/contador y formulario) */
    html body.home .elementor-element-13251ef {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        gap: 30px !important;
        padding-inline-start: 15px !important;
        padding-inline-end: 15px !important;
        box-sizing: border-box !important;
    }

    html body.home .elementor-element-e7657e1,
    html body.home .elementor-element-ba75f78 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }

    /* Contact Form 7 - Campos a pantalla completa con espaciado en móviles */
    html body.home .elementor-element-ba75f78 .wpcf7-form p,
    html body.home .elementor-element-ba75f78 .wpcf7-form-control-wrap {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    html body.home .elementor-element-ba75f78 .wpcf7-form-control:not([type="checkbox"]):not([type="radio"]) {
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        box-sizing: border-box !important;
        margin-bottom: 15px !important;
        padding: 12px 16px !important;
    }
    html body.home .elementor-element-ba75f78 .wpcf7-submit {
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        box-sizing: border-box !important;
    }

    /* Stack la sección de testimonios en vertical (cabecera/imagen y opinión del alumno) */
    html body.home .elementor-element-40afa39 {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        gap: 30px !important;
        padding-inline-start: 15px !important;
        padding-inline-end: 15px !important;
        box-sizing: border-box !important;
    }

    html body.home .elementor-element-f70fa44 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }

    /* Imagen superior de testimonios a pantalla completa (edge-to-edge) */
    html body.home .elementor-element-9247b75 {
        width: calc(100% + 30px) !important;
        max-width: calc(100% + 30px) !important;
        margin-left: -15px !important;
        margin-right: -15px !important;
        padding: 0 !important;
        margin-top: 25px !important;
        margin-bottom: 25px !important;
        display: block !important;
    }

    html body.home .elementor-element-9247b75 img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        display: block !important;
        border-radius: 0 !important;
    }

    /* Columna de la opinión del alumno al 100% de ancho */
    html body.home .elementor-element-5c9ae4e {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
        padding: 0 !important;
    }

    /* Stack la sección "¿Por Qué Elegirnos?" en vertical (imagen arriba, acordeón abajo) */
    html body.home .elementor-element-838dd52 {
        display: flex !important;
        flex-direction: column-reverse !important; /* Imagen arriba, textos abajo */
        width: 100% !important;
        max-width: 100% !important;
        gap: 30px !important;
        padding-inline-start: 15px !important;
        padding-inline-end: 15px !important;
        box-sizing: border-box !important;
    }

    /* Columna del acordeón al 100% de ancho */
    html body.home .elementor-element-f7833b3 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
        padding: 0 !important;
    }

    /* Columna de la imagen principal a pantalla completa (edge-to-edge) */
    html body.home .elementor-element-977acbf {
        width: calc(100% + 30px) !important;
        max-width: calc(100% + 30px) !important;
        margin-left: -15px !important;
        margin-right: -15px !important;
        padding: 0 !important;
        flex: 1 1 100% !important;
        display: block !important;
    }

    /* Imagen principal a ancho completo */
    html body.home .elementor-element-977acbf img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        display: block !important;
        border-radius: 0 !important;
    }

    /* APILAR ELEMENTOS INTERNOS DEL ACORDEÓN (Texto arriba, imagen abajo) */
    .e-n-accordion-item div[role="region"] {
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important;
        width: 100% !important;
        padding: 15px !important;
        box-sizing: border-box !important;
    }

    /* Contenedores hijos de texto/imagen en el acordeón al 100% */
    .e-n-accordion-item div[role="region"] > .e-con,
    .e-n-accordion-item div[role="region"] > .elementor-element {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }

    /* Imagen interior del acordeón a pantalla completa */
    .e-n-accordion-item div[role="region"] img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        display: block !important;
        margin: 15px auto 0 !important;
        border-radius: 8px !important;
    }
}


.e-n-accordion-item-title {
    padding: 10px 0 !important; /* Reducir padding vertical del título */
}

.e-n-accordion-item-title-text {
    font-size: 1.05rem !important;
    margin: 0 !important;
}

.e-n-accordion-item[open] .e-n-accordion-item-title {
    border-bottom: none !important;
}

.e-n-accordion-item div[role="region"] {
    padding-top: 0 !important;
    padding-bottom: 10px !important;
    line-height: 1.5 !important;
}

/* === Quitar bordes y cuadros de los botones de navegación === */
#header .nav > li,
#header .nav > li > a,
.thim-ekits-menu__nav-link,
.thim-ekits-menu__nav-link.active,
.menu-item-16477,
.menu-item-16477 > a,
.current-menu-item > a,
.active > a,
.thim-ekits-menu__nav > li,
.thim-ekits-menu__nav > li > a {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    background: transparent !important;
    border-color: transparent !important;
}

/* === Centrado vertical y alineación del menú del Header === */
@media (min-width: 1025px) {
    #header .tm-table,
    .site-header .tm-table {
        display: table !important;
        width: 100% !important;
        table-layout: auto !important;
    }

    #header .tm-table .width-logo,
    .site-header .tm-table .width-logo {
        width: auto !important;
        display: table-cell !important;
        vertical-align: middle !important;
        white-space: nowrap !important;
    }

    #header .tm-table .width-navigation,
    .site-header .tm-table .width-navigation,
    #header .width-navigation,
    .site-header .width-navigation {
        width: 100% !important;
        display: table-cell !important;
        vertical-align: middle !important;
    }

    .thim-ekits-menu__nav {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important; /* Align items to the far right */
        width: 100% !important; /* Stretch menu container to full width of cell */
        margin-left: auto !important;
        margin-top: 8px !important; /* Centrarlo visualmente */
        padding: 0 !important;
    }

    #header .nav > li,
    .thim-ekits-menu__nav > li {
        float: none !important;
        display: inline-flex !important;
        align-items: center !important;
        vertical-align: middle !important;
    }

    /* Hide the menu-right CTA (phone/button widget) on desktop to let Contacto be the rightmost element */
    .thim-ekits-menu__nav > li.menu-right {
        display: none !important;
    }

    /* Style Contacto (menu-item-16720) as a highlighted red button on desktop */
    #header .nav > li.menu-item-16720 > a,
    .thim-ekits-menu__nav > li.menu-item-16720 > a {
        background-color: var(--color-primary) !important;
        color: #ffffff !important;
        padding: 8px 20px !important;
        border-radius: 30px !important; /* Redondo / Pill-shaped button */
        font-weight: 700 !important;
        transition: all 0.3s ease !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border: none !important;
        border-bottom: none !important;
        margin-left: 15px !important; /* Separación con el menú */
        box-shadow: 0 4px 10px rgba(2, 33, 87, 0.2) !important;
        text-transform: uppercase !important;
        font-size: 13px !important;
    }

    #header .nav > li.menu-item-16720 > a:hover,
    .thim-ekits-menu__nav > li.menu-item-16720 > a:hover {
        background-color: var(--color-secondary) !important; /* Dorado en hover */
        color: #ffffff !important;
        transform: translateY(-2px) !important;
        box-shadow: 0 6px 15px rgba(212, 136, 10, 0.3) !important;
    }

    /* Remove active border bottom highlight since it is now styled as a button */
    #header .nav > li.menu-item-16720.current-menu-item > a,
    #header .nav > li.menu-item-16720.active > a,
    #header .nav > li.menu-item-16720 > a:hover {
        border-bottom: none !important;
        color: #ffffff !important;
    }
}


/* === Ocultar las imágenes de los cursos en la sección "Últimos Cursos Incorporados" de la Home === */
html body.home .elementor-element-bc66c40 .product_thumb,
html body.home .elementor-element-bc66c40 .product-image,
html body.home .elementor-element-bc66c40 .course-thumbnail,
html body.home .elementor-element-bc66c40 .thim-course-image,
html body.home .elementor-element-bc66c40 img.wp-post-image,
html body.home .elementor-element-bc66c40 .woocommerce-placeholder {
    display: none !important;
}

/* Forzar simetría y maquetación de tarjetas sin imagen en "Últimos Cursos Incorporados" */
html body.home .elementor-element-bc66c40 li.product,
html body.home .elementor-element-bc66c40 .product-grid .product {
    display: flex !important;
    flex-direction: column !important;
}

html body.home .elementor-element-bc66c40 li.product .content__product,
html body.home .elementor-element-bc66c40 .product-grid .product .content__product {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    min-height: 280px !important; /* Altura mínima uniforme sin imágenes */
    background: #ffffff !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 8px !important;
    padding: 24px !important;
    box-shadow: var(--shadow-sm) !important;
    transition: var(--transition) !important;
    box-sizing: border-box !important;
}

html body.home .elementor-element-bc66c40 li.product .content__product:hover,
html body.home .elementor-element-bc66c40 .product-grid .product .content__product:hover {
    transform: translateY(-5px) !important;
    box-shadow: var(--shadow-md) !important;
    border-color: var(--color-secondary) !important;
}

html body.home .elementor-element-bc66c40 li.product .product__title,
html body.home .elementor-element-bc66c40 .product-grid .product .product__title {
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
    margin-top: 0 !important; /* No necesita margen superior al no haber imagen */
}

html body.home .elementor-element-bc66c40 li.product .description,
html body.home .elementor-element-bc66c40 .product-grid .product .description {
    flex-grow: 1 !important;
}

/* ============================================================
   ANTI-GRAVITY: CONTACT PAGE GRID RESPONSIVENESS (FORCE STACK)
   ============================================================ */
@media (max-width: 1024px) {
    /* Add nice side margins/padding to the intro text block to prevent it from touching screen edges */
    body.page-id-16719 .infosystem-contact-intro,
    body.page-slug-contacto .infosystem-contact-intro {
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
    }

    /* Add nice side margins/padding to the panels grid to separate it from screen edges */
    body.page-id-16719 .infosystem-contact-layout,
    body.page-slug-contacto .infosystem-contact-layout,
    html body.page-id-16719 .infosystem-contact-layout {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 30px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
    }
    
    body.page-id-16719 .infosystem-contact-panel--visual,
    body.page-slug-contacto .infosystem-contact-panel--visual {
        grid-column: 1 / -1 !important;
        min-height: 280px !important;
    }

    body.page-id-16719 .infosystem-contact-panel--visual img,
    body.page-slug-contacto .infosystem-contact-panel--visual img {
        min-height: 280px !important;
        height: auto !important;
    }
    
    body.page-id-16719 .infosystem-contact-panel--info,
    body.page-id-16719 .infosystem-contact-panel--form,
    body.page-slug-contacto .infosystem-contact-panel--info,
    body.page-slug-contacto .infosystem-contact-panel--form {
        grid-column: 1 / -1 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Add nice side margins/padding to bottom CTA section */
    body.page-id-16719 .infosystem-contact-cta,
    body.page-slug-contacto .infosystem-contact-cta {
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
    }

    /* Add extra side margins/padding specifically to the secondary intro paragraph ("Contacta con...") on mobile */
    body.page-id-16719 .infosystem-contact-lead--secondary,
    body.page-slug-contacto .infosystem-contact-lead--secondary {
        padding-left: 35px !important;
        padding-right: 35px !important;
        box-sizing: border-box !important;
    }
}

/* ============================================================
   ANTI-GRAVITY: CONTACT FORM 7 RESPONSIVE FULL WIDTH INPUTS
   ============================================================ */
.wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7-form textarea,
.wpcf7-form select,
.wpcf7-form-control-wrap {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    box-sizing: border-box !important;
}

/* ============================================================
   ANTI-GRAVITY: FOOTER CREDITS & LINKS CENTERING
   ============================================================ */
#footer .infosystem-footer-credits,
.site-footer .infosystem-footer-credits,
#footer .infosystem-footer-credits p,
.site-footer .infosystem-footer-credits p,
.infosystem-footer-credits,
.infosystem-footer-credits p {
    text-align: center !important;
    justify-content: center !important;
    display: block !important;
}

/* Ensure corporate links block is centered as well */
.cis-enlaces-corporativos,
.cis-enlaces-corporativos p {
    text-align: center !important;
    justify-content: center !important;
}

/* ============================================================
   ANTI-GRAVITY: CENTER ALL FOOTER WIDGETS & TEXTS ON MOBILE
   ============================================================ */
@media (max-width: 768px) {
    #footer,
    .site-footer,
    .site-footer .widget,
    .site-footer .widget_text,
    .site-footer .textwidget,
    .site-footer h3,
    .site-footer h4,
    .site-footer p,
    .site-footer ul,
    .site-footer li,
    .site-footer a,
    .site-footer .infosystem-footer-inner,
    .site-footer .infosystem-footer-inner > div {
        text-align: center !important;
    }

    /* Center navigation lists in the footer */
    #footer ul,
    .site-footer ul {
        padding-left: 0 !important;
        margin-left: 0 !important;
        list-style-position: inside !important;
        display: block !important;
    }
    
    #footer li,
    .site-footer li {
        display: block !important;
        text-align: center !important;
    }

    /* Center heading lines stylishly */
    #footer h3,
    #footer h4,
    .site-footer h3,
    .site-footer h4,
    .thim-footer h3,
    .thim-footer .widget-title {
        border-bottom: 1px solid rgba(212,136,10,0.3) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: fit-content !important;
        padding-bottom: 4px !important;
        text-align: center !important;
    }
}

/* ============================================================
   DETALLES DE CURSO (UBICACIÓN Y FECHAS)
   ============================================================ */
.infosystem-course-info-boxes {
    margin: 25px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.infosystem-course-info-box {
    padding: 14px 18px;
    border-radius: var(--radius);
    background-color: var(--color-bg-light);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.infosystem-course-info-box strong {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--color-text-light);
    margin-bottom: 5px;
    font-family: var(--font-body);
}

.infosystem-course-info-box p {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.4;
}


/* ============================================================
   MAQUETACIÓN DE ARTÍCULOS DEL BLOG (PREMIUM CARD & CONVERSION)
   ============================================================ */

/* Barra de progreso de lectura */
.cis-progress-container {
    width: 100%;
    height: 4px;
    background: transparent;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999;
}

.cis-progress-bar {
    height: 4px;
    background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    width: 0%;
    border-radius: 0 2px 2px 0;
    transition: width 0.1s ease-out;
}

/* Cabecera del post */
.cis-entry-header {
    margin-bottom: 25px !important;
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 25px;
}

.cis-post-categories a {
    display: inline-block;
    background-color: rgba(2, 33, 87, 0.08);
    color: var(--color-primary) !important;
    padding: 4px 12px;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: 20px;
    margin-bottom: 15px;
    letter-spacing: 0.8px;
    transition: all 0.2s ease;
}

.cis-post-categories a:hover {
    background-color: var(--color-primary);
    color: #ffffff !important;
}

.cis-entry-title {
    font-size: 32px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    color: #1a1a1a !important;
    margin-bottom: 20px !important;
}

.cis-author-meta-box {
    display: flex;
    align-items: center;
    gap: 15px;
}

.cis-author-avatar img {
    border-radius: 50% !important;
    border: 2px solid rgba(2, 33, 87, 0.1);
}

.cis-author-info {
    font-size: 13px;
    color: #666;
}

.cis-author-name strong {
    color: #222;
}

.cis-meta-details {
    margin-top: 3px;
}

.cis-meta-details i {
    color: var(--color-primary);
    margin-right: 4px;
}

.cis-meta-details .cis-meta-divider {
    margin: 0 8px;
    color: #ccc;
}

/* Imagen destacada */
.cis-featured-image-wrapper {
    margin-bottom: 35px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

.cis-featured-image {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}

/* Contenido del post */
.cis-entry-content {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    font-size: 17px !important;
    line-height: 1.75 !important;
    color: #333333 !important;
}

.cis-entry-content p {
    margin-bottom: 25px !important;
}

.cis-entry-content h2, .cis-entry-content h3 {
    margin-top: 40px !important;
    margin-bottom: 20px !important;
    font-weight: 800 !important;
    color: #1a1a1a !important;
}

.cis-entry-content h2 {
    font-size: 24px !important;
}

.cis-entry-content h3 {
    font-size: 20px !important;
}

.cis-entry-content blockquote {
    border-left: 4px solid var(--color-primary) !important;
    background-color: var(--color-bg-light) !important;
    padding: 20px 25px !important;
    margin: 30px 0 !important;
    font-style: italic;
    color: #555;
    font-size: 18px;
    border-radius: 0 8px 8px 0;
}

/* CTA Banner al final */
.cis-content-cta-banner {
    background: linear-gradient(135deg, #FAF7F2 0%, #F5EFE6 100%);
    border: 1px solid rgba(2, 33, 87, 0.08);
    border-left: 5px solid var(--color-primary);
    border-radius: 12px;
    padding: 30px 35px;
    margin: 45px 0;
    box-shadow: 0 10px 30px rgba(2, 33, 87, 0.04);
}

.cis-cta-badge {
    display: inline-block;
    background-color: var(--color-primary);
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
}

.cis-content-cta-banner h3 {
    font-size: 22px !important;
    font-weight: 800 !important;
    color: #1a1a1a !important;
    margin: 0 0 10px 0 !important;
}

.cis-content-cta-banner p {
    font-size: 14px;
    color: #555;
    margin-bottom: 24px !important;
    line-height: 1.6;
}

.cis-cta-buttons {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.cis-btn-primary, .cis-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 30px;
    transition: all 0.3s ease;
    text-decoration: none !important;
}

.cis-btn-primary {
    background-color: var(--color-primary);
    color: #ffffff !important;
    box-shadow: 0 4px 15px rgba(2, 33, 87, 0.2);
}

.cis-btn-primary:hover {
    background-color: var(--color-secondary);
    box-shadow: 0 6px 20px rgba(212, 136, 10, 0.3);
    transform: translateY(-2px);
}

.cis-btn-outline {
    border: 2px solid var(--color-primary);
    color: var(--color-primary) !important;
}

.cis-btn-outline:hover {
    background-color: var(--color-primary);
    color: #ffffff !important;
    transform: translateY(-2px);
}

/* Widgets del Sidebar */
.cis-sidebar-widget {
    background-color: #ffffff !important;
    border: 1px solid #f0f0f0 !important;
    border-radius: 12px !important;
    padding: 24px !important;
    margin-bottom: 30px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02) !important;
    transition: all 0.3s ease;
}

.cis-sidebar-widget:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05) !important;
    border-color: #e5e5e5 !important;
}

.cis-sidebar-widget .widget-title {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #1a1a1a !important;
    border-bottom: 2px solid rgba(2, 33, 87, 0.1) !important;
    padding-bottom: 12px !important;
    margin-bottom: 20px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* Buscador Sidebar */
.cis-sidebar-widget .search-form {
    position: relative;
    display: flex;
    width: 100%;
}

.cis-sidebar-widget .search-form label {
    width: 100%;
    margin: 0;
}

.cis-sidebar-widget .search-form input[type="search"] {
    width: 100%;
    padding: 10px 45px 10px 15px;
    border: 1px solid #ddd;
    border-radius: 25px;
    font-size: 13px;
    transition: all 0.3s ease;
}

.cis-sidebar-widget .search-form input[type="search"]:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 5px rgba(2, 33, 87, 0.1);
}

.cis-sidebar-widget .search-submit {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: #888;
    width: 35px;
    height: 35px;
    cursor: pointer;
    font-size: 14px;
}

/* CTA Sidebar Widget */
.cis-cta-widget {
    background: linear-gradient(135deg, #022157 0%, #6B1212 100%) !important;
    color: #ffffff !important;
    border: none !important;
}

.cis-cta-widget .widget-title {
    color: #ffffff !important;
    border-bottom: 2px solid rgba(255, 255, 255, 0.15) !important;
}

.cis-cta-widget p {
    font-size: 13.5px;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 20px;
}

.cis-cta-widget-badge {
    background-color: var(--color-secondary);
    color: #ffffff;
    font-size: 9px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    display: inline-block;
    margin-bottom: 10px;
}

.cis-featured-courses-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 25px;
}

.cis-featured-course-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: #ffffff !important;
    text-decoration: none !important;
    font-weight: 600;
    padding: 8px 12px;
    background-color: rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    transition: background-color 0.2s ease;
}

.cis-featured-course-item:hover {
    background-color: rgba(255, 255, 255, 0.15);
}

.cis-featured-course-item .course-dot {
    width: 6px;
    height: 6px;
    background-color: var(--color-secondary);
    border-radius: 50%;
}

.cis-cta-widget-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-secondary);
    color: #ffffff !important;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 12px;
    border-radius: 25px;
    text-decoration: none !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
}

.cis-cta-widget-btn:hover {
    background-color: #ffffff;
    color: var(--color-primary) !important;
    transform: translateY(-2px);
}

/* Artículos recientes en Sidebar */
.cis-recent-posts-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.cis-recent-posts-list li {
    display: flex;
    gap: 12px;
    align-items: center;
}

.cis-recent-posts-list li .post-thumb {
    width: 54px;
    height: 54px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.cis-recent-posts-list li .post-thumb img {
    width: 54px;
    height: 54px;
    object-fit: cover;
}

.cis-recent-posts-list li .post-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cis-recent-posts-list li .post-title {
    font-size: 13px;
    font-weight: 600;
    color: #333 !important;
    line-height: 1.35;
    text-decoration: none !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s ease;
}

.cis-recent-posts-list li .post-title:hover {
    color: var(--color-primary) !important;
}

.cis-recent-posts-list li .post-date {
    font-size: 11px;
    color: #999;
}

@media (max-width: 767px) {
    .cis-entry-title {
        font-size: 26px !important;
    }
    .cis-content-cta-banner {
        padding: 25px;
    }
    .cis-cta-buttons {
        flex-direction: column;
        gap: 10px;
    }
    .cis-btn-primary, .cis-btn-outline {
        width: 100%;
    }
}

/* ============================================================
   INFOSYSTEM — PÁGINAS LEGALES Y POLÍTICAS (GLOBALES)
   Aviso Legal, Política de Privacidad, Cookies, Calidad, etc.
   ============================================================ */
.legal-header {
    text-align: center;
    padding: 60px 20px;
    background: linear-gradient(135deg, #022157 0%, #4A0E0E 100%);
    color: #ffffff;
    border-radius: 12px;
    margin-bottom: 40px;
    border-bottom: 4px solid #D4880A;
}
.legal-header h1 {
    color: #ffffff !important;
    font-family: 'Merriweather', Georgia, serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem) !important;
    margin-bottom: 15px !important;
    font-weight: 800;
}
.legal-header p {
    color: #E8A020;
    font-size: 1.1rem;
    margin: 0;
    font-weight: 600;
}
.legal-container {
    max-width: 960px;
    margin: 0 auto 60px;
    padding: 45px;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(2,33,87,0.05);
    border: 1px solid rgba(212,136,10,0.18);
    box-sizing: border-box;
}
@media (max-width: 768px) {
    .legal-container {
        padding: 24px;
        margin-bottom: 30px;
    }
}
.legal-section {
    margin-bottom: 35px;
    padding-bottom: 25px;
    border-bottom: 1px solid rgba(2,33,87,0.08);
}
.legal-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.legal-section h2 {
    color: #022157 !important;
    font-family: 'Merriweather', Georgia, serif;
    font-size: 1.4rem !important;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 700;
    line-height: 1.3;
}
.legal-section p, .legal-section li {
    font-size: 1.05rem;
    line-height: 1.75;
    color: #444444;
}
.legal-section ul {
    padding-left: 20px;
    margin-top: 10px;
    margin-bottom: 15px;
}
.legal-section li {
    margin-bottom: 8px;
}
.legal-card {
    background: #FDFBF7;
    border-left: 4px solid #D4880A;
    padding: 24px;
    border-radius: 6px;
    margin: 24px 0;
}
.legal-card ul {
    margin: 0;
    padding-left: 15px;
}
.legal-card li {
    margin-bottom: 10px;
}
.legal-card li:last-child {
    margin-bottom: 0;
}
.legal-section table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 15px;
    margin-bottom: 15px;
}
.legal-section th, .legal-section td {
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid #eeeeee;
}
.legal-section th {
    border-bottom: 2px solid #022157;
    font-weight: 700;
    color: #022157;
}

/* Botones azules de las secciones de cursos y blog de la portada. */
html body.home .elementor-element-a7d69fa a.e-415bdea-daba488,
html body.home .elementor-element-6842b4c a.e-af4983d-b693af3 {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 12px 24px !important;
    border: 2px solid #022157 !important;
    border-radius: 8px !important;
    background: #022157 !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

html body.home .elementor-element-a7d69fa a.e-415bdea-daba488:hover,
html body.home .elementor-element-6842b4c a.e-af4983d-b693af3:hover {
    border-color: #01163b !important;
    background: #01163b !important;
    color: #fff !important;
}

/* Mantener el título de la sección del blog en una línea en pantallas grandes. */
@media (min-width: 1025px) {
    html body.home .elementor-element-b790376 {
        display: flex !important;
        align-items: center !important;
        gap: 24px !important;
    }

    html body.home .elementor-element-ccede2f {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
    }

    html body.home .elementor-element-ccede2f h2 {
        font-size: clamp(21px, 1.7vw, 25px) !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }

    html body.home .elementor-element-6842b4c {
        flex: 0 0 auto !important;
        width: auto !important;
    }
}

@media (max-width: 1024px) {
    html body.home .elementor-element-ccede2f h2 {
        font-size: clamp(20px, 3vw, 25px) !important;
        line-height: 1.25 !important;
    }
}

/* Mantener la aceptación RGPD y el desplegable en una línea sin desbordar el formulario. */
html body.home .elementor-element-ba75f78 .infosystem-rgpd-details {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

html body.home .elementor-element-ba75f78 .infosystem-rgpd-summary {
    width: 100% !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

html body.home .elementor-element-ba75f78 .infosystem-rgpd-summary-left {
    flex: 0 1 auto !important;
    white-space: nowrap !important;
    font-size: 10.5px !important;
}

html body.home .elementor-element-ba75f78 .infosystem-rgpd-chevron {
    flex: 0 0 auto !important;
}

html body.home .elementor-element-ba75f78 .wpcf7-acceptance label {
    flex-wrap: nowrap !important;
}

html body.home .elementor-element-ba75f78 .wpcf7-acceptance .wpcf7-list-item-label {
    white-space: nowrap !important;
    font-size: 11.5px !important;
}

@media (max-width: 767px) {
    html body.home .elementor-element-ccede2f h2 {
        white-space: normal !important;
    }

    html body.home .elementor-element-ba75f78 .infosystem-rgpd-summary-left {
        font-size: 9.5px !important;
    }

    html body.home .elementor-element-ba75f78 .wpcf7-acceptance .wpcf7-list-item-label {
        font-size: 10.5px !important;
    }
}
