.contact-hero{
    position:relative;
    min-height:100vh;
    padding:50px 7% 90px;
    display:flex;
    align-items:center;
    background:#0E1610;
    overflow:hidden;
}

.contact-hero-bg{
    position:absolute;
    inset:0;
    background:url("/img/fondo1.jpg") center/cover;
    transform:scale(1.12);
}

.contact-hero-overlay{
    position:absolute;
    inset:0;
    background:
    linear-gradient(
        90deg,
        rgba(10,15,12,.9) 0%,
        rgba(10,15,12,.62) 50%,
        rgba(10,15,12,.28) 100%
    );
}

.contact-hero-grid{
    position:relative;
    z-index:2;
    width:100%;
    display:grid;
    grid-template-columns:1.2fr .7fr;
    gap:90px;
    align-items:end;
}

.contact-hero-content{
    max-width:780px;
}

.hero-tag{
    display:inline-block;
    margin-bottom:28px;
    font-size:.8rem;
    letter-spacing:3px;
    text-transform:uppercase;
    color:#5BA318;
}

.contact-hero h1{
    font-size:clamp(4rem,8vw,7rem);
    line-height:.92;
    color:#fff;
    margin-bottom:30px;
}

.contact-hero p{
    max-width:650px;
    font-size:1.08rem;
    line-height:1.9;
    color:rgba(255,255,255,.78);
    margin-bottom:42px;
}

.contact-hero-actions{
    display:flex;
    gap:22px;
    flex-wrap:wrap;
}

.hero-btn{
    padding:18px 34px;
    background:#5BA318;
    color:#fff;
    text-decoration:none;
    font-weight:600;
    letter-spacing:1px;
    transition:.4s;
}

.hero-btn:hover{
    transform:translateY(-4px);
    background:#477e13;
}

.hero-link{
    display:flex;
    align-items:center;
    color:#fff;
    text-decoration:none;
    font-weight:600;
    letter-spacing:1px;
}

.hero-link::after{
    content:"↗";
    margin-left:10px;
    transition:.4s;
}

.hero-link:hover::after{
    transform:translate(5px,-5px);
}

.contact-hero-side{
    border-top:1px solid rgba(255,255,255,.14);
}

.contact-info-block{
    padding:28px 0;
    border-bottom:1px solid rgba(255,255,255,.14);
}

.contact-info-block span{
    display:block;
    margin-bottom:10px;
    color:#5BA318;
    font-size:.8rem;
    letter-spacing:2px;
    text-transform:uppercase;
}

.contact-info-block a,
.contact-info-block strong{
    display:block;
    color:#fff;
    text-decoration:none;
    font-size:1.15rem;
    line-height:1.7;
    font-weight:500;
}

.contact-hero-bottom{
    position:absolute;
    left:7%;
    right:7%;
    bottom:35px;
    z-index:2;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
}

.contact-hero-bottom div{
    border-top:1px solid rgba(255,255,255,.14);
    padding-top:18px;
}

.contact-hero-bottom strong{
    display:block;
    color:#fff;
    font-size:1.1rem;
}

.contact-hero-bottom span{
    color:rgba(255,255,255,.6);
    font-size:.9rem;
}





























.estimate-section{
    padding:140px 7%;
    background:#F7F7F2;
    overflow:hidden;
}

.estimate-wrapper{
    display:grid;
    grid-template-columns:.85fr 1.4fr;
    gap:70px;
    align-items:start;
}

.estimate-sidebar{
    position:sticky;
    top:130px;
}

.estimate-sidebar h2{
    font-size:clamp(3rem,5vw,5rem);
    line-height:.95;
    margin:20px 0 25px;
    color:#111;
}

.estimate-sidebar p{
    color:#666;
    line-height:1.9;
    max-width:520px;
}

.sidebar-contact{
    margin-top:55px;
    border-top:1px solid rgba(0,0,0,.08);
}

.sidebar-contact div{
    padding:26px 0;
    border-bottom:1px solid rgba(0,0,0,.08);
}

.sidebar-contact span,
.estimate-steps strong,
.block-heading span{
    display:block;
    margin-bottom:10px;
    font-size:.8rem;
    letter-spacing:2px;
    text-transform:uppercase;
    color:#5BA318;
}

.sidebar-contact a,
.sidebar-contact strong{
    display:block;
    color:#111;
    text-decoration:none;
    font-size:1.05rem;
    line-height:1.7;
}

