/* ==========================================================
   ZANZI STROLL TOURS & SAFARI
   FINAL PREMIUM FOOTER
   BRAND: NAVY / BLUE / GOLD / WHITE
========================================================== */

:root{
    --zpf-dark:#022B4D;
    --zpf-navy:#003B69;

    --zpf-blue:#00518A;
    --zpf-blue-light:#0870AF;

    --zpf-gold:#F5A000;
    --zpf-gold-light:#FFB515;
    --zpf-gold-soft:#FFF4DC;

    --zpf-white:#FFFFFF;

    --zpf-muted:#C9D7E2;
    --zpf-muted-light:#E2EAF0;

    --zpf-line:rgba(255,255,255,.14);
}


/* ==========================================================
   FOOTER ROOT
========================================================== */

.zp-footer{
    position:relative;

    width:100%;

    margin:0 !important;

    background:var(--zpf-dark) !important;

    color:var(--zpf-white);

    font-family:
        'Manrope',
        'Inter',
        'Segoe UI',
        Arial,
        sans-serif;

    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;

    overflow:hidden;
}


.zpf-container{
    width:min(1500px,calc(100% - 70px));

    margin:0 auto;
}


/* ==========================================================
   TOP CONTACT STRIP
========================================================== */

.zpf-top{
    padding:45px 0;

    border-bottom:
        1px solid
        var(--zpf-line);

    background:
        linear-gradient(
            135deg,
            var(--zpf-dark) 0%,
            var(--zpf-navy) 58%,
            var(--zpf-blue) 100%
        );
}


.zpf-top-grid{
    display:grid;

    grid-template-columns:
        1.25fr
        1fr
        1fr
        1fr;

    align-items:center;

    gap:35px;
}


/* ==========================================================
   LOGO
========================================================== */

.zpf-brand{
    display:flex;

    align-items:center;

    min-width:0;
}


.zpf-brand a{
    display:inline-flex;

    align-items:center;

    text-decoration:none;
}


.zpf-brand img{
    display:block;

    width:260px;

    max-width:100%;

    height:90px;

    object-fit:contain;

    object-position:left center;

    filter:none !important;
}


/* ==========================================================
   CONTACT ITEMS
========================================================== */

.zpf-contact-item{
    min-width:0;

    display:flex;

    align-items:center;

    gap:16px;

    color:var(--zpf-white) !important;

    text-decoration:none !important;

    transition:
        transform .2s ease;
}


.zpf-contact-item:hover{
    transform:translateY(-2px);
}


.zpf-contact-icon{
    width:56px;
    height:56px;

    flex:none;

    display:flex;

    align-items:center;
    justify-content:center;

    border:
        1px solid
        rgba(255,255,255,.15);

    border-radius:50%;

    background:var(--zpf-white);

    color:var(--zpf-blue);

    font-size:19px;

    box-shadow:
        0 7px 20px
        rgba(2,43,77,.18);

    transition:
        color .2s ease,
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}


.zpf-contact-item:hover
.zpf-contact-icon{
    color:var(--zpf-white);

    background:
        linear-gradient(
            135deg,
            var(--zpf-navy) 0%,
            var(--zpf-blue) 100%
        );

    border-color:
        var(--zpf-gold);

    transform:scale(1.04);
}


.zpf-contact-item small{
    display:block;

    margin-bottom:5px;

    color:var(--zpf-muted);

    font-size:12px;

    line-height:1.3;

    font-weight:600;
}


.zpf-contact-item strong{
    display:block;

    color:var(--zpf-white);

    font-size:15px;

    line-height:1.45;

    font-weight:700;

    overflow-wrap:anywhere;
}


/* ==========================================================
   MAIN FOOTER
========================================================== */

.zpf-main{
    position:relative;

    padding:75px 0 85px;

    background:
        radial-gradient(
            circle at 8% 60%,
            rgba(8,112,175,.10),
            transparent 24%
        ),
        radial-gradient(
            circle at 91% 58%,
            rgba(0,81,138,.12),
            transparent 26%
        ),
        var(--zpf-dark);
}


/* DECORATIVE CIRCLE */

.zpf-main::before{
    content:"";

    position:absolute;

    left:-70px;
    top:70px;

    width:310px;
    height:310px;

    opacity:.08;

    border-radius:50%;

    border:
        1px dashed
        rgba(255,255,255,.75);

    pointer-events:none;
}


.zpf-main-grid{
    position:relative;

    z-index:2;

    display:grid;

    grid-template-columns:
        1.15fr
        .9fr
        .9fr
        1.1fr;

    gap:75px;
}


/* ==========================================================
   COLUMN HEADINGS
========================================================== */

