/* CLIENTE · Papeles Cruz. Cabecera y pie (pcm-*) traídos del tema hijo de GeneratePress,
   bloque de contacto común (pc-contact-*) que antes se repetía en cada página de Elementor
   y ajustes para el formulario y los botones fijos del tema. */

/* =========================================================
   VARIABLES GENERALES
========================================================= */

:root {
    --pcm-green-dark: #19432f;
    --pcm-green: #6ca442;
    --pcm-green-hover: #edf5e8;

    --pcm-text: #252525;
    --pcm-white: #ffffff;

    /*
     * Antes: alto de My Sticky Elements arriba en móvil. Ahora los botones fijos del tema van abajo: 0
     */
    --pcm-mysticky-height: 0px;

    /*
     * ALTURA DEL HEADER MÓVIL
     */
    --pcm-mobile-header-height: 72px;
}


/* =========================================================
   HEADER
========================================================= */

.pcm-header,
.pcm-header * {
    box-sizing: border-box;
}


.pcm-header {
    position: relative;

    width: 100%;

    margin: 0;
    padding: 0;

    z-index: 9999;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
}


/* =========================================================
   TOPBAR
========================================================= */

.pcm-topbar {
    width: 100%;

    background:
        var(--pcm-green-dark);

    color: #ffffff;
}


.pcm-topbar__inner {
    width: 100%;
    max-width: 1180px;

    min-height: 38px;

    margin: 0 auto;

    padding:
        0
        20px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 30px;
}


.pcm-topbar__contact {
    display: flex;

    align-items: center;

    gap: 22px;
}


.pcm-topbar__item {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    color:
        rgba(255,255,255,.95) !important;

    font-size: 14px;
    font-weight: 400;

    line-height: 1.2;

    text-decoration: none !important;

    transition:
        opacity .2s ease,
        color .2s ease;
}


.pcm-topbar__item:hover {
    color: #ffffff !important;

    opacity: .75;
}


.pcm-topbar__icon {
    width: 13px;
    height: 13px;

    flex:
        0
        0
        13px;

    display: inline-flex;

    align-items: center;
    justify-content: center;
}


.pcm-topbar__icon svg {
    display: block;

    width: 100%;
    height: 100%;

    fill: currentColor;
}


.pcm-topbar__address
.pcm-topbar__icon {
    color: #ff4164;
}


/* =========================================================
   HEADER PRINCIPAL
========================================================= */

.pcm-mainbar {
    position: relative;

    width: 100%;

    margin: 0;
    padding: 0;

    background: #ffffff;

    border-bottom:
        1px
        solid
        #eeeeee;

    transition:
        box-shadow .3s ease,
        background .3s ease;
}


.pcm-mainbar__inner {
    width: 100%;
    max-width: 1180px;

    height: 88px;

    margin: 0 auto;

    padding:
        0
        20px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 50px;
}


/* =========================================================
   LOGO
========================================================= */

.pcm-header__logo {
    flex:
        0
        0
        auto;

    width: 72px;
    height: 72px;

    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    text-decoration: none !important;
}


.pcm-header__logo img {
    display: block;

    width: auto;
    height: 54px;

    max-width: 100%;

    margin: 0;
    padding: 0;

    object-fit: contain;

    transition:
        transform .25s ease;
}


.pcm-header__logo:hover img {
    transform:
        scale(1.04);
}


/* =========================================================
   MENÚ DESKTOP
========================================================= */

.pcm-header__nav {
    margin-left: auto;
}


.pcm-header__nav > ul {
    margin: 0;
    padding: 0;

    list-style: none;

    display: flex;

    align-items: center;

    gap: 2px;
}


.pcm-header__nav > ul > li {
    position: relative;

    margin: 0;
    padding: 0;
}


.pcm-header__nav > ul > li > a {
    position: relative;

    min-height: 88px;

    padding:
        0
        15px;

    display: flex;

    align-items: center;

    color:
        var(--pcm-text) !important;

    font-size: 15px;
    font-weight: 600;

    line-height: 1;

    text-decoration: none !important;

    transition:
        color .22s ease;
}


/* =========================================================
   HOVER VERDE
========================================================= */

.pcm-header__nav > ul > li > a:hover,
.pcm-header__nav > ul > li:hover > a,
.pcm-header__nav > ul > li > a.is-current {
    color:
        var(--pcm-green) !important;
}


.pcm-header__nav > ul > li > a::before,
.pcm-header__nav > ul > li > a::after {
    display: none !important;
}


/* =========================================================
   SUBMENÚ DESKTOP
========================================================= */

.pcm-menu-item-has-children {
    position: relative;
}


.pcm-menu-item-has-children::after {
    content: "";

    position: absolute;

    top: 72px;

    left: -35px;
    right: -35px;

    height: 32px;

    z-index: 9998;
}


