/* ========================================
   BASE
======================================== */

.contact-page {

    background:
        var(--rumby-cream);

}


.mobile-nav a.active {

    color:
        var(--rumby-teal-dark);

}


.contact-mobile-badge {

    background:
        rgba(25, 181, 165, 0.10);

    color:
        var(--rumby-teal-dark);

}



/* ========================================
   ELEMENTOS COMPARTIDOS
======================================== */

.contact-eyebrow,
.contact-section-eyebrow {

    width:
        fit-content;

    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    padding:
        8px 13px;

    border:
        1px solid rgba(25, 181, 165, 0.20);

    border-radius:
        999px;

    background:
        rgba(25, 181, 165, 0.07);

    color:
        var(--rumby-teal-dark);

    font-size:
        0.8rem;

    font-weight:
        700;

}


.contact-eyebrow {

    margin:
        0 auto 19px;

}


.contact-section-eyebrow {

    margin-bottom:
        17px;

}


.contact-eyebrow-dot {

    width:
        8px;

    height:
        8px;

    flex:
        0 0 auto;

    border-radius:
        50%;

    background:
        var(--rumby-coral);

}


.contact-section-heading {

    max-width:
        820px;

    margin-bottom:
        48px;

}


.contact-section-heading-center {

    margin-left:
        auto;

    margin-right:
        auto;

    text-align:
        center;

}


.contact-section-heading-center
.contact-section-eyebrow {

    margin-left:
        auto;

    margin-right:
        auto;

}


.contact-section-title {

    margin:
        0 0 16px;

    color:
        var(--rumby-dark);

    font-size:
        clamp(2.35rem, 4vw, 4rem);

    font-weight:
        800;

    line-height:
        1.03;

    letter-spacing:
        -0.05em;

}


.contact-section-title span {

    color:
        var(--rumby-teal);

}


.contact-section-description {

    max-width:
        690px;

    margin:
        0;

    color:
        var(--rumby-text);

    font-size:
        1rem;

    line-height:
        1.7;

}


.contact-section-heading-center
.contact-section-description {

    margin-left:
        auto;

    margin-right:
        auto;

}



/* ========================================
   HERO
======================================== */

.contact-hero {

    position:
        relative;

    overflow:
        hidden;

    padding:
        102px 0 112px;

    background:
        linear-gradient(
            180deg,
            #F8F7F3 0%,
            #F1F8F6 100%
        );

}


.contact-hero-content {

    position:
        relative;

    z-index:
        4;

    max-width:
        920px;

    margin:
        0 auto;

    text-align:
        center;

}


.contact-hero-title {

    margin:
        0 0 23px;

    color:
        var(--rumby-dark);

    font-size:
        clamp(3.45rem, 6.5vw, 6.5rem);

    font-weight:
        800;

    line-height:
        0.95;

    letter-spacing:
        -0.065em;

}


.contact-hero-title span {

    display:
        block;

    color:
        var(--rumby-teal);

}


.contact-hero-description {

    max-width:
        680px;

    margin:
        0 auto 36px;

    color:
        var(--rumby-text);

    font-size:
        clamp(1rem, 1.6vw, 1.18rem);

    line-height:
        1.72;

}


.contact-hero-actions {

    display:
        flex;

    flex-wrap:
        wrap;

    justify-content:
        center;

    gap:
        12px;

}


.contact-primary-button,
.contact-secondary-button {

    min-height:
        54px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        10px;

    padding:
        13px 21px;

    border-radius:
        15px;

    font-size:
        0.84rem;

    font-weight:
        800;

    text-decoration:
        none;

    transition:
        transform var(--rumby-transition),
        background var(--rumby-transition),
        border-color var(--rumby-transition),
        box-shadow var(--rumby-transition);

}


.contact-primary-button {

    border:
        1px solid var(--rumby-teal);

    background:
        var(--rumby-teal);

    color:
        white;

    box-shadow:
        0 13px 30px rgba(25, 181, 165, 0.20);

}


.contact-primary-button:hover {

    transform:
        translateY(-2px);

    background:
        var(--rumby-teal-dark);

    border-color:
        var(--rumby-teal-dark);

    color:
        white;

}


.contact-secondary-button {

    border:
        1px solid rgba(23, 35, 33, 0.09);

    background:
        rgba(255, 255, 255, 0.82);

    color:
        var(--rumby-dark);

}


.contact-secondary-button:hover {

    transform:
        translateY(-2px);

    border-color:
        rgba(25, 181, 165, 0.25);

    background:
        white;

    color:
        var(--rumby-teal-dark);

}



/* ========================================
   DECORACIÓN HERO
======================================== */

.contact-hero-decoration {

    position:
        absolute;

    border-radius:
        50%;

    pointer-events:
        none;

}


