@font-face {
  font-family: 'Vodafone';
  src: url('../fonts/Vodafone_Rg.ttf') format('truetype');
  font-weight: 400;
}

@font-face {
  font-family: 'Vodafone';
  src: url('../fonts/Vodafone_Md.ttf') format('truetype');
  font-weight: 500;
}

@font-face {
  font-family: 'Vodafone';
  src: url('../fonts/Vodafone_Bd.ttf') format('truetype');
  font-weight: 700;
}

body{
    margin: 0;
    font-family: 'Vodafone', sans-serif;
}

body.no-scroll{
    overflow: hidden;
}

.container{
    max-width: 1440px;
}

button{
    cursor: pointer;
    font-family: 'Vodafone', sans-serif;
}

header{
    display: flex;
    width: 100%;
    justify-content: space-between;
    background: white;
    min-height: 85px;
    align-items: center;
}

header button{
    display: flex;
    gap: 4px;
    border-radius: 4px;
    background: #008A00;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 0.525px;
    color: white;
    border: none;
    align-items: center;
    padding: 9px 0;
    max-width: 216px;
    width: 100%;
    justify-content: center;
}

.vodafone-logo{
    padding-left: 120px;
}

.header-btn{
    margin-right: 130px;
}

.cards-footer{
    background: #F2F2F2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 72px;
    padding: 64px 0;
}

.cards-foot-uptxt{
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: center;
    align-items: center;
}

.cards-foot-uptxt span{
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    color: #E60001;
}

.cards-foot-uptxt p{
    margin: 0;
    font-size: 36px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 0.525px;
    color: #222;
    text-align: center;
}

.cards-ctn{
    display: flex;
    gap: 1rem;
    max-width: 1200px;
    width: 100%;
}

.cards-ctn-foot{
    display: flex;
    gap: 30px;
    max-width: 1134px;
    width: 100%;
}

.cards-ctn-foot .card-foot{
    width: 33.33%;
    padding: 1.5rem 1rem;
    border-radius: 8px;
    box-shadow: 0 4px 11px 0 rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    min-height: 292px;
    justify-content: space-between;
    background: white;
    position: relative;
}

.cards-ctn .card-foot{
    width: 25%;
    padding: 1rem;
    border-radius: 8px;
    box-shadow: 0 4px 11px 0 rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    min-height: 332px;
    justify-content: space-between;
    background: white;
    position: relative;
}