.pcm-header__nav
.pcm-submenu {
    position: absolute !important;

    top:
        calc(100% - 12px) !important;

    left: 50% !important;

    z-index: 99999 !important;

    width: 310px !important;

    min-width: 310px !important;
    max-width: 310px !important;

    margin: 0 !important;

    padding:
        14px !important;

    display: block !important;

    list-style: none !important;

    background:
        #ffffff !important;

    border: 0 !important;

    border-radius:
        20px !important;

    box-shadow:
        0
        18px
        45px
        rgba(0,0,0,.13) !important;

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transform:
        translateX(-50%)
        translateY(10px);

    transition:
        opacity .22s ease,
        visibility .22s ease,
        transform .22s ease;
}


.pcm-menu-item-has-children:hover >
.pcm-submenu,
.pcm-menu-item-has-children:focus-within >
.pcm-submenu {
    opacity: 1;

    visibility: visible;

    pointer-events: auto;

    transform:
        translateX(-50%)
        translateY(0);
}


.pcm-header__nav
.pcm-submenu > li {
    position: relative !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    display: block !important;

    float: none !important;
}


.pcm-header__nav
.pcm-submenu > li > a {
    width: 100% !important;

    min-height: 0 !important;

    margin: 0 !important;

    padding:
        14px
        15px !important;

    display: block !important;

    border-radius:
        13px;

    color:
        #252525 !important;

    background:
        transparent !important;

    font-size:
        14px !important;

    font-weight:
        600 !important;

    line-height:
        1.45 !important;

    text-align:
        left !important;

    white-space:
        normal !important;

    text-decoration:
        none !important;

    transition:
        background .2s ease,
        color .2s ease;
}


.pcm-header__nav
.pcm-submenu > li > a::before,
.pcm-header__nav
.pcm-submenu > li > a::after {
    display: none !important;
}


.pcm-header__nav
.pcm-submenu > li > a:hover,
.pcm-header__nav
.pcm-submenu > li > a:focus {
    color:
        #294a34 !important;

    background:
        var(--pcm-green-hover) !important;
}


/* =========================================================
   STICKY DESKTOP
========================================================= */

.pcm-header.is-scrolled
.pcm-mainbar {
    position: fixed;

    top: 0;
    left: 0;
    right: 0;

    z-index: 9999;

    box-shadow:
        0
        8px
        30px
        rgba(0,0,0,.10);
}


.pcm-header.is-scrolled
.pcm-mainbar__inner {
    height: 72px;
}


.pcm-header.is-scrolled
.pcm-header__logo {
    height: 62px;
}


.pcm-header.is-scrolled
.pcm-header__logo img {
    height: 47px;
}


.pcm-header.is-scrolled
.pcm-header__nav > ul > li > a {
    min-height: 72px;
}


/* =========================================================
   HAMBURGUESA
========================================================= */

.pcm-header__toggle {
    width: 48px;
    height: 48px;

    margin: 0;
    padding: 0;

    border: 0;

    display: none;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 5px;

    color:
        var(--pcm-green-dark);

    background:
        transparent;

    box-shadow:
        none;

    cursor:
        pointer;

    appearance:
        none;

    -webkit-appearance:
        none;
}


.pcm-header__toggle span {
    width: 27px;
    height: 2px;

    margin: 0;
    padding: 0;

    display: block;

    background:
        var(--pcm-green-dark);

    border-radius:
        20px;

    transition:
        transform .25s ease,
        opacity .20s ease;
}


.pcm-header__toggle.is-active
span:nth-child(1) {
    transform:
        translateY(7px)
        rotate(45deg);
}


.pcm-header__toggle.is-active
span:nth-child(2) {
    opacity: 0;
}


.pcm-header__toggle.is-active
span:nth-child(3) {
    transform:
        translateY(-7px)
        rotate(-45deg);
}


/* =========================================================
   MENÚ MÓVIL OCULTO EN DESKTOP
========================================================= */