.contact-hero-decoration-teal {

    width:
        450px;

    height:
        450px;

    top:
        -275px;

    right:
        -100px;

    background:
        rgba(25, 181, 165, 0.08);

}


.contact-hero-decoration-coral {

    width:
        105px;

    height:
        105px;

    left:
        8%;

    bottom:
        68px;

    background:
        rgba(255, 107, 94, 0.16);

}


.contact-hero-decoration-yellow {

    width:
        78px;

    height:
        78px;

    right:
        12%;

    bottom:
        48px;

    background:
        rgba(255, 200, 87, 0.38);

}



/* ========================================
   CANALES
======================================== */

.contact-channels {

    padding:
        110px 0 118px;

    background:
        white;

}


.contact-channels-grid {

    display:
        grid;

    grid-template-columns:
        repeat(6, minmax(0, 1fr));

    gap:
        18px;

}


.contact-channel-card {

    min-width:
        0;

    min-height:
        350px;

    display:
        flex;

    flex-direction:
        column;

    padding:
        29px;

    border:
        1px solid rgba(23, 35, 33, 0.075);

    border-radius:
        26px;

    background:
        #FBFCFA;

    box-shadow:
        0 8px 28px rgba(23, 35, 33, 0.035);

    transition:
        transform var(--rumby-transition),
        border-color var(--rumby-transition),
        box-shadow var(--rumby-transition);

}


.contact-channel-card:hover {

    transform:
        translateY(-5px);

    border-color:
        rgba(25, 181, 165, 0.18);

    box-shadow:
        0 20px 45px rgba(23, 35, 33, 0.08);

}


.contact-channel-card-featured {

    grid-column:
        span 3;

    background:
        linear-gradient(
            145deg,
            #F1FBF8 0%,
            #F8FCFA 100%
        );

    border-color:
        rgba(25, 181, 165, 0.19);

}


.contact-channel-phone {

    grid-column:
        span 3;

}


.contact-channel-email,
.contact-channel-instagram,
.contact-channel-messenger {

    grid-column:
        span 2;

}


.contact-channel-top {

    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        space-between;

    gap:
        20px;

    margin-bottom:
        34px;

}


.contact-channel-icon {

    width:
        62px;

    height:
        62px;

    flex:
        0 0 62px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        19px;

    font-size:
        1.45rem;

}


.contact-channel-whatsapp
.contact-channel-icon {

    background:
        rgba(37, 211, 102, 0.11);

    color:
        #149D49;

}


.contact-channel-phone
.contact-channel-icon {

    background:
        rgba(25, 181, 165, 0.10);

    color:
        var(--rumby-teal);

}


.contact-channel-email
.contact-channel-icon {

    background:
        rgba(255, 200, 87, 0.17);

    color:
        #BD8208;

}


.contact-channel-instagram
.contact-channel-icon {

    background:
        rgba(255, 107, 94, 0.10);

    color:
        var(--rumby-coral);

}


.contact-channel-messenger
.contact-channel-icon {

    background:
        rgba(70, 119, 154, 0.10);

    color:
        #46779A;

}


.contact-channel-badge {

    display:
        inline-flex;

    align-items:
        center;

    padding:
        7px 11px;

    border-radius:
        999px;

    background:
        rgba(25, 181, 165, 0.09);

    color:
        var(--rumby-teal-dark);

    font-size:
        0.68rem;

    font-weight:
        800;

}


.contact-channel-content {

    flex:
        1;

}


.contact-channel-label {

    display:
        block;

    margin-bottom:
        7px;

    color:
        #7B8985;

    font-size:
        0.7rem;

    font-weight:
        700;

    text-transform:
        uppercase;

    letter-spacing:
        0.055em;

}


.contact-channel-content h3 {

    margin:
        0 0 11px;

    color:
        var(--rumby-dark);

    font-size:
        1.42rem;

    font-weight:
        800;

    letter-spacing:
        -0.025em;

}


.contact-channel-content p {

    margin:
        0 0 17px;

    color:
        #6E7C78;

    font-size:
        0.83rem;

    line-height:
        1.68;

}


.contact-channel-value {

    display:
        block;

    max-width:
        100%;

    overflow-wrap:
        anywhere;

    color:
        var(--rumby-dark);

    font-size:
        0.82rem;

    font-weight:
        800;

}


.contact-channel-email-value {

    font-size:
        0.76rem;

}


.contact-channel-link {

    width:
        fit-content;

    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    margin-top:
        24px;

    color:
        var(--rumby-teal-dark);

    font-size:
        0.78rem;

    font-weight:
        800;

    text-decoration:
        none;

    transition:
        gap var(--rumby-transition),
        color var(--rumby-transition);

}


.contact-channel-link:hover {

    gap:
        11px;

    color:
        var(--rumby-teal);

}



/* ========================================
   GUÍA DE CONTACTO
======================================== */

