/* =====================================================
   DIGITAL PRO — GLOBAL FOOTER
   Jeden globalny plik dla wszystkich podstron
   ===================================================== */

.site-footer{
    position:relative;
    overflow:hidden;
    margin-top:64px;
    color:#d8e2f1;
    background:
        radial-gradient(circle at 10% 0%,rgba(59,113,230,.13),transparent 30%),
        radial-gradient(circle at 92% 8%,rgba(0,153,255,.07),transparent 22%),
        linear-gradient(180deg,#08172f 0%,#061126 100%);
}

.site-footer::before{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(90deg,rgba(255,255,255,.013) 1px,transparent 1px),
        linear-gradient(rgba(255,255,255,.013) 1px,transparent 1px);
    background-size:48px 48px;
    content:"";
}

.footer-benefits,
.footer-main,
.footer-bottom{
    position:relative;
    z-index:1;
}

.footer-benefits{
    border-bottom:1px solid rgba(154,180,223,.16);
}

.footer-benefits__grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    padding:20px 0;
}

.footer-benefit{
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    align-items:center;
    gap:12px;
    min-width:0;
    padding:4px 20px;
    border-left:1px solid rgba(154,180,223,.16);
}

.footer-benefit:first-child{
    padding-left:0;
    border-left:0;
}

.footer-benefit:last-child{
    padding-right:0;
}

.footer-benefit__icon{
    display:grid;
    width:40px;
    height:40px;
    place-items:center;
    border:1px solid rgba(79,140,255,.42);
    border-radius:12px;
    color:#6598ff;
    background:rgba(52,103,212,.08);
}

.footer-benefit__icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.footer-benefit strong{
    display:block;
    margin-bottom:2px;
    color:#fff;
    font-size:11px;
    line-height:1.3;
    letter-spacing:.055em;
    text-transform:uppercase;
}

.footer-benefit p{
    margin:0;
    color:#9eabc0;
    font-size:10.5px;
    line-height:1.45;
}

.footer-main{
    display:grid;
    grid-template-columns:1.2fr .78fr .78fr 1fr 1.12fr;
    gap:30px;
    padding:40px 0 34px;
}

.footer-brand{
    min-width:0;
}

.site-footer .brand{
    display:inline-flex;
    align-items:center;
    gap:11px;
    color:#fff;
    text-decoration:none;
}