.pcm-mobile-menu {
    display: none;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1050px) {

    .pcm-topbar,
    .pcm-header .pcm-topbar {
        display: none !important;
    }


    .pcm-header__nav {
        display: none !important;
    }


    .pcm-header__toggle {
        display: flex !important;
    }

}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 782px) {

    /* =====================================================
       HEADER COMPLETO
    ====================================================== */

    .pcm-header {
        position: relative !important;

        top: auto !important;
        left: auto !important;
        right: auto !important;

        width: 100% !important;

        height:
            var(--pcm-mobile-header-height) !important;

        min-height:
            var(--pcm-mobile-header-height) !important;

        margin: 0 !important;
        padding: 0 !important;

        background:
            #ffffff !important;

        z-index:
            100000 !important;

        overflow:
            visible !important;
    }


    /* =====================================================
       HEADER STICKY
       
       SE FIJA TODO EL HEADER
    ====================================================== */

    .pcm-header.is-scrolled {
        position: fixed !important;

        top:
            var(--pcm-mysticky-height) !important;

        left: 0 !important;
        right: 0 !important;

        width: 100% !important;

        height:
            var(--pcm-mobile-header-height) !important;

        min-height:
            var(--pcm-mobile-header-height) !important;

        margin: 0 !important;
        padding: 0 !important;

        background:
            #ffffff !important;

        z-index:
            100000 !important;

        overflow:
            visible !important;

        box-shadow:
            0
            3px
            12px
            rgba(0,0,0,.08) !important;
    }


    /* =====================================================
       MAINBAR
       
       IMPORTANTE:
       anulamos el sticky desktop
    ====================================================== */

    .pcm-mainbar,
    .pcm-header.is-scrolled
    .pcm-mainbar {
        position: relative !important;

        top: auto !important;

        left: auto !important;
        right: auto !important;

        width: 100% !important;

        height:
            var(--pcm-mobile-header-height) !important;

        min-height:
            var(--pcm-mobile-header-height) !important;

        margin: 0 !important;
        padding: 0 !important;

        background:
            #ffffff !important;

        border: 0 !important;

        border-top:
            0 !important;

        border-bottom:
            0 !important;

        box-shadow:
            none !important;

        z-index:
            20 !important;
    }


    .pcm-mainbar__inner,
    .pcm-header.is-scrolled
    .pcm-mainbar__inner {
        width: 100% !important;

        max-width:
            none !important;

        height:
            var(--pcm-mobile-header-height) !important;

        min-height:
            var(--pcm-mobile-header-height) !important;

        margin:
            0 !important;

        padding:
            0
            22px !important;

        display:
            flex !important;

        align-items:
            center !important;

        justify-content:
            space-between !important;

        gap:
            20px !important;

        background:
            #ffffff !important;
    }


    /* =====================================================
       LOGO
    ====================================================== */

    .pcm-header__logo,
    .pcm-header.is-scrolled
    .pcm-header__logo {
        width:
            62px !important;

        height:
            62px !important;

        margin:
            0 !important;

        padding:
            0 !important;

        display:
            flex !important;

        align-items:
            center !important;

        justify-content:
            center !important;
    }


    .pcm-header__logo img,
    .pcm-header.is-scrolled
    .pcm-header__logo img {
        display:
            block !important;

        width:
            auto !important;

        height:
            46px !important;

        max-width:
            100% !important;

        margin:
            0 !important;

        padding:
            0 !important;
    }


    /* =====================================================
       HAMBURGUESA
    ====================================================== */

    .pcm-header__toggle {
        position:
            relative !important;

        z-index:
            100 !important;

        width:
            48px !important;

        height:
            48px !important;

        margin:
            0 !important;

        padding:
            0 !important;

        border:
            0 !important;

        border-radius:
            0 !important;

        outline:
            0 !important;

        display:
            flex !important;

        flex-direction:
            column !important;

        align-items:
            center !important;

        justify-content:
            center !important;

        gap:
            5px !important;

        color:
            #19432f !important;

        background:
            transparent !important;

        background-color:
            transparent !important;

        box-shadow:
            none !important;

        cursor:
            pointer !important;

        appearance:
            none !important;

        -webkit-appearance:
            none !important;

        -webkit-tap-highlight-color:
            transparent !important;
    }


    .pcm-header__toggle:hover,
    .pcm-header__toggle:focus,
    .pcm-header__toggle:focus-visible,
    .pcm-header__toggle:active,
    .pcm-header__toggle.is-active {
        color:
            #19432f !important;

        background:
            transparent !important;

        background-color:
            transparent !important;

        border:
            0 !important;

        outline:
            0 !important;

        box-shadow:
            none !important;
    }


    .pcm-header__toggle span {
        width:
            27px !important;

        height:
            2px !important;

        margin:
            0 !important;

        padding:
            0 !important;

        display:
            block !important;

        background:
            #19432f !important;

        border-radius:
            20px !important;
    }


    .pcm-header__toggle.is-active
    span:nth-child(1) {
        transform:
            translateY(7px)
            rotate(45deg) !important;
    }


    .pcm-header__toggle.is-active
    span:nth-child(2) {
        opacity:
            0 !important;
    }


    .pcm-header__toggle.is-active
    span:nth-child(3) {
        transform:
            translateY(-7px)
            rotate(-45deg) !important;
    }


    /* =====================================================
       MENÚ MÓVIL
       
       PEGADO DIRECTAMENTE AL HEADER
    ====================================================== */

    .pcm-mobile-menu,
    .pcm-header
    .pcm-mobile-menu {
        position:
            absolute !important;

        /*
         * CLAVE:
         * empieza exactamente donde termina el header
         */

        top:
            100% !important;

        left:
            0 !important;

        right:
            0 !important;

        bottom:
            auto !important;

        width:
            100% !important;

        min-width:
            100% !important;

        max-width:
            100% !important;

        height:
            calc(
                100dvh
                - var(--pcm-mysticky-height)
                - var(--pcm-mobile-header-height)
            ) !important;

        max-height:
            calc(
                100dvh
                - var(--pcm-mysticky-height)
                - var(--pcm-mobile-header-height)
            ) !important;

        margin:
            0 !important;

        padding:
            0 !important;

        display:
            block !important;

        background:
            #ffffff !important;

        border:
            0 !important;

        border-top:
            0 !important;

        border-radius:
            0 !important;

        box-shadow:
            0
            12px
            25px
            rgba(0,0,0,.07) !important;

        z-index:
            10 !important;

        overflow-y:
            auto !important;

        overflow-x:
            hidden !important;

        -webkit-overflow-scrolling:
            touch;

        overscroll-behavior:
            contain;

        visibility:
            hidden !important;

        opacity:
            0 !important;

        pointer-events:
            none !important;

        transform:
            none !important;

        transition:
            opacity .18s ease,
            visibility .18s ease !important;
    }


    /* =====================================================
       MENÚ ABIERTO
    ====================================================== */

    .pcm-mobile-menu.is-open,
    .pcm-header
    .pcm-mobile-menu.is-open {
        top:
            100% !important;

        visibility:
            visible !important;

        opacity:
            1 !important;

        pointer-events:
            auto !important;

        transform:
            none !important;
    }


    /* =====================================================
       INTERIOR MENÚ
    ====================================================== */

    .pcm-mobile-menu__inner {
        position:
            relative !important;

        width:
            100% !important;

        max-width:
            none !important;

        min-height:
            100% !important;

        margin:
            0 !important;

        /*
         * 0 ARRIBA
         * para que el contenido empiece
         * pegado al header
         */

        padding:
            0
            26px
            40px !important;

        background:
            #ffffff !important;

        border:
            0 !important;

        z-index:
            2 !important;
    }


    /* =====================================================
       LISTA PRINCIPAL
    ====================================================== */

    .pcm-mobile-menu ul {
        width:
            100% !important;

        margin:
            0 !important;

        padding:
            0 !important;

        list-style:
            none !important;
    }


    .pcm-mobile-menu >
    .pcm-mobile-menu__inner >
    ul >
    li {
        position:
            relative !important;

        width:
            100% !important;

        margin:
            0 !important;

        padding:
            0 !important;

        background:
            #ffffff !important;

        border-bottom:
            1px
            solid
            #e8e8e8 !important;
    }


    .pcm-mobile-menu >
    .pcm-mobile-menu__inner >
    ul >
    li >
    a {
        width:
            100% !important;

        min-height:
            59px !important;

        margin:
            0 !important;

        padding:
            0
            2px !important;

        display:
            flex !important;

        align-items:
            center !important;

        color:
            #252525 !important;

        background:
            #ffffff !important;

        font-size:
            17px !important;

        font-weight:
            600 !important;

        line-height:
            1.3 !important;

        text-decoration:
            none !important;

        pointer-events:
            auto !important;
    }


    .pcm-mobile-menu >
    .pcm-mobile-menu__inner >
    ul >
    li >
    a:hover {
        color:
            var(--pcm-green) !important;
    }


    /* =====================================================
       SERVICIOS MÓVIL
    ====================================================== */

    .pcm-mobile-dropdown {
        position:
            relative !important;

        width:
            100% !important;

        margin:
            0 !important;

        padding:
            0 !important;

        background:
            #ffffff !important;

        border-bottom:
            1px
            solid
            #e8e8e8 !important;
    }


    .pcm-mobile-dropdown__head {
        width:
            100% !important;

        min-height:
            59px !important;

        margin:
            0 !important;

        padding:
            0 !important;

        display:
            flex !important;

        align-items:
            center !important;

        justify-content:
            space-between !important;

        gap:
            12px !important;

        background:
            #ffffff !important;
    }


    .pcm-mobile-dropdown__head > a {
        flex:
            1 !important;

        min-height:
            59px !important;

        margin:
            0 !important;

        padding:
            0
            2px !important;

        display:
            flex !important;

        align-items:
            center !important;

        color:
            #252525 !important;

        background:
            transparent !important;

        font-size:
            17px !important;

        font-weight:
            600 !important;

        line-height:
            1.3 !important;

        text-decoration:
            none !important;

        pointer-events:
            auto !important;
    }


    .pcm-mobile-dropdown__head > a:hover {
        color:
            var(--pcm-green) !important;
    }


    /* =====================================================
       BOTÓN + / -
    ====================================================== */

    .pcm-mobile-dropdown__btn {
        width:
            42px !important;

        height:
            42px !important;

        flex:
            0
            0
            42px !important;

        margin:
            0 !important;

        padding:
            0 !important;

        border:
            0 !important;

        border-radius:
            10px !important;

        outline:
            0 !important;

        display:
            flex !important;

        align-items:
            center !important;

        justify-content:
            center !important;

        color:
            #19432f !important;

        background:
            #edf5e8 !important;

        background-color:
            #edf5e8 !important;

        box-shadow:
            none !important;

        cursor:
            pointer !important;

        pointer-events:
            auto !important;

        appearance:
            none !important;

        -webkit-appearance:
            none !important;

        -webkit-tap-highlight-color:
            transparent !important;
    }


    .pcm-mobile-dropdown__btn:hover,
    .pcm-mobile-dropdown__btn:focus,
    .pcm-mobile-dropdown__btn:active {
        color:
            #19432f !important;

        background:
            #edf5e8 !important;

        background-color:
            #edf5e8 !important;

        border:
            0 !important;

        outline:
            0 !important;

        box-shadow:
            none !important;
    }


    .pcm-mobile-dropdown__btn span {
        display:
            block !important;

        color:
            #19432f !important;

        font-size:
            24px !important;

        font-weight:
            500 !important;

        line-height:
            1 !important;
    }


    /* =====================================================
       SUBMENÚ SERVICIOS
    ====================================================== */

    .pcm-mobile-submenu {
        width:
            100% !important;

        display:
            none !important;

        margin:
            0
            0
            14px !important;

        padding:
            8px !important;

        background:
            #f5f9f2 !important;

        border:
            0 !important;

        border-radius:
            13px !important;

        list-style:
            none !important;
    }


    .pcm-mobile-dropdown.is-open
    .pcm-mobile-submenu {
        display:
            block !important;
    }


    .pcm-mobile-submenu > li {
        width:
            100% !important;

        margin:
            0 !important;

        padding:
            0 !important;

        border:
            0 !important;

        background:
            transparent !important;
    }


    .pcm-mobile-submenu >
    li >
    a {
        width:
            100% !important;

        margin:
            0 !important;

        padding:
            13px
            14px !important;

        display:
            block !important;

        border-radius:
            9px !important;

        color:
            #252525 !important;

        background:
            transparent !important;

        font-size:
            14px !important;

        font-weight:
            600 !important;

        line-height:
            1.4 !important;

        text-decoration:
            none !important;

        pointer-events:
            auto !important;
    }


    .pcm-mobile-submenu >
    li >
    a:hover {
        color:
            #294a34 !important;

        background:
            #e8f3e1 !important;
    }


    /* =====================================================
       CONTACTO MÓVIL
    ====================================================== */

    .pcm-mobile-contact {
        width:
            100% !important;

        margin-top:
            28px !important;

        padding-bottom:
            30px !important;

        display:
            flex !important;

        flex-direction:
            column !important;

        gap:
            12px !important;

        background:
            #ffffff !important;
    }


    .pcm-mobile-contact >
    a:not(.pcm-mobile-whatsapp) {
        padding:
            10px
            2px !important;

        display:
            flex !important;

        flex-direction:
            column !important;

        gap:
            4px !important;

        color:
            #252525 !important;

        text-decoration:
            none !important;
    }


    .pcm-mobile-contact strong {
        color:
            #19432f !important;

        font-size:
            12px !important;

        font-weight:
            700 !important;

        letter-spacing:
            .10em !important;

        text-transform:
            uppercase !important;
    }


    .pcm-mobile-contact span {
        color:
            #252525 !important;

        font-size:
            16px !important;
    }


    .pcm-mobile-whatsapp {
        width:
            100% !important;

        min-height:
            50px !important;

        margin-top:
            8px !important;

        padding:
            0
            20px !important;

        border-radius:
            999px !important;

        display:
            flex !important;

        align-items:
            center !important;

        justify-content:
            center !important;

        color:
            #ffffff !important;

        background:
            #19432f !important;

        font-size:
            14px !important;

        font-weight:
            700 !important;

        text-align:
            center !important;

        text-decoration:
            none !important;
    }


    /* =====================================================
       SIN OVERLAY
    ====================================================== */

    body.pcm-menu-open::after {
        display:
            none !important;

        content:
            none !important;
    }


    body.pcm-menu-open {
        overflow:
            hidden !important;
    }

}