.contact-guide {

    position:
        relative;

    overflow:
        hidden;

    padding:
        112px 0;

    background:
        var(--rumby-cream);

}


.contact-guide-intro {

    position:
        relative;

    z-index:
        3;

    max-width:
        470px;

}


.contact-guide-title {

    margin:
        0 0 19px;

    color:
        var(--rumby-dark);

    font-size:
        clamp(2.6rem, 4.5vw, 4.5rem);

    font-weight:
        800;

    line-height:
        1.01;

    letter-spacing:
        -0.055em;

}


.contact-guide-title span {

    display:
        block;

    color:
        var(--rumby-teal);

}


.contact-guide-intro > p {

    max-width:
        430px;

    margin:
        0;

    color:
        var(--rumby-text);

    font-size:
        0.94rem;

    line-height:
        1.72;

}


.contact-guide-grid {

    position:
        relative;

    z-index:
        3;

    display:
        grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        15px;

}


.contact-guide-item {

    min-width:
        0;

    min-height:
        185px;

    padding:
        25px;

    border:
        1px solid rgba(23, 35, 33, 0.07);

    border-radius:
        23px;

    background:
        rgba(255, 255, 255, 0.82);

    box-shadow:
        0 8px 25px rgba(23, 35, 33, 0.035);

}


.contact-guide-number {

    display:
        block;

    margin-bottom:
        22px;

    color:
        var(--rumby-coral);

    font-size:
        0.7rem;

    font-weight:
        800;

    letter-spacing:
        0.06em;

}


.contact-guide-item h3 {

    margin:
        0 0 8px;

    color:
        var(--rumby-dark);

    font-size:
        0.95rem;

    font-weight:
        800;

    line-height:
        1.3;

}


.contact-guide-item p {

    margin:
        0;

    color:
        #71807B;

    font-size:
        0.78rem;

    line-height:
        1.6;

}


.contact-guide-decoration {

    position:
        absolute;

    border-radius:
        50%;

    pointer-events:
        none;

}


.contact-guide-decoration-yellow {

    width:
        390px;

    height:
        390px;

    left:
        -230px;

    bottom:
        -200px;

    background:
        rgba(255, 200, 87, 0.10);

}


.contact-guide-decoration-teal {

    width:
        300px;

    height:
        300px;

    right:
        -190px;

    top:
        80px;

    background:
        rgba(25, 181, 165, 0.065);

}



/* ========================================
   CENTRO DE AYUDA
======================================== */

.contact-help {

    padding:
        105px 0;

    background:
        white;

}


.contact-help-shell {

    position:
        relative;

    overflow:
        hidden;

    min-height:
        300px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        42px;

    padding:
        48px 52px;

    border-radius:
        30px;

    background:
        linear-gradient(
            135deg,
            #163F3B,
            #102F2C
        );

    box-shadow:
        0 21px 52px rgba(20, 58, 54, 0.16);

}


.contact-help-content {

    position:
        relative;

    z-index:
        4;

    display:
        flex;

    align-items:
        flex-start;

    gap:
        21px;

}


.contact-help-icon {

    width:
        62px;

    height:
        62px;

    flex:
        0 0 62px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        19px;

    background:
        rgba(255, 255, 255, 0.09);

    color:
        #75DED3;

    font-size:
        1.45rem;

}


.contact-help-label {

    display:
        block;

    margin-bottom:
        8px;

    color:
        #6CD9CE;

    font-size:
        0.72rem;

    font-weight:
        800;

    text-transform:
        uppercase;

    letter-spacing:
        0.06em;

}


.contact-help-content h2 {

    max-width:
        590px;

    margin:
        0 0 9px;

    color:
        white;

    font-size:
        clamp(2rem, 3vw, 3rem);

    font-weight:
        800;

    line-height:
        1.06;

    letter-spacing:
        -0.045em;

}


.contact-help-content p {

    max-width:
        620px;

    margin:
        0;

    color:
        rgba(255, 255, 255, 0.62);

    font-size:
        0.85rem;

    line-height:
        1.65;

}


.contact-help-button {

    position:
        relative;

    z-index:
        4;

    min-height:
        52px;

    flex:
        0 0 auto;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        10px;

    padding:
        13px 21px;

    border-radius:
        15px;

    background:
        var(--rumby-yellow);

    color:
        #503A09;

    font-size:
        0.84rem;

    font-weight:
        800;

    text-decoration:
        none;

    transition:
        transform var(--rumby-transition),
        background var(--rumby-transition);

}


.contact-help-button:hover {

    transform:
        translateY(-2px);

    background:
        #FFD575;

    color:
        #503A09;

}


.contact-help-decoration {

    position:
        absolute;

    border-radius:
        50%;

    pointer-events:
        none;

}