.zpf-column h3{
    position:relative;

    margin:0 0 25px;

    padding-bottom:12px;

    color:var(--zpf-white) !important;

    font-family:
        'Manrope',
        'Inter',
        'Segoe UI',
        Arial,
        sans-serif;

    font-size:19px;

    line-height:1.3;

    font-weight:800;
}


.zpf-column h3::after{
    content:"";

    position:absolute;

    left:0;
    bottom:0;

    width:36px;
    height:3px;

    border-radius:100px;

    background:
        linear-gradient(
            90deg,
            var(--zpf-gold),
            var(--zpf-gold-light)
        );
}


.zpf-column > p{
    max-width:330px;

    margin:0;

    color:var(--zpf-muted) !important;

    font-size:14px;

    line-height:1.85;

    font-weight:500;
}


/* ==========================================================
   FOOTER LINKS
========================================================== */

.zpf-column > a{
    position:relative;

    width:max-content;

    max-width:100%;

    margin-bottom:14px;

    display:block;

    color:var(--zpf-muted-light) !important;

    text-decoration:none;

    font-size:14px;

    line-height:1.5;

    font-weight:600;

    transition:
        color .2s ease,
        transform .2s ease;
}


.zpf-column > a:hover{
    color:var(--zpf-gold-light) !important;

    transform:translateX(5px);
}


/* ==========================================================
   SOCIAL
========================================================== */

.zpf-social{
    margin-top:28px;

    display:flex;

    align-items:center;

    flex-wrap:wrap;

    gap:10px;
}


.zpf-social a{
    width:42px;
    height:42px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:
        1px solid
        rgba(255,255,255,.24);

    border-radius:8px;

    background:
        rgba(255,255,255,.03);

    color:var(--zpf-white) !important;

    text-decoration:none;

    font-size:15px;

    transition:
        color .2s ease,
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}


.zpf-social a:hover{
    border-color:var(--zpf-gold);

    background:
        linear-gradient(
            135deg,
            var(--zpf-navy),
            var(--zpf-blue)
        );

    color:var(--zpf-gold-light) !important;

    transform:translateY(-3px);
}


/* ==========================================================
   INQUIRY
========================================================== */

.zpf-inquiry > p{
    max-width:380px;

    margin-bottom:24px;
}


/* ==========================================================
   EMAIL FORM
========================================================== */

.zpf-email-form{
    width:100%;

    max-width:400px;

    min-height:60px;

    padding:5px;

    display:flex;

    align-items:center;

    overflow:hidden;

    border:
        1px solid
        rgba(255,255,255,.14);

    border-radius:10px;

    background:var(--zpf-white);

    box-shadow:
        0 8px 25px
        rgba(2,43,77,.16);
}


.zpf-email-form:focus-within{
    border-color:var(--zpf-gold);

    box-shadow:
        0 0 0 3px
        rgba(245,160,0,.12),
        0 8px 25px
        rgba(2,43,77,.16);
}


.zpf-email-form input{
    min-width:0;

    flex:1;

    height:50px;

    padding:0 15px;

    border:0 !important;

    outline:0 !important;

    background:var(--zpf-white);

    color:var(--zpf-dark);

    font-family:inherit;

    font-size:13px;

    font-weight:600;

    line-height:1.4;

    box-shadow:none !important;
}


.zpf-email-form input::placeholder{
    color:#687D8D;

    opacity:1;

    font-weight:500;
}


.zpf-email-form button{
    width:52px;
    height:50px;

    flex:none;

    display:flex;

    align-items:center;
    justify-content:center;

    border:0;

    border-radius:8px;

    background:
        linear-gradient(
            135deg,
            var(--zpf-gold),
            var(--zpf-gold-light)
        ) !important;

    color:var(--zpf-dark) !important;

    cursor:pointer;

    font-size:16px;

    box-shadow:
        0 5px 14px
        rgba(245,160,0,.20);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}


.zpf-email-form button:hover{
    transform:translateX(2px);

    box-shadow:
        0 7px 18px
        rgba(245,160,0,.28);
}


/* ==========================================================
   DIRECT CONTACT
========================================================== */

.zpf-direct{
    margin-top:16px;

    display:flex;

    align-items:center;

    gap:8px;

    color:var(--zpf-muted);

    font-size:12px;

    line-height:1.5;

    font-weight:500;
}


.zpf-direct i{
    color:var(--zpf-gold);
}


/* ==========================================================
   BOTTOM BAR
========================================================== */

.zpf-bottom{
    min-height:78px;

    display:flex;

    align-items:center;

    background:
        linear-gradient(
            100deg,
            var(--zpf-navy) 0%,
            var(--zpf-blue) 58%,
            var(--zpf-blue-light) 100%
        );

    border-top:
        1px solid
        rgba(255,255,255,.10);
}