/* =========================================================
   WORDPRESS ADMIN BAR
========================================================= */

@media (max-width: 782px) {

    body.admin-bar
    .pcm-header.is-scrolled {
        top:
            calc(
                var(--pcm-mysticky-height)
                + 46px
            ) !important;
    }


    /*
     * El menú sigue pegado al header
     */

    body.admin-bar
    .pcm-mobile-menu,
    body.admin-bar
    .pcm-mobile-menu.is-open {
        top:
            100% !important;
    }

}


/* =========================================================
   FOOTER PAPELES CRUZ
========================================================= */

.pcm-footer,
.pcm-footer * {
    box-sizing: border-box;
}


.pcm-footer {
    --pcm-footer-green: #173d2b;
    --pcm-footer-green-dark: #0e291d;

    --pcm-footer-green-light: #74ad3e;
    --pcm-footer-green-hover: #8bc75a;

    --pcm-footer-dot: #a5d67d;

    --pcm-footer-text:
        rgba(255,255,255,.82);

    --pcm-footer-muted:
        rgba(255,255,255,.68);

    --pcm-footer-border:
        rgba(255,255,255,.14);

    position: relative;

    width: 100%;

    color:
        var(--pcm-footer-text);

    background:
        radial-gradient(
            circle at 0% 0%,
            rgba(108,164,66,.20),
            transparent 35%
        ),
        linear-gradient(
            135deg,
            var(--pcm-footer-green),
            var(--pcm-footer-green-dark)
        );

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
}