.contact-help-decoration-teal {

    width:
        320px;

    height:
        320px;

    right:
        -130px;

    top:
        -190px;

    background:
        rgba(25, 181, 165, 0.11);

}


.contact-help-decoration-yellow {

    width:
        130px;

    height:
        130px;

    left:
        42%;

    bottom:
        -90px;

    background:
        rgba(255, 200, 87, 0.07);

}


.contact-help-decoration-coral {

    width:
        65px;

    height:
        65px;

    right:
        25%;

    bottom:
        23px;

    background:
        rgba(255, 107, 94, 0.08);

}



/* ========================================
   REVEAL
======================================== */

/*
   Los elementos permanecen visibles si JS no carga.
   contacto.js añade .contact-js-ready únicamente
   cuando JavaScript está funcionando.
*/

.contact-js-ready
[data-contact-reveal] {

    opacity:
        0;

    transform:
        translateY(18px);

    transition:
        opacity 620ms ease,
        transform 620ms ease;

}


.contact-js-ready
[data-contact-reveal].is-visible {

    opacity:
        1;

    transform:
        translateY(0);

}



/* ========================================
   RESPONSIVE - 1200
======================================== */

@media (max-width: 1199.98px) {

    .contact-channel-card-featured,
    .contact-channel-phone {

        grid-column:
            span 3;

    }


    .contact-channel-email,
    .contact-channel-instagram,
    .contact-channel-messenger {

        grid-column:
            span 2;

    }

}



/* ========================================
   RESPONSIVE - TABLET
======================================== */

@media (max-width: 991.98px) {

    .contact-hero {

        padding:
            78px 0 90px;

    }


    .contact-channels,
    .contact-guide {

        padding:
            88px 0;

    }


    .contact-channel-card {

        grid-column:
            span 3;

    }


    .contact-channel-messenger {

        grid-column:
            2 / span 4;

    }


    .contact-guide-intro {

        max-width:
            700px;

    }


    .contact-guide-intro > p {

        max-width:
            650px;

    }


    .contact-help {

        padding:
            85px 0;

    }


    .contact-help-shell {

        align-items:
            flex-start;

        flex-direction:
            column;

    }

}



/* ========================================
   RESPONSIVE - MÓVIL
======================================== */

@media (max-width: 767.98px) {

    .contact-hero {

        padding:
            58px 0 73px;

    }


    .contact-hero-title {

        font-size:
            clamp(3rem, 14vw, 4.5rem);

    }


    .contact-hero-actions {

        flex-direction:
            column;

        align-items:
            stretch;

    }


    .contact-primary-button,
    .contact-secondary-button {

        width:
            100%;

    }


    .contact-hero-decoration-coral {

        display:
            none;

    }


    .contact-channels,
    .contact-guide {

        padding:
            72px 0;

    }


    .contact-section-title {

        font-size:
            clamp(2.2rem, 10vw, 3rem);

    }


    .contact-channels-grid {

        grid-template-columns:
            1fr;

    }


    .contact-channel-card,
    .contact-channel-card-featured,
    .contact-channel-phone,
    .contact-channel-email,
    .contact-channel-instagram,
    .contact-channel-messenger {

        grid-column:
            auto;

    }


    .contact-channel-card {

        min-height:
            320px;

        padding:
            25px;

    }


    .contact-guide-title {

        font-size:
            clamp(2.4rem, 11vw, 3.4rem);

    }


    .contact-guide-grid {

        grid-template-columns:
            1fr;

    }


    .contact-guide-item {

        min-height:
            0;

    }


    .contact-help {

        padding:
            72px 0;

    }


    .contact-help-shell {

        min-height:
            0;

        padding:
            35px 28px;

        border-radius:
            25px;

    }


    .contact-help-content {

        flex-direction:
            column;

    }


    .contact-help-button {

        width:
            100%;

    }

}



/* ========================================
   RESPONSIVE - MÓVIL PEQUEÑO
======================================== */

@media (max-width: 479.98px) {

    .contact-channel-top {

        margin-bottom:
            27px;

    }


    .contact-channel-icon {

        width:
            56px;

        height:
            56px;

        flex-basis:
            56px;

        border-radius:
            17px;

    }


    .contact-channel-content h3 {

        font-size:
            1.3rem;

    }


    .contact-channel-email-value {

        font-size:
            0.7rem;

    }


    .contact-guide-item {

        padding:
            22px;

    }

}



/* ========================================
   ACCESIBILIDAD
======================================== */

@media (prefers-reduced-motion: reduce) {

    .contact-js-ready
    [data-contact-reveal] {

        opacity:
            1;

        transform:
            none;

        transition:
            none;

    }


    .contact-channel-card,
    .contact-primary-button,
    .contact-secondary-button,
    .contact-help-button,
    .contact-channel-link {

        transition:
            none;

    }

}