/* ============================================================
   Co-WorkPress CMS — global.css
   CSS estático del frontend (nav, grid, acordeón, divisor)
   Los estilos dinámicos (colores, paddings) van inline en page.blade.php
   ============================================================ */

/* — RESET BÁSICO — */
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Montserrat', sans-serif; }
body, body * {
    font-style: normal;
}

.pb-nav-links li a,
.pb-nav-links-left li a,
.pb-nav-links-right li a,
.pb-block,
.pb-block p,
.pb-block h1,
.pb-block h2,
.pb-block h3,
.pb-block h4,
.pb-block h5,
.pb-block h6 {
    font-family: 'Montserrat', sans-serif;
    font-style: normal;
}
img { max-width: 100%; height: auto; }
body:has(.pb-nav.layout-bottom-bar) {
    padding-bottom: 60px;
}
/* ============================================================
   TEXTO — espaciado entre párrafos y headings
   ============================================================ */
.pb-text-block p {
    margin-bottom: 0.75em;
}
.pb-text-block p:empty {
    min-height: 1em;
    display: block;
}
.pb-text-block h1,
.pb-text-block h2,
.pb-text-block h3,
.pb-text-block h4,
.pb-text-block h5,
.pb-text-block h6 {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}
/* ============================================================
   NAV
   ============================================================ */
.pb-nav {
    width: 100%;
    z-index: 1000;
    transition: background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}
.pb-nav.is-sticky { position: fixed; top: 0; left: 0; }
.pb-nav.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.15); }
.pb-nav-inner { display: flex; align-items: center; gap: 2rem; margin: 0 auto; }
.pb-nav-logo img { display: block; }
.pb-nav-logo a { display: flex; align-items: center; }

/* — LINKS — */
.pb-nav-links { list-style: none; display: flex; gap: 2rem; align-items: center; margin: 0; padding: 0; }
.pb-nav-links li a { text-decoration: none; transition: color 0.2s ease; white-space: nowrap; }

/* — SUBMENÚ — */
.pb-nav-links li.has-children { position: relative; }
.pb-nav-links li.has-children > ul {
    display: none;
    list-style: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    padding: 0.5rem 0;
    border-radius: 6px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
    z-index: 100;
}
.pb-nav-links li.has-children:hover > ul { display: block; }
.pb-nav-links li.has-children > ul li { list-style: none; }
.pb-nav-links li.has-children > ul li a { display: block; padding: 0.5rem 1rem; }

/* — HAMBURGUESA — */
.pb-nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 4px;
    background: none;
    border: none;
}
.pb-nav-toggle span { display: block; width: 24px; height: 2px; border-radius: 2px; transition: all 0.3s ease; }

/* — STICKY OFFSET — */
.pb-nav-offset { display: none; }
.pb-nav.is-sticky ~ .pb-nav-offset { display: block; }

/* — SWIPER FIX — */
.swiper { overflow: hidden; width: 100%; }
.swiper-wrapper { width: 100%; }
.pb-block { overflow: hidden; }
.pb-container { overflow: hidden; }


/* ============================================================
   NAV LAYOUTS
   ============================================================ */

/* — logo_center — */
.pb-nav.layout-logo-center .pb-nav-inner {
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}
.pb-nav.layout-logo-center .pb-nav-links {
    justify-content: center;
}
.pb-nav.layout-logo-center .pb-nav-toggle {
    position: absolute;
    right: 1rem;
}

/* — split_center — */
.pb-nav.layout-split-center .pb-nav-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
}
.pb-nav.layout-split-center .pb-nav-logo {
    grid-column: 2;
    order: 2;
}
.pb-nav.layout-split-center .pb-nav-links-left {
    display: flex;
    list-style: none;
    gap: 2rem;
    align-items: center;
    justify-content: flex-end;
    margin: 0;
    padding: 0;
    order: 1;
}
.pb-nav.layout-split-center .pb-nav-links-right {
    display: flex;
    list-style: none;
    gap: 2rem;
    align-items: center;
    justify-content: flex-start;
    margin: 0;
    padding: 0;
    order: 3;
}
.pb-nav.layout-split-center .pb-nav-links-left li a,
.pb-nav.layout-split-center .pb-nav-links-right li a {
    text-decoration: none;
    transition: color 0.2s ease;
    white-space: nowrap;
}
.pb-nav.layout-split-center .pb-nav-toggle {
    display: none;
    order: 3;
}