.card-txt-ctn{
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.card-price{
    display: flex;
    gap: 0.5rem;
    font-size: 62px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    color: #222;
    align-items: end;
}

.card-price span{
    font-size: 18px;
    position: relative;
    top: -10px;
}

.card-bullets{
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 26px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    color: #222;
}

.card-bullets span{
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.card-bullets p{
    margin: 0;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    color: #222;
}

.card-btn-ctn{
    display: flex;
    justify-content: space-between;
}

.card-btn-left{
    border-radius: 4px;
    border: 2px solid #222;
    padding: 14px 0;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.525px;
    color: #222;
    background: white;
    min-width: 147px;
}

.card-btn-right{
    border-radius: 4px;
    background: #E60001;
    padding: 14px 0;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.525px;
    color: white;
    border: none;
    min-width: 147px;
}

.card-foot-oferta{
    border-radius: 8px 8px 0 0;
    background: #01697C;
    width: 100%;
    padding: 10px 30px;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 120%;
    color: white;
    text-align: center;
    position: absolute;
    left: 0;
    width: -webkit-fill-available;
    top: -39px;
}

.iconos-footer{
    padding: 64px 0;
    background: #F2F2F2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.iconos-ctn{
    display: flex;
    max-width: 500px;
    width: 100%;
    justify-content: space-between;
}

.iconos-ctn div{
    display: flex;
    flex-direction: column;
    gap: 28px;
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 34px; /* 141.667% */
    letter-spacing: 0.525px;
    color: #222;
    width: min-content;
    text-align: center;
    align-items: center;
}

.iconos-ctn div img{
    max-height: 52px;
    max-width: 66px;
}

.servicios{
    display: flex;
    width: 100%;
    min-height: 575px;
}

.servicios-img{
    width: 60%;
    background-image: url(../imgs/main-img-servicios-vf.jpg);
    background-size: cover;
}

.servicios-txt{
    width: 40%;
    background: #E60001;
    padding: 0 70px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    justify-content: center;
}

.servicios-txt h4{
    font-size: 39.686px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 0.579px;
    color: white;
    margin: 0;
}

.servicios-bullets{
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.servicios-ctn{
    display: flex;
    gap: 1rem;
    align-items: center;
}

.servicios-ctn img{
    max-height: 63px;
}

.servicios-ctn div{
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 27px; /* 112.5% */
    letter-spacing: 0.525px;
    color: white;
    display: flex;
    flex-direction: column;
}

.servicios-ctn div span{
    font-size: 17px;
    font-weight: 400;
}

.cards-ctn-fibra{
    max-width: 608px;
    gap: 32px;
    justify-content: center;
}

.cards-ctn-fibra .card-foot{
    width: 50%;
    min-height: 332px;
    padding: 1rem;
}

.cards-fibra{
    gap: 32px;
}

.banner{
    min-height: 520px;
    background: linear-gradient(
      115deg,
      rgba(0, 0, 0, 0.60) 29.08%,
      rgba(0, 0, 0, 0.00) 79.31%
    ), url(../imgs/main-banner-bg.jpg);
    background-size: cover;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 53px;
    padding-left: 160px;
}

.banner h4{
    margin: 0;
    font-size: 39.686px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 0.579px;
    color: white;
    max-width: 500px;
}

.banner div{
    display: flex;
    gap: 13px;
}

.banner div img{
    max-height: 75px;
}

.card-foot-vodafone{
    background: linear-gradient(221deg, #E60000 16.83%, #900 72.97%) !important;
}

.card-icons{
    display: flex;
    gap: 0.5rem;
}

.card-icons img{
    max-height: 51px;
}

.card-foot-vodafone .card-price{
    justify-content: space-between;
    align-items: center;
}

.card-price-vodafone{
    display: flex;
    gap: 0.5rem;
    align-items: end;
    color: white;
}

.card-foot-vodafone .card-bullets p{
    font-size: 11px;
    color: white;
    font-weight: 500;
}

.card-foot-vodafone .card-bullets{
    color: white;
}

.card-foot-vodafone .card-bullets span{
    color: white;
}

.card-foot-vodafone .card-btn-left{
    background: none;
    color: white;
    border: 2px solid white;
}

.card-foot-vodafone .card-btn-right{
    background: white;
    color: black;
}

.main{
    width: 100%;
    display: flex;
    min-height: 540px;
}

.main .left{
    background: #D9000C;
    width: 40%;
    display: flex;
    align-items: center;
    justify-content: end;
    position: relative;
}

.main .right{
    background-image: url(../imgs/main-hero-img.jpg);
    background-size: cover;
    width: 60%;
}

.main-oferta{
    background: white;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    position: absolute;   
    max-width: 500px;
    right: -10%;
    padding: 30px;
    gap: 1rem;
}

.badge-main-oferta{
    background: #01697C;
    color: white;
    position: absolute;
    border-radius: 30px;
    padding: 6.234px 18.701px;
    top: -4%;
    right: -4%;
}

.motorola-img{
    max-width: 273px;
    position: absolute;
    bottom: -10%;
    right: -12%;
}

.main-oferta h1{
    font-size: 43.643px;
    font-style: normal;
    font-weight: 700;
    line-height: 120%;
    color: #222;
    margin: 0;
}

.main-icons{
    display: flex;
    gap: 12px;
}

.main-icons img{
    max-height: 50px;
}

.main-price{
    font-size: 57px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    color: #262626;
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.main-price div{
    display: flex;
    flex-direction: column;
    font-weight: 500;
    font-size: 25px;
    justify-content: center;
}

.main-price div span{
    font-size: 21px;
}

.main-btn{
    font-size: 19.556px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 0.642px;
    color: white;
    border-radius: 4.889px;
    background: #008A00;
    border: none;
    max-width: 183px;
    padding: 12px 0;
    margin-top: 0.5rem;
}

.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(21, 19, 19, 0.72);
    align-items: center;
    justify-content: center;
}

.modal-content {
    background-color: white;
    padding: 31px;
    border-radius: 8px;
    width: 100%;
    max-width: 300px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    padding-top: 61px;
}

.modal-header {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    gap: 5px;
}

.modal-header h2 {
    margin: 0;
    font-size: 26px;
    font-weight: 700;
    line-height: 120%; /* 25.2px */
    letter-spacing: 0.414px;
    text-align: center;
    color: #000;
}

.modal-header span{
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 120%; /* 16.8px */
    letter-spacing: 0.414px;
    color: #E60001;
}

.close-button {
    font-size: 24px;
    background: none;
    border: none;
    cursor: pointer;
    color: #555;
}

.close-button:hover {
    color: #000;
}

.input-group {
    margin: 0 auto;
    margin-bottom: 12px;
}

.input-group label {
    display: block;
    font-size: 14px;
    margin-bottom: 5px;
    color: #333;
}

.input-group input {
    width: 100%;
    border: 1px solid #F2F2F2;
    border-radius: 4px;
    font-size: 14px;
    box-sizing: border-box;
    padding: 8px 12px 8px 16px;
    min-height: 48px;
}

.input-group input::placeholder{
    color: #727272;
    font-weight: 500;
}

.input-group input:focus {
    outline: none;
    border-color: #F2F2F2;
}

.button-group {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 0 auto;
    margin-top: 34px;
}

.save-button,
.cancel-button {
    padding: 12px 22px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px; /* 137.5% */
    letter-spacing: 0.75px;
    color: white;
    width: 100%;
    min-height: 54px;
}

.save-button {
    background-color: #E60001;
    color: white;
}

.cancel-button {
    background-color: #ccc;
    color: #333;
}

.cancel-button:hover {
    background-color: #bbb;
}

#contactModal .modal-content{
    position: relative;
}

.badge-modal{
    border-radius: 8px 8px 0 0;
    background: #EF0000;
    font-size: 14.919px;
    font-style: normal;
    font-weight: 500;
    line-height: 120%;
    color: white;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 36px;
    padding: 0 1rem;
}

.badge-modal div{
    display: flex;
    gap: 6px;
    align-items: center;
}

#contactModal p{
    margin: 0;
    font-size: 11px;
    font-style: normal;
    font-weight: 500;
    line-height: 14px; /* 140% */
    letter-spacing: 0.525px;
    color:#7A89A1;
    margin-top: 13px;
}

.logo-img{
    max-height: 25px;
}

.logo-txt{
    max-width: 76px;
}

.cards-ctn-fibra .card-btn-left{
    min-width: 107px;
}

.cards-ctn-fibra .card-btn-right{
    min-width: 126px;
}

.cards-ctn .card-btn-left{
    min-width: 107px;
}

.cards-ctn .card-btn-right{
    min-width: 126px;
}

.cards-ctn .card-btn-ctn{
    gap: 1rem;
    justify-content: center;
}

.cards-ctn .card-price{
    font-size: 57px;
}

.cards-ctn .card-bullets{
    font-size: 23px;
}

.cards-ctn .card-bullets span{
    font-size: 14px;
}

footer{
    background: #060909;
    display: flex;
    justify-content: space-between;
    min-height: 56px;
    align-items: center;
    padding:0 160px;
}

.footer-links{
    display: flex;
    gap: 90px;
}

.footer-links a{
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 0.525px;
    color: white;
    text-decoration: none;
}

.banner-mob{
    display: none;
}

.link-phone{
    max-width: 216px;
    width: 100%;
    text-decoration: none;
    padding-right: 120px;
}

@media (max-width: 767px) {
    .link-phone{
        max-width: 160px;
        padding-right: 0;
    }

    .header-btn{
        margin-right: 0;
        max-width: 160px;
    }

    .badge-main-oferta{
        right: 0%;
    }

    .vodafone-logo{
        padding-left: 0;
    }

    header button{
        font-size: 12px;
    }

    header button svg{
        max-height: 18px;
    }

    header{
        min-height: 57px;
        padding: 0 1rem;
        width: -webkit-fill-available;
    }

    .main{
        flex-direction: column-reverse;
        min-height: auto;
    }

    .main .left{
        min-height: 210px;
        width: 100%;
        justify-content: center;
    }

    .main .right{
        min-height: 210px;
        width: 100%;
    }

    .main-oferta{
        position: absolute;
        padding: 20px 25px;
        right: auto;
        left: auto;
        top: -50%;
        gap: 9px;
    }

    .main-oferta h1{
        font-size: 31px;
    }

    .motorola-img{
        max-width: 163px;
        bottom: -5%;
        right: -5%;
    }

    .main-icons img{
        max-height: 36px;
    }

    .main-price{
        font-size: 41px;
        margin-top: 6px;
    }

    .main-price div{
        font-size: 18px;
    }

    .main-price div span{
        font-size: 15px;
    }

    .main-btn{
        margin-top: 6px;
        font-size: 17.777px;
        max-width: 166px;
    }

    .cards-ctn{
        flex-direction: column;
        align-items: center;
        max-width: 288px;
    }

    .cards-ctn .card-foot{
        width: -webkit-fill-available;
        gap: 60px;
    }

    .cards-footer{
        gap: 32px;
    }

    .cards-foot-uptxt{
        gap:0;
    }

    .card-foot-vodafone{
        margin-top: 40px;
    }

    .cards-foot-uptxt p{
        font-size: 27px;
        letter-spacing: 0.37px;
        max-width: 70%;
    }

    .cards-foot-uptxt span{
        font-size: 17px;
    }

    .banner{
        min-height: auto;
        padding: 2rem 1rem;
        gap: 8px;
        background-image: none;
        background-color: #222;
    }

    .banner-mob{
        width: 100%;
        background: linear-gradient(
        115deg,
        rgba(0, 0, 0, 0.60) 29.08%,
        rgba(0, 0, 0, 0.00) 79.31%
        ), url(../imgs/main-banner-bg.jpg);
        background-size: cover;
        min-height: 175px;
        background-position: center;
        display: block;
    }

    .card-btn-left{
        min-width: 107px;
    }

    .card-btn-right{
        min-width: 126px;
    }

    .card-foot1{
        margin-top: 40px;
    }

    .iconos-footer{
        padding-top: 0;
    }

    .banner h4{
        font-size: 28px;
    }

    .banner div{
        gap: 8px;
    }

    .banner div img{
        max-height: 52px;
    }

    .cards-ctn-fibra{
        flex-direction: column;
    }

    .servicios{
        flex-direction: column;
    }

    .cards-ctn-foot{
        flex-direction: column;
        max-width: 288px;
    }

    .cards-ctn-foot .card-foot{
        width: -webkit-fill-available;
        min-height: 316px;
    }

    .cards-ctn-fibra .card-foot{
        min-height: 332px;
    }

    .iconos-ctn{
        flex-direction: column;
        align-items: center;
        gap: 2rem;
    }

    .iconos-ctn div{
        gap: 1rem;
    }

    footer{
        padding: 1rem;
    }

    .footer-links{
        flex-direction: column;
        gap: 20px;
    }

    .servicios-img{
        width: 100%;
        min-height: 415px;
        background-position: right;
    }

    .servicios-txt{
        padding: 30px 16px 60px 16px;
        width: -webkit-fill-available;
    }

    .servicios-ctn img{
        max-height: 53px;
    }

    .servicios-bullets{
        gap: 1.5rem;
    }

    .cards-ctn .card-bullets{
        font-size: 32px;
    }

    .card-bullets{
        font-size: 32px;
    }

    .card-price{
        font-size: 57px;
    }

}