/* =========================================================
   FOOTER PRINCIPAL
========================================================= */

.pcm-footer__main {
    width: 100%;

    padding:
        68px
        0
        58px;
}


.pcm-footer__container {
    width: 100%;
    max-width: 1200px;

    margin:
        0
        auto;

    padding:
        0
        24px;

    display:
        grid;

    grid-template-columns:
        1.15fr
        .90fr
        1.05fr
        1.15fr;

    gap:
        48px;

    align-items:
        start;
}


/* =========================================================
   MARCA FOOTER
========================================================= */

.pcm-footer__brand {
    min-width: 0;
}


.pcm-footer__logo {
    width: 100px;
    height: 78px;

    margin-bottom:
        26px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        18px;

    background:
        #ffffff;

    overflow:
        hidden;

    text-decoration:
        none !important;

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}


.pcm-footer__logo:hover {
    transform:
        translateY(-3px);

    box-shadow:
        0
        14px
        35px
        rgba(0,0,0,.18);
}


.pcm-footer__logo img {
    display:
        block;

    width:
        auto;

    height:
        60px;

    max-width:
        90%;

    object-fit:
        contain;
}


.pcm-footer__description {
    max-width:
        330px;

    margin:
        0;

    color:
        var(--pcm-footer-text);

    font-size:
        16px;

    line-height:
        1.75;
}