.site-footer .brand-mark{
    display:grid;
    width:46px;
    height:46px;
    place-items:center;
    border-radius:13px;
    color:#fff;
    background:linear-gradient(145deg,#4b8cff,#2864e9);
    box-shadow:0 10px 24px rgba(40,100,233,.23);
}

.site-footer .brand-text strong{
    display:block;
    color:#fff;
    font-size:16px;
    line-height:1.1;
    letter-spacing:.025em;
    text-transform:uppercase;
}

.site-footer .brand-text small{
    display:block;
    margin-top:3px;
    color:#72a0ff;
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.footer-brand__text{
    max-width:285px;
    margin:16px 0 0;
    color:#aeb9ca;
    font-size:12.5px;
    line-height:1.7;
}

.footer-social{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:17px;
}

.footer-social a{
    display:grid;
    width:34px;
    height:34px;
    place-items:center;
    border:1px solid rgba(122,157,218,.28);
    border-radius:50%;
    color:#d7e3f7;
    background:rgba(255,255,255,.025);
    text-decoration:none;
    transition:.18s ease;
}

.footer-social a:hover,
.footer-social a:focus-visible{
    transform:translateY(-2px);
    border-color:#4f8cff;
    color:#fff;
    background:rgba(79,140,255,.14);
    outline:none;
}

.footer-social a:focus-visible{
    box-shadow:0 0 0 3px rgba(79,140,255,.24);
}

.footer-social svg{
    width:15px;
    height:15px;
    fill:currentColor;
}

.footer-column h3{
    position:relative;
    margin:0 0 17px;
    padding-bottom:9px;
    color:#fff;
    font-size:12px;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.footer-column h3::after{
    position:absolute;
    bottom:0;
    left:0;
    width:25px;
    height:2px;
    border-radius:999px;
    background:#4f8cff;
    content:"";
}

.footer-links{
    display:grid;
    gap:9px;
}

.footer-links a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    width:max-content;
    max-width:100%;
    color:#b6c1d3;
    font-size:12.5px;
    line-height:1.4;
    text-decoration:none;
    transition:.18s ease;
}

.footer-links a::before{
    color:#4f8cff;
    content:"›";
    font-size:16px;
}

.footer-links a:hover,
.footer-links a:focus-visible{
    transform:translateX(3px);
    color:#fff;
    outline:none;
}

.footer-contact{
    display:grid;
    gap:10px;
}

.footer-contact__lead{
    margin:0 0 3px;
    color:#aeb9ca;
    font-size:12.5px;
    line-height:1.55;
}

.footer-contact__item{
    display:grid;
    grid-template-columns:19px minmax(0,1fr);
    gap:8px;
    align-items:start;
    color:#b6c1d3;
    font-size:12.5px;
    line-height:1.45;
}

.footer-contact__item svg{
    width:16px;
    height:16px;
    margin-top:1px;
    fill:none;
    stroke:#4f8cff;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.footer-contact__item a{
    color:inherit;
    text-decoration:none;
}

.footer-contact__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:42px;
    margin-top:7px;
    padding:0 16px;
    border:1px solid #4f8cff;
    border-radius:9px;
    color:#fff;
    background:linear-gradient(145deg,#3f7df4,#245fd6);
    box-shadow:0 10px 22px rgba(36,95,214,.18);
    font-size:12px;
    font-weight:850;
    letter-spacing:.05em;
    text-decoration:none;
    text-transform:uppercase;
    transition:.18s ease;
}

.footer-contact__button:hover,
.footer-contact__button:focus-visible{
    transform:translateY(-2px);
    background:#1f57cd;
    outline:none;
}

.footer-newsletter p{
    margin:0 0 13px;
    color:#aeb9ca;
    font-size:12.5px;
    line-height:1.6;
}

.footer-newsletter__form{
    display:grid;
    gap:9px;
}

.footer-newsletter__field{
    display:flex;
    overflow:hidden;
    border:1px solid rgba(122,157,218,.32);
    border-radius:9px;
    background:rgba(255,255,255,.025);
}

.footer-newsletter__field input{
    min-width:0;
    flex:1;
    height:42px;
    padding:0 12px;
    border:0;
    color:#fff;
    background:transparent;
    font:inherit;
    outline:none;
}

.footer-newsletter__field input::placeholder{
    color:#a8b5c8;
    opacity:1;
}

.footer-newsletter__field button{
    display:grid;
    width:44px;
    flex:0 0 44px;
    place-items:center;
    border:0;
    color:#fff;
    background:linear-gradient(145deg,#4b8cff,#2864e9);
    cursor:pointer;
}

.footer-newsletter__field:focus-within{
    border-color:#4f8cff;
    box-shadow:0 0 0 3px rgba(79,140,255,.18);
}

.footer-newsletter__consent{
    display:grid;
    grid-template-columns:16px minmax(0,1fr);
    gap:8px;
    align-items:start;
    color:#8d9bb1;
    font-size:10.5px;
    line-height:1.45;
}

.footer-newsletter__consent input{
    margin-top:2px;
}

.footer-newsletter__consent a{
    color:#82aaff;
}

.footer-newsletter__status{
    min-height:18px;
    color:#bce7c7;
    font-size:10.5px;
    line-height:1.45;
}

.footer-newsletter__honeypot{
    position:absolute !important;
    left:-9999px !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
}

.footer-bottom{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:18px;
    padding:17px 0 19px;
    border-top:1px solid rgba(159,184,226,.16);
    color:#8f9bb0;
    font-size:10.5px;
}

.footer-bottom__links{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
}

.footer-bottom__links a{
    position:relative;
    padding:0 12px;
    color:#aab5c7;
    text-decoration:none;
}

.footer-bottom__links a + a::before{
    position:absolute;
    left:0;
    color:#526078;
    content:"|";
}

.footer-author{
    justify-self:end;
    text-align:right;
}

.footer-author a{
    color:#4f8cff;
    text-decoration:none;
}

@media (max-width:1180px){
    .footer-main{
        grid-template-columns:1.2fr 1fr 1fr;
    }

    .footer-newsletter{
        grid-column:2 / -1;
    }
}

@media (max-width:980px){
    .footer-benefits__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .footer-benefit:nth-child(3){
        border-left:0;
    }

    .footer-main{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .footer-brand,
    .footer-newsletter{
        grid-column:1 / -1;
    }

    .footer-bottom{
        grid-template-columns:1fr;
        text-align:center;
    }

    .footer-author{
        justify-self:center;
        text-align:center;
    }
}

@media (max-width:620px){
    .footer-benefits__grid,
    .footer-main{
        grid-template-columns:1fr;
    }

    .footer-benefit,
    .footer-benefit:first-child,
    .footer-benefit:last-child,
    .footer-benefit:nth-child(3){
        padding:13px 0;
        border-top:1px solid rgba(159,184,226,.14);
        border-left:0;
    }

    .footer-benefit:first-child{
        border-top:0;
    }

    .footer-main{
        gap:28px;
        padding:34px 0 28px;
    }

    .footer-brand,
    .footer-newsletter{
        grid-column:auto;
    }

    .footer-bottom__links{
        gap:8px 14px;
    }

    .footer-bottom__links a{
        padding:0;
    }

    .footer-bottom__links a + a::before{
        display:none;
    }
}

@media (prefers-reduced-motion:reduce){
    .site-footer *,
    .site-footer *::before,
    .site-footer *::after{
        transition:none !important;
        animation:none !important;
    }
}

@media print{
    .footer-benefits,
    .footer-newsletter,
    .footer-social{
        display:none !important;
    }
}

.footer-bottom__links button{
    padding:0 12px;
    border:0;
    color:#aab5c7;
    background:transparent;
    font:inherit;
    cursor:pointer;
}
.footer-bottom__links button:hover,
.footer-bottom__links button:focus-visible{
    color:#fff;
    outline:none;
}

.footer-newsletter__field > label.visually-hidden{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    min-width:1px !important;
    max-width:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    clip-path:inset(50%) !important;
    white-space:nowrap !important;
    border:0 !important;
    opacity:0 !important;
    pointer-events:none !important;
}