.estimate-steps{
    margin-top:45px;
    display:grid;
    gap:18px;
}

.estimate-steps div{
    display:grid;
    grid-template-columns:45px 1fr;
    gap:16px;
    align-items:center;
}

.estimate-steps span{
    color:#555;
}

.estimate-form{
    background:#fff;
    border:1px solid rgba(0,0,0,.08);
    padding:50px;
    box-shadow:0 30px 80px rgba(44,86,50,.08);
}

.form-progress{
    margin-bottom:45px;
}

.progress-label{
    display:block;
    margin-bottom:14px;
    font-size:.75rem;
    letter-spacing:2px;
    text-transform:uppercase;
    color:#5BA318;
}

.progress-bar{
    width:100%;
    height:3px;
    background:#E4E4DC;
    overflow:hidden;
}

.progress-fill{
    width:0%;
    height:100%;
    background:#5BA318;
    transition:.4s ease;
}

.form-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:24px;
}

.form-group.full{
    grid-column:span 2;
}

.form-group label{
    display:block;
    margin-bottom:10px;
    font-size:.8rem;
    letter-spacing:1px;
    text-transform:uppercase;
    color:#333;
    font-weight:600;
}

.form-group input,
.form-group select,
.form-group textarea{
    width:100%;
    border:none;
    border-bottom:1px solid rgba(0,0,0,.16);
    padding:16px 0;
    background:transparent;
    color:#111;
    font-size:1rem;
    outline:none;
    transition:.35s;
}

.form-group textarea{
    min-height:150px;
    resize:vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
    border-bottom-color:#5BA318;
}

.form-block{
    margin:55px 0;
}

.block-heading{
    margin-bottom:25px;
}

.block-heading p{
    color:#666;
}