/* =========================================================
   REDES FOOTER
========================================================= */

.pcm-footer__social {
    margin-top:
        26px;

    display:
        flex;

    align-items:
        center;

    gap:
        12px;
}


.pcm-footer__social a {
    width:
        44px;

    height:
        44px;

    border:
        1px
        solid
        rgba(255,255,255,.22);

    border-radius:
        50%;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    color:
        #ffffff !important;

    background:
        rgba(255,255,255,.09);

    font-size:
        16px;

    font-weight:
        700;

    text-decoration:
        none !important;

    transition:
        background .25s ease,
        border-color .25s ease,
        transform .25s ease;
}


.pcm-footer__social a:hover {
    border-color:
        var(--pcm-footer-green-light);

    background:
        var(--pcm-footer-green-light);

    transform:
        translateY(-3px);
}


/* =========================================================
   COLUMNAS FOOTER
========================================================= */

.pcm-footer__column {
    min-width:
        0;
}


.pcm-footer__column h3 {
    margin:
        3px
        0
        25px;

    padding:
        0;

    color:
        #ffffff;

    font-size:
        19px;

    font-weight:
        600;

    line-height:
        1.3;
}


/* =========================================================
   CONTACTO FOOTER
========================================================= */

.pcm-footer__contact-item {
    margin-bottom:
        22px;
}


.pcm-footer__contact-item:last-child {
    margin-bottom:
        0;
}


.pcm-footer__contact-item strong {
    margin-bottom:
        6px;

    display:
        block;

    color:
        #ffffff;

    font-size:
        15px;

    font-weight:
        700;
}


.pcm-footer__contact-item a {
    margin-bottom:
        3px;

    display:
        block;

    color:
        var(--pcm-footer-text) !important;

    font-size:
        15px;

    line-height:
        1.65;

    text-decoration:
        none !important;

    transition:
        color .2s ease;
}


.pcm-footer__contact-item a:hover {
    color:
        var(--pcm-footer-green-hover) !important;
}


/* =========================================================
   SERVICIOS + ENLACES DE INTERÉS
========================================================= */

.pcm-footer__links {
    margin:
        0 !important;

    padding:
        0 !important;

    list-style:
        none !important;
}


.pcm-footer__links > li {
    position:
        relative;

    margin:
        0
        0
        15px !important;

    padding:
        0
        0
        0
        20px !important;

    list-style:
        none !important;
}


.pcm-footer__links >
li:last-child {
    margin-bottom:
        0 !important;
}


/* CÍRCULO VERDE */

.pcm-footer__links >
li::before {
    content:
        "";

    position:
        absolute;

    left:
        0;

    top:
        .76em;

    width:
        8px;

    height:
        8px;

    border-radius:
        50%;

    background:
        var(--pcm-footer-dot);

    box-shadow:
        0
        0
        0
        4px
        rgba(165,214,125,.08);

    transform:
        translateY(-50%);

    transition:
        background .22s ease,
        box-shadow .22s ease,
        transform .22s ease;
}


.pcm-footer__links >
li >
a {
    position:
        relative;

    color:
        var(--pcm-footer-text) !important;

    font-size:
        15px;

    line-height:
        1.55;

    text-decoration:
        none !important;

    transition:
        color .22s ease;
}


.pcm-footer__links >
li >
a:hover {
    color:
        var(--pcm-footer-green-hover) !important;
}