.zpf-bottom-inner{
    min-height:78px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:30px;

    color:var(--zpf-white);

    font-size:13px;

    line-height:1.5;

    font-weight:500;
}


.zpf-bottom-inner strong{
    color:var(--zpf-white);

    font-weight:800;
}


.zpf-bottom-links{
    display:flex;

    align-items:center;

    gap:25px;
}


.zpf-bottom-links span,
.zpf-bottom-links a{
    color:var(--zpf-white) !important;

    text-decoration:none;

    font-size:13px;

    transition:
        color .2s ease;
}


.zpf-bottom-links a:hover{
    color:var(--zpf-gold-light) !important;
}


/* ==========================================================
   SCROLL TOP
========================================================== */

.zpf-scroll-top{
    position:absolute;

    right:50px;
    bottom:44px;

    width:62px;
    height:62px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:
        4px solid
        var(--zpf-gold);

    border-radius:50%;

    background:
        linear-gradient(
            135deg,
            var(--zpf-navy),
            var(--zpf-blue)
        );

    color:var(--zpf-white);

    cursor:pointer;

    z-index:10;

    font-size:18px;

    box-shadow:
        0 10px 26px
        rgba(2,43,77,.28);

    transition:
        color .2s ease,
        background .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}


.zpf-scroll-top:hover{
    transform:translateY(-4px);

    background:
        linear-gradient(
            135deg,
            var(--zpf-gold),
            var(--zpf-gold-light)
        );

    color:var(--zpf-dark);

    box-shadow:
        0 12px 30px
        rgba(245,160,0,.25);
}


/* ==========================================================
   FOCUS / ACCESSIBILITY
========================================================== */

.zp-footer a:focus-visible,
.zp-footer button:focus-visible,
.zp-footer input:focus-visible{
    outline:
        3px solid
        rgba(245,160,0,.35);

    outline-offset:3px;
}


/* ==========================================================
   TABLET
========================================================== */

@media(max-width:1100px){

    .zpf-top-grid{
        grid-template-columns:
            1fr
            1fr;
    }


    .zpf-main-grid{
        grid-template-columns:
            1fr
            1fr;

        gap:55px;
    }

}


/* ==========================================================
   MOBILE
========================================================== */

@media(max-width:650px){

    .zpf-container{
        width:calc(100% - 30px);
    }


    .zpf-top{
        padding:35px 0;
    }


    .zpf-top-grid{
        grid-template-columns:1fr;

        gap:25px;
    }


    .zpf-brand img{
        width:220px;

        height:76px;
    }


    .zpf-contact-item{
        gap:13px;
    }


    .zpf-contact-icon{
        width:48px;
        height:48px;

        font-size:17px;
    }


    .zpf-contact-item small{
        font-size:11px;
    }


    .zpf-contact-item strong{
        font-size:14px;
    }


    .zpf-main{
        padding:60px 0 70px;
    }


    .zpf-main-grid{
        grid-template-columns:1fr;

        gap:45px;
    }


    .zpf-column h3{
        margin-bottom:20px;

        font-size:18px;
    }


    .zpf-column > p{
        font-size:14px;

        line-height:1.8;
    }


    .zpf-column > a{
        font-size:14px;
    }


    .zpf-email-form{
        max-width:100%;
    }


    .zpf-bottom{
        padding:18px 0;
    }


    .zpf-bottom-inner{
        min-height:0;

        flex-direction:column;

        align-items:flex-start;

        gap:12px;

        font-size:12px;
    }


    .zpf-bottom-links{
        gap:15px;

        flex-wrap:wrap;
    }


    .zpf-bottom-links span,
    .zpf-bottom-links a{
        font-size:12px;
    }


    .zpf-scroll-top{
        right:18px;
        bottom:70px;

        width:52px;
        height:52px;

        border-width:3px;

        font-size:16px;
    }

}


/* ==========================================================
   EXTRA SMALL MOBILE
========================================================== */

@media(max-width:380px){

    .zpf-container{
        width:calc(100% - 22px);
    }


    .zpf-brand img{
        width:195px;

        height:70px;
    }


    .zpf-contact-item strong{
        font-size:13px;
    }


    .zpf-main{
        padding:
            52px
            0
            62px;
    }


    .zpf-main-grid{
        gap:38px;
    }


    .zpf-bottom-links{
        gap:10px 14px;
    }

}


/* ==========================================================
   FINAL ZANZI STROLL BRAND SAFETY
========================================================== */

.zp-footer{
    accent-color:var(--zpf-gold);
}


.zp-footer ::selection{
    color:var(--zpf-white);

    background:var(--zpf-blue);
}


/* ==========================================================
   END ZANZI STROLL PREMIUM FOOTER
========================================================== */