/* — logo_right — */
.pb-nav.layout-logo-right .pb-nav-inner {
    flex-direction: row-reverse;
}
.pb-nav.layout-logo-right .pb-nav-links {
    justify-content: flex-end;
}

/* — fullwidth_bar — */
.pb-nav.layout-fullwidth-bar .pb-nav-inner {
    max-width: 100% !important;
}

/* — logo_left (default, ya funciona) — */

/* — transparent_sticky — */
.pb-nav.layout-transparent-sticky {
    position: fixed;
    top: 0;
    left: 0;
    background: transparent !important;
}
.pb-nav.layout-transparent-sticky.scrolled {
    background: var(--nav-scroll-bg, #ffffff) !important;
}

/* — hamburger_fullscreen — */
.pb-nav.layout-hamburger-fullscreen .pb-nav-links { display: none; }
.pb-nav.layout-hamburger-fullscreen .pb-nav-toggle { display: flex; }
.layout-hamburger-fullscreen .pb-nav-inner {justify-content: space-between;}
.pb-nav-fullscreen-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9998;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}
.pb-nav-fullscreen-overlay.open { display: flex; }
.pb-nav-fullscreen-overlay a {
    font-size: 2rem;
    text-decoration: none;
    transition: opacity 0.2s;
    font-weight: 500;

}
.pb-nav-fullscreen-overlay a:hover { opacity: 0.7; }
.pb-nav-fullscreen-close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    background: none;
    border: none;
    font-size: 2rem;
    cursor: pointer;
    line-height: 1;
}

/* — hamburger_sidebar — */
.pb-nav.layout-hamburger-sidebar .pb-nav-links { display: none; }
.pb-nav.layout-hamburger-sidebar .pb-nav-toggle { display: flex; }
.pb-nav.layout-hamburger-sidebar .pb-nav-inner {justify-content: space-between;}
.pb-nav-sidebar-drawer {
    display: none;
    position: fixed;
    top: 0;
    left: -320px;
    width: 300px;
    height: 100vh;
    z-index: 9998;
    flex-direction: column;
    padding: 4rem 2rem 2rem;
    gap: 1rem;
    transition: left 0.3s ease;
    overflow-y: auto;
}
.pb-nav-sidebar-drawer.open {
    display: flex;
    left: 0;
}
.pb-nav-sidebar-drawer a {
    text-decoration: none;
    font-size: 1.1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(128,128,128,0.15);
    transition: opacity 0.2s;
}
.pb-nav-sidebar-drawer a:hover { opacity: 0.7; }
.pb-nav-sidebar-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
}
.pb-nav-sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 9997;
}
.pb-nav-sidebar-overlay.open { display: block; }

/* — hamburger_sidebar_right — */
.pb-nav.layout-hamburger-sidebar-right .pb-nav-links { display: none; }
.pb-nav.layout-hamburger-sidebar-right .pb-nav-toggle { display: flex; }
.pb-nav.layout-hamburger-sidebar-right .pb-nav-inner {justify-content: space-between;}
.pb-nav-sidebar-drawer-right {
    display: none;
    position: fixed;
    top: 0;
    right: -320px;
    left: auto;
    width: 300px;
    height: 100vh;
    z-index: 9998;
    flex-direction: column;
    padding: 4rem 2rem 2rem;
    gap: 1rem;
    transition: right 0.3s ease;
    overflow-y: auto;
}
.pb-nav-sidebar-drawer-right.open {
    display: flex;
    right: 0;
}
.pb-nav-sidebar-drawer-right a {
    text-decoration: none;
    font-size: 1.1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(128,128,128,0.15);
    transition: opacity 0.2s;
}
.pb-nav-sidebar-drawer-right a:hover { opacity: 0.7; }
.pb-nav-sidebar-close-right {
    position: absolute;
    top: 1rem;
    right: 1rem;
    left: auto;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
}


/* — bottom_bar — */
.pb-nav.layout-bottom-bar {
    position: fixed;
    bottom: 0;
    top: auto !important;
    left: 0;
    right: 0;
    border-top: 1px solid rgba(128,128,128,0.2);
}
.pb-nav.layout-bottom-bar .pb-nav-inner {
    justify-content: space-around;
    padding-top: 8px;
    padding-bottom: 8px;
}
.pb-nav.layout-bottom-bar .pb-nav-logo { display: none; }
.pb-nav.layout-bottom-bar .pb-nav-toggle { display: none; }
.pb-nav.layout-bottom-bar .pb-nav-links {
    display: flex;
    justify-content: space-around;
    width: 100%;
}
.pb-nav.layout-bottom-bar .pb-nav-links li a {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.75rem;
    padding: 4px 8px;
}