.pcm-footer__links >
li:hover::before {
    background:
        var(--pcm-footer-green-hover);

    box-shadow:
        0
        0
        0
        5px
        rgba(139,199,90,.12);

    transform:
        translateY(-50%)
        scale(1.08);
}


/* =========================================================
   BOTÓN FOOTER
========================================================= */

.pcm-footer__button {
    min-height:
        50px;

    margin-top:
        28px;

    padding:
        0
        25px;

    border-radius:
        999px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    color:
        #ffffff !important;

    background:
        var(--pcm-footer-green-light);

    font-size:
        14px;

    font-weight:
        700;

    text-decoration:
        none !important;

    transition:
        background .25s ease,
        transform .25s ease;
}


.pcm-footer__button:hover {
    color:
        #ffffff !important;

    background:
        var(--pcm-footer-green-hover);

    transform:
        translateY(-2px);
}


/* =========================================================
   SUBFOOTER
========================================================= */

.pcm-footer__bottom {
    width:
        100%;

    border-top:
        1px
        solid
        var(--pcm-footer-border);

    background:
        rgba(0,0,0,.07);
}


.pcm-footer__bottom-inner {
    width:
        100%;

    max-width:
        1200px;

    min-height:
        67px;

    margin:
        0
        auto;

    padding:
        16px
        24px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        30px;
}


.pcm-footer__copyright {
    margin:
        0 !important;

    color:
        var(--pcm-footer-muted);

    font-size:
        13px;
}


.pcm-footer__legal {
    display:
        flex;

    align-items:
        center;

    gap:
        23px;
}


.pcm-footer__legal a {
    color:
        var(--pcm-footer-muted) !important;

    font-size:
        13px;

    text-decoration:
        none !important;

    transition:
        color .2s ease;
}


.pcm-footer__legal a:hover {
    color:
        #ffffff !important;
}


/* =========================================================
   FOOTER TABLET
========================================================= */

@media (max-width: 1100px) {

    .pcm-footer__container {
        grid-template-columns:
            1fr
            1fr;

        gap:
            50px
            65px;
    }

}


/* =========================================================
   FOOTER MÓVIL
========================================================= */

@media (max-width: 700px) {

    .pcm-footer__main {
        padding:
            50px
            0
            42px;
    }


    .pcm-footer__container {
        grid-template-columns:
            1fr;

        gap:
            42px;

        padding:
            0
            22px;
    }


    .pcm-footer__description {
        max-width:
            100%;
    }


    .pcm-footer__column h3 {
        margin-bottom:
            19px;

        font-size:
            18px;
    }


    .pcm-footer__bottom-inner {
        min-height:
            auto;

        padding:
            22px;

        flex-direction:
            column;

        align-items:
            flex-start;

        gap:
            16px;
    }


    .pcm-footer__legal {
        flex-wrap:
            wrap;

        gap:
            10px
            20px;
    }

}


/* =========================================================
   FOOTER MÓVIL PEQUEÑO
========================================================= */

@media (max-width: 420px) {

    .pcm-footer__main {
        padding-top:
            42px;
    }


    .pcm-footer__logo {
        width:
            90px;

        height:
            72px;
    }


    .pcm-footer__logo img {
        height:
            54px;
    }


    .pcm-footer__description {
        font-size:
            15px;

        line-height:
            1.7;
    }


    .pcm-footer__links >
    li >
    a,
    .pcm-footer__contact-item a {
        font-size:
            14px;
    }


    .pcm-footer__links >
    li {
        padding-left:
            18px !important;
    }


    .pcm-footer__links >
    li::before {
        width:
            7px;

        height:
            7px;
    }

}


/* =========================================================
   BLOQUE DE CONTACTO [pc_contacto]
========================================================= */

.pc-contact-section,
.pc-contact-section * {
    box-sizing: border-box;
}
.pc-contact-section {
    --pc-contact-green-dark: #19432f;
    --pc-contact-green: #6ca442;
    --pc-contact-green-soft: #edf5e8;
    --pc-contact-text: #1f2722;
    --pc-contact-muted: #68716b;
    --pc-contact-border: rgba(25,67,47,.12);

    width: 100%;
    padding: 90px 0 80px;

    background:
        radial-gradient(
            circle at 10% 5%,
            rgba(108,164,66,.08),
            transparent 30%
        ),
        #ffffff;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
}
.pc-contact-container {
    width: 100%;
    max-width: 1180px;

    margin: 0 auto;
    padding: 0 24px;
}
.pc-contact-grid {
    display: grid;

    grid-template-columns:
        .82fr
        1.18fr;

    gap: 46px;

    align-items: start;
}
.pc-contact-info {
    min-width: 0;
}
.pc-contact-kicker,
.pc-contact-form-kicker {
    margin-bottom: 10px;

    display: inline-block;

    color: var(--pc-contact-green);

    font-size: 11px;
    font-weight: 800;

    line-height: 1;

    letter-spacing: .16em;

    text-transform: uppercase;
}
.pc-contact-info h2 {
    max-width: 390px;

    margin: 0 0 24px;

    color: var(--pc-contact-text);

    font-size: clamp(34px, 4vw, 52px);

    font-weight: 500;

    line-height: 1.05;

    letter-spacing: -.035em;
}
.pc-contact-cards {
    display: grid;
    gap: 13px;
}
.pc-contact-card {
    min-height: 88px;

    padding: 17px 18px;

    border:
        1px solid
        var(--pc-contact-border);

    border-radius: 17px;

    display: grid;

    grid-template-columns:
        44px 1fr;

    gap: 14px;

    align-items: start;

    background:
        rgba(255,255,255,.92);

    box-shadow:
        0
        10px
        28px
        rgba(25,67,47,.05);

    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}