.service-options{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.service-options label{
    cursor:pointer;
}

.service-options input{
    display:none;
}

.service-options span{
    display:block;
    padding:15px 16px;
    background:#F7F7F2;
    border:1px solid rgba(0,0,0,.08);
    color:#222;
    font-size:.9rem;
    transition:.35s;
}

.service-options input:checked + span{
    background:#0E1610;
    color:#fff;
    border-color:#5BA318;
    transform:translateY(-3px);
}

.submit-estimate{
    width:100%;
    margin-top:40px;
    padding:20px;
    border:none;
    background:#5BA318;
    color:#fff;
    font-weight:700;
    letter-spacing:1px;
    cursor:pointer;
    transition:.4s;
}

.submit-estimate:hover{
    background:#477e13;
    transform:translateY(-4px);
}

.form-note{
    margin-top:18px;
    color:#777;
    font-size:.85rem;
    line-height:1.6;
}

























.next-steps{
    padding:140px 7%;
    background:#0E1610;
    color:#fff;
    overflow:hidden;
}

.next-heading{
    max-width:850px;
    margin-bottom:90px;
}

.next-heading h2{
    font-size:clamp(3rem,5vw,5.5rem);
    line-height:.95;
    margin:20px 0 25px;
}

.next-heading p{
    max-width:650px;
    color:rgba(255,255,255,.7);
    line-height:1.9;
}

.next-layout{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid rgba(255,255,255,.12);
}

.next-step{
    min-height:360px;
    padding:40px 30px;
    border-right:1px solid rgba(255,255,255,.12);
    position:relative;
    overflow:hidden;
    cursor:pointer;
    transition:.5s;
}

.next-step:last-child{
    border-right:none;
}

.next-step::before{
    content:"";
    position:absolute;
    inset:0;
    background:#5BA318;
    transform:translateY(100%);
    transition:.7s cubic-bezier(.22,1,.36,1);
    z-index:0;
}

.next-step span,
.next-step h3,
.next-step p{
    position:relative;
    z-index:2;
}

.next-step span{
    display:block;
    margin-bottom:80px;
    color:#5BA318;
    font-weight:800;
    letter-spacing:2px;
    transition:.4s;
}

.next-step h3{
    font-size:1.7rem;
    margin-bottom:18px;
}

.next-step p{
    color:rgba(255,255,255,.68);
    line-height:1.8;
    transition:.4s;
}

.next-step:hover::before,
.next-step.active::before{
    transform:translateY(0);
}

.next-step:hover span,
.next-step.active span{
    color:#fff;
}

.next-step:hover p,
.next-step.active p{
    color:rgba(255,255,255,.9);
}


























.form-alert{
    display:none;
    padding:18px 22px;
    margin-bottom:25px;
    font-weight:600;
    border-left:4px solid #5BA318;
    background:#F7F7F2;
    color:#111;
}

.form-alert.show{
    display:block;
}

.success-alert{
    border-left-color:#5BA318;
}

.error-alert{
    border-left-color:#b83232;
}































@media(max-width:1100px){
    .estimate-wrapper{
        grid-template-columns:1fr;
    }

    .estimate-sidebar{
        position:relative;
        top:auto;
    }
       .contact-hero{
        padding:150px 6% 90px;
    }

    .contact-hero-grid{
        grid-template-columns:1fr .85fr;
        gap:60px;
    }

    .contact-hero h1{
        font-size:clamp(3.8rem,7vw,6rem);
    }

    .contact-hero-bottom{
        gap:18px;
    }

}


@media(max-width:992px){
    .next-layout{
        grid-template-columns:repeat(2,1fr);
    }

    .next-step:nth-child(2){
        border-right:none;
    }

    .next-step{
        border-bottom:1px solid rgba(255,255,255,.12);
    }
      .contact-hero{
        min-height:auto;
        padding:150px 6% 90px;
        display:block;
    }

    .contact-hero-grid{
        grid-template-columns:1fr;
        gap:55px;
    }

    .contact-hero-content{
        max-width:760px;
    }

    .contact-hero-side{
        max-width:620px;
    }

    .contact-hero-bottom{
        position:relative;
        left:auto;
        right:auto;
        bottom:auto;
        margin-top:70px;
        grid-template-columns:repeat(2,1fr);
        gap:22px;
    }

    .contact-hero-bottom div{
        padding:22px;
        border:1px solid rgba(255,255,255,.12);
        background:rgba(255,255,255,.04);
        backdrop-filter:blur(14px);
    }
}

@media(max-width:768px){
     .next-steps{
        padding:100px 24px;
    }

    .next-heading h2{
        font-size:2.8rem;
    }

    .next-layout{
        grid-template-columns:1fr;
    }

    .next-step{
        min-height:280px;
        border-right:none;
    }

    .next-step span{
        margin-bottom:50px;
    }
     .estimate-section{
        padding:100px 24px;
    }

    .estimate-form{
        padding:30px 22px;
    }

    .form-grid{
        grid-template-columns:1fr;
    }

    .form-group.full{
        grid-column:span 1;
    }

    .service-options{
        grid-template-columns:1fr;
    }

    .estimate-sidebar h2{
        font-size:2.8rem;
    }
     .contact-hero{
        padding:135px 24px 75px;
    }

    .contact-hero h1{
        font-size:clamp(3rem,13vw,4.2rem);
        line-height:.95;
        margin-bottom:24px;
    }

    .contact-hero p{
        font-size:1rem;
        line-height:1.75;
        margin-bottom:34px;
    }

    .contact-hero-actions{
        width:100%;
        display:grid;
        grid-template-columns:1fr;
        gap:14px;
    }

    .hero-btn,
    .hero-link{
        justify-content:center;
        text-align:center;
    }

    .hero-link{
        padding:17px 24px;
        border:1px solid rgba(255,255,255,.18);
        background:rgba(255,255,255,.04);
        backdrop-filter:blur(12px);
        display: none;
    }

    .contact-hero-side{
        width:100%;
    }

    .contact-info-block{
        padding:22px 0;
    }

    .contact-info-block a,
    .contact-info-block strong{
        font-size:1rem;
        word-break:break-word;
    }

    .contact-hero-bottom{
        grid-template-columns:1fr;
        gap:14px;
        margin-top:55px;
    }

    .contact-hero-bottom div{
        padding:20px;
    }

}

@media(max-width:480px){

    .contact-hero{
        padding:125px 20px 65px;
    }

    .hero-tag{
        font-size:.68rem;
        letter-spacing:2px;
    }

    .contact-hero h1{
        font-size:2.75rem;
    }

    .contact-hero p{
        font-size:.95rem;
    }

    .contact-info-block a,
    .contact-info-block strong{
        font-size:.95rem;
    }

    .contact-hero-bottom strong{
        font-size:1rem;
    }

    .contact-hero-bottom span{
        font-size:.82rem;
    }

}