/* — mega_menu — */
.pb-nav.layout-mega-menu .pb-nav-links { position: static; }
.pb-nav.layout-mega-menu .pb-nav-links li.has-children { position: static; }
.pb-nav.layout-mega-menu .pb-nav-links li.has-children > ul {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    min-width: 100%;
    padding: 2rem;
    display: none;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 2rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15);
    z-index: 1000;
}
.pb-nav.layout-mega-menu .pb-nav-links li.has-children:hover > ul {
    display: grid;
}
.pb-nav.layout-mega-menu .pb-nav-links li.has-children > ul li {
    list-style: none;
}
.pb-nav.layout-mega-menu .pb-nav-links li.has-children > ul li a {
    display: block;
    padding: 0.4rem 0;
    font-size: 0.875rem;
}
.pb-nav.layout-mega-menu .pb-nav-mega-title {
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding-bottom: 0.5rem;
    margin-bottom: 0.5rem;
    border-bottom: 2px solid currentColor;
    opacity: 0.5;
    display: block;
}

/* — sidebar_left — */
.pb-nav.layout-sidebar-left {
    position: fixed;
    top: 0;
    left: 0;
    width: 260px;
    height: 100vh;
    z-index: 1000;
    overflow-y: auto;
}
.pb-nav.layout-sidebar-left .pb-nav-inner {
    flex-direction: column;
    align-items: flex-start;
    max-width: 100%;
    padding: 2rem 1.5rem;
    height: 100%;
    gap: 0;
}
.pb-nav.layout-sidebar-left .pb-nav-logo {
    margin-bottom: 2rem;
}
.pb-nav.layout-sidebar-left .pb-nav-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
}
.pb-nav.layout-sidebar-left .pb-nav-links li {
    width: 100%;
}
.pb-nav.layout-sidebar-left .pb-nav-links li a {
    display: block;
    padding: 0.6rem 0;
    border-bottom: 1px solid rgba(128,128,128,0.1);
    text-align: center;
}
.pb-nav.layout-sidebar-left .pb-nav-toggle { display: none; }
.pb-nav.layout-sidebar-left ~ .pb-section,
.pb-nav.layout-sidebar-left ~ section,
.pb-nav.layout-sidebar-left ~ .pb-footer {
    margin-left: 260px;
}

/* — sidebar_right — */
.pb-nav.layout-sidebar-right {
    position: fixed;
    top: 0;
    right: 0;
    left: auto;
    width: 260px;
    height: 100vh;
    z-index: 1000;
    overflow-y: auto;
}
.pb-nav.layout-sidebar-right .pb-nav-inner {
    flex-direction: column;
    align-items: flex-start;
    max-width: 100%;
    padding: 2rem 1.5rem;
    height: 100%;
    gap: 0;
}
.pb-nav.layout-sidebar-right .pb-nav-logo {
    margin-bottom: 2rem;
}
.pb-nav.layout-sidebar-right .pb-nav-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
}
.pb-nav.layout-sidebar-right .pb-nav-links li {
    width: 100%;
}
.pb-nav.layout-sidebar-right .pb-nav-links li a {
    display: block;
    padding: 0.6rem 0;
    border-bottom: 1px solid rgba(128,128,128,0.1);
    text-align: center;
}
.pb-nav.layout-sidebar-right .pb-nav-toggle { display: none; }
.pb-nav.layout-sidebar-right ~ .pb-section,
.pb-nav.layout-sidebar-right ~ section,
.pb-nav.layout-sidebar-right ~ .pb-footer {
    margin-right: 260px;
}

/* — announcement_bar — */
.pb-announcement-bar {
    width: 100%;
    text-align: center;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    z-index: 1001;
}
.pb-nav.layout-announcement-bar {
    display: flex;
    flex-direction: column;
}
.pb-nav.layout-announcement-bar .pb-nav-inner {
    order: 2;
}
.pb-nav.layout-announcement-bar .pb-announcement-bar {
    order: 1;
}

/* — logo_left_cta — */
.pb-nav.layout-logo-left-cta .pb-nav-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    max-width: 95% !important;
    gap: 1rem;
}
.pb-nav.layout-logo-left-cta .pb-nav-links {
    justify-content: center;
    gap: 1.5rem;
}
.pb-nav.layout-logo-left-cta .pb-nav-cta {
    flex-shrink: 0;
}

/* ============================================================
   NAV — Estilos dinámicos base (sobreescritos por inline)
   ============================================================ */
.pb-nav-links li a {
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    font-style: normal;
    font-size: 15px;
    color: inherit;
}
.pb-nav-links-left li a,
.pb-nav-links-right li a {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-style: normal;
}
.pb-nav-toggle span {
    background: currentColor;
}

/* ============================================================
   ENLACES — quitar subrayado en contenido de bloques
   ============================================================ */
.pb-block a:not(.pb-btn-link) {
    text-decoration: none;
}
.pb-accordion-body-inner a {
    text-decoration: none;
}

/* ============================================================
   TESTIMONIOS / TRABAJADORES
   ============================================================ */
.pb-testimonial-wrapper { width: 100%; }

.pb-testimonial-card {
    /*display: flex;
    flex-direction: column;
    align-items: flex-start;*/
    box-sizing: border-box;
}

.pb-testimonial-image,
.pb-testimonial-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}
.pb-testimonial-stars { display: flex; gap: 2px; }

.pb-testimonial-description p { margin: 0; }

.pb-testimonial-social a { text-decoration: none; font-size: 1.2rem; }
.pb-testimonial-social a:hover { opacity: 0.7; }

.pb-testimonial-card h2,
.pb-testimonial-card h3,
.pb-testimonial-card p,
.pb-testimonial-card .pb-tc-desc-,
.pb-testimonial-card > div {
    width: 100%;
}

/* — Carrusel testimonial — */
.pb-testimonial-swiper { width: 100%; padding-bottom: 2.5rem !important; padding-top: 2.5rem !important;}
.pb-testimonial-swiper .swiper-slide { height: auto; }


/* ============================================================
   GRID DE COLUMNAS
   ============================================================ */
.cols-1 { display: block; }
.cols-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.cols-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 2rem; }
.cols-4 { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 2rem; }
.cols-5 { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr; gap: 2rem; }
.cols-6 { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; gap: 2rem; }
.cols-2-3-1-3 { display: grid; grid-template-columns: 2fr 1fr; gap: 2rem; }
.cols-1-3-2-3 { display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; }
.cols-1-2-1-4-1-4 { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2rem; }
.cols-1-4-1-2-1-4 { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 2rem; }
.cols-1-4-1-4-1-2 { display: grid; grid-template-columns: 1fr 1fr 2fr; gap: 2rem; }



/* ============================================================
   ACORDEÓN
   ============================================================ */
.pb-accordion { width: 100%; }
.pb-accordion-item { margin-bottom: 4px; }
.pb-accordion-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    cursor: pointer;
    user-select: none;
    transition: background 0.2s ease;
}
.pb-accordion-header-title { font-weight: 600; flex: 1; }
.pb-accordion-icon { transition: transform 0.3s ease; font-size: 1rem; margin-left: 1rem; }
.pb-accordion-icon.open { transform: rotate(45deg); }
.pb-accordion-body { overflow: hidden; }
.pb-accordion-body-inner { padding: 1rem 1.25rem; }

/* ============================================================
   MÓDULOS — font-weight base
   ============================================================ */
.pb-anuncio-desc p,
.pb-anuncio-desc,
.pb-tabla-desc,
.pb-tabla-desc p,
.pb-tabla-item li,
.card-desc {
    font-weight: 500;
}

/* — MOBILE — */
@media (max-width: 980px) {
    .pb-nav.layout-logo-center .pb-nav-inner {
        flex-direction: row;
        flex-wrap: wrap;
    }
    .pb-nav-inner {
        padding-top: 12px;
        padding-bottom: 12px;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
    }
    .pb-nav-toggle { display: flex; }
    .pb-nav-links {
        display: none;
        flex-direction: column;
        gap: 0;
        width: 100%;
        padding: 0.5rem 0 1rem;
        border-top: 1px solid rgba(128,128,128,0.2);
        margin-top: 0.5rem;
        list-style: none;
    }
    .pb-nav-links.mobile-open { display: flex; }
    .pb-nav-links li { list-style: none; }
    .pb-nav-links li a { padding: 0.6rem 0; display: block; border-bottom: 1px solid rgba(128,128,128,0.1); }
    .pb-nav-links li.has-children > ul {
        display: none;
        list-style: none;
        position: static;
        box-shadow: none;
        padding-left: 1rem;
    }
    .pb-nav-links li.has-children > ul li { list-style: none; }
    .pb-nav-links li.has-children.open > ul { display: block; }
    .cols-2, .cols-3, .cols-4, .cols-5, .cols-6,
    .cols-2-3-1-3, .cols-1-3-2-3,
    .cols-1-2-1-4-1-4, .cols-1-4-1-2-1-4, .cols-1-4-1-4-1-2 {
        grid-template-columns: 1fr;
    }
    .pb-nav.layout-split-center .pb-nav-inner {
        grid-template-columns: 1fr auto;
        flex-wrap: wrap;
    }
    .pb-nav.layout-split-center .pb-nav-toggle {
        display: flex;
        grid-column: 3;
    }
    .pb-nav.layout-split-center .pb-nav-links-left,
    .pb-nav.layout-split-center .pb-nav-links-right {
        display: none;
        flex-direction: column;
        width: 100%;
        gap: 0;
        grid-column: 1 / -1;
        border-top: 1px solid rgba(128,128,128,0.2);
        padding: 0.5rem 0 1rem;
    }
    .pb-nav.layout-split-center .pb-nav-links-left.mobile-open,
    .pb-nav.layout-split-center .pb-nav-links-right.mobile-open { display: flex; }
    .pb-nav.layout-split-center .pb-nav-links-left li a,
    .pb-nav.layout-split-center .pb-nav-links-right li a {
        padding: 0.6rem 0;
        display: block;
        border-bottom: 1px solid rgba(128,128,128,0.1);
    }
    .pb-nav.layout-sidebar-left,
    .pb-nav.layout-sidebar-right {
        position: relative;
        width: 100%;
        height: auto;
    }
    .pb-nav.layout-sidebar-left .pb-nav-toggle,
    .pb-nav.layout-sidebar-right .pb-nav-toggle { display: flex; }
    .pb-nav.layout-sidebar-left ~ .pb-section,
    .pb-nav.layout-sidebar-left ~ section,
    .pb-nav.layout-sidebar-right ~ .pb-section,
    .pb-nav.layout-sidebar-right ~ section { margin: 0; }
    .pb-nav.layout-mega-menu .pb-nav-links li.has-children > ul {
        display: none;
        position: static;
        grid-template-columns: 1fr;
        box-shadow: none;
        padding: 0.5rem 0 0.5rem 1rem;
    }
    .pb-nav.layout-mega-menu .pb-nav-links li.has-children.open > ul {
        display: grid;
    }
    .pb-nav.layout-logo-left-cta .pb-nav-inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        flex-wrap: wrap;
    }
    .pb-nav.layout-logo-left-cta .pb-nav-logo { order: 1; }
    .pb-nav.layout-logo-left-cta .pb-nav-toggle { display: flex; order: 2; }
    .pb-nav.layout-logo-left-cta .pb-nav-cta { display: none; }
    .pb-nav.layout-logo-left-cta .pb-nav-links {
        display: none;
        flex-direction: column;
        align-items: flex-start;
        position: absolute;
        top: 100%; left: 0; right: 0;
        width: 100%;
        background: var(--nav-bg, #fff);
        padding: 1rem;
        gap: 0;
        box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        z-index: 999;
    }
    .pb-nav.layout-logo-left-cta .pb-nav-links.mobile-open { display: flex; }
    .pb-nav.layout-logo-left-cta .pb-nav-links li a {
        padding: 0.6rem 0 !important;
        display: block;
        border-bottom: 1px solid rgba(128,128,128,0.1);
        width: 100%;
    }
    .pb-nav.layout-logo-left-cta .pb-nav-links.mobile-open .pb-nav-cta-mobile {
        display: block !important;
        padding: 0px;
    }
    .pb-nav.layout-logo-left-cta .pb-nav-cta { 
        display: none !important;
    }
    .pb-nav.layout-logo-left-cta .pb-nav-cta-mobile {
        width: 100%;
        padding: 0.75rem 0;
    }
    .pb-nav.layout-logo-left-cta .pb-nav-cta-mobile a {
        display: inline-block !important;
        width: auto !important;
        border-bottom: none !important;
    }
}