.pc-contact-card:hover {
    transform: translateY(-3px);

    border-color:
        rgba(108,164,66,.28);

    box-shadow:
        0
        16px
        34px
        rgba(25,67,47,.08);
}
.pc-contact-icon {
    width: 44px;
    height: 44px;

    border-radius: 12px;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #ffffff;

    background:
        var(--pc-contact-green-dark);
}
.pc-contact-icon svg {
    width: 20px;
    height: 20px;

    display: block;

    fill: none;

    stroke: currentColor;

    stroke-width: 1.9;

    stroke-linecap: round;

    stroke-linejoin: round;
}
.pc-contact-card strong {
    margin-bottom: 5px;

    display: block;

    color: var(--pc-contact-text);

    font-size: 14px;
    font-weight: 700;
}
.pc-contact-card p,
.pc-contact-card a {
    margin: 0;

    color: var(--pc-contact-muted) !important;

    font-size: 13px;

    line-height: 1.6;

    text-decoration: none !important;
}
.pc-contact-card a:hover {
    color:
        var(--pc-contact-green) !important;
}
.pc-contact-form-wrap {
    padding: 32px 34px 34px;

    border:
        1px solid
        var(--pc-contact-border);

    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0
        18px
        50px
        rgba(25,67,47,.09);
}
.pc-contact-form-wrap h2 {
    margin: 0 0 24px;

    color: var(--pc-contact-text);

    font-size: clamp(31px, 3.5vw, 45px);

    font-weight: 500;

    line-height: 1.08;

    letter-spacing: -.03em;
}
.pc-contact-map {
    margin-top: 55px;

    border:
        1px solid
        var(--pc-contact-border);

    border-radius: 24px;

    overflow: hidden;

    background: #eef2ed;

    box-shadow:
        0
        18px
        42px
        rgba(25,67,47,.07);
}
.pc-contact-map iframe {
    width: 100%;
    height: 420px;

    border: 0;

    display: block;
}
@media (max-width: 900px) {
.pc-contact-grid {
        grid-template-columns: 1fr;

        gap: 38px;
}
.pc-contact-info h2 {
        max-width: 100%;
}
}
@media (max-width: 600px) {
.pc-contact-section {
        padding:
            65px
            0
            60px;
}
.pc-contact-container {
        padding:
            0
            20px;
}
.pc-contact-info h2,
    .pc-contact-form-wrap h2 {
        font-size: 34px;
}
.pc-contact-card {
        grid-template-columns:
            40px 1fr;

        padding:
            15px;

        border-radius:
            15px;
}
.pc-contact-icon {
        width: 40px;
        height: 40px;

        border-radius: 11px;
}
.pc-contact-icon svg {
        width: 18px;
        height: 18px;
}
.pc-contact-form-wrap {
        padding:
            26px
            20px
            28px;

        border-radius:
            20px;
}
.pc-contact-map {
        margin-top:
            38px;

        border-radius:
            18px;
}
.pc-contact-map iframe {
        height:
            340px;
}
}

/* Formulario del tema dentro del bloque de contacto (sustituye al de Elementor + Country Code). */
.pc-contact-form-wrap .formulario { margin: 0; }
.pc-contact-form-wrap .formulario__enviar { border-radius: 999px; box-shadow: 0 10px 25px rgba(108, 164, 66, .25); }
.pc-contact-form-kicker, .pc-contact-kicker { display: inline-block; }

/* Mapa: se carga al pulsar «Ver mapa». */
.pc-contact-map.contacto__mapa { aspect-ratio: auto; height: 420px; margin-top: 55px; position: relative; }
.pc-contact-map.contacto__mapa iframe { height: 100%; }
@media (max-width: 600px) { .pc-contact-map.contacto__mapa { height: 340px; margin-top: 38px; } }

/* Logo con medidas reales en el HTML: que no se deforme. */
.pcm-header__logo img, .pcm-footer__logo img { height: auto; }

/* El formulario del tema va dentro de la tarjeta blanca del bloque: sin segundo marco. */
.pc-contact-form-wrap .formulario { border: 0; border-radius: 0; padding: 0; background: none; }
