@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');
body {
    font-family: 'Lato', sans-serif;
    color: #333;
    background-color: #f8fbff;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Nunito', sans-serif;
}

.hero-section {
    padding: 50px 0;
}

.hero-banner-card {
    background-image: url('https://gabrica.online/puntos/v2/public/img/banner.jpg');
    background-size: cover;
    background-position: center right; 
    background-repeat: no-repeat;
    border-radius: 30px; 
    padding: 80px 60px; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}

.logo-hero {
    max-width: 65px; 
    height: auto;
}

.btn-custom-blue {
    background-color: #003a70;
    color: white;
    border-radius: 50px;
    padding: 12px 35px;
    font-weight: 700; 
    border: none;
    transition: background-color 0.3s ease;
    display: inline-block;
    text-decoration: none;
    font-size: 0.95rem;
}

.btn-custom-blue:hover {
    background-color: #002244;
    color: white;
}

.how-it-works-section {
    background-color: #E0D9FC;
    padding: 80px 0;
}

.step-card {
    background-color: #ffffff;
    border-radius: 15px;
    padding: 25px 20px;
    height: 100%;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start; 
}

.step-card p {
    font-size: 0.9rem;
    margin-bottom: 0;
    color: #4a4a4a;
    line-height: 1.4;
}


.icon-img {
    height: 70px;
    width: auto;
    margin-bottom: 18px;
}

.steps-list-section {
    padding: 80px 0;
}

.list-box {
    border: 1px solid #ced4da; 
    border-radius: 25px;
    padding: 40px 30px;
    height: 100%;
    background-color: #ffffff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02);
    display: flex;
    align-items: flex-start;
    gap: 25px; 
}


.list-box-icon {
    width: 110px;
    height: auto;
    flex-shrink: 0; 
}

.list-content {
    flex-grow: 1;
}

.number-badge {
    background-color: #d1efff; 
    color: #003a70;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 700;
    font-family: 'Nunito', sans-serif; 
    flex-shrink: 0;
    font-size: 0.95rem;
}

.regwithout button{border: unset; background: unset; outline: unset; text-decoration: underline; color: #003967; font-weight: bold;}

@media (max-width: 991.98px) {
    .hero-banner-card {
        padding: 60px 30px;
        background-position: 65% center; 
    }
}

@media (max-width: 767.98px) {
    .hero-section {
        padding: 30px 0;
    }

    .hero-banner-card {
        padding: 40px 20px;
        background: url(https://gabrica.online/puntos/v2/public/img/banner-mob.png);
        background-position: 70% center; 
        animation: 15s ease-in-out infinite viewerImg;
        transition: .2s;
        position: relative;
    }
    .hero-banner-card .row.align-items-center.text-center.text-lg-start{ position:relative; z-index: 5; }
    .hero-banner-card::after{content: ''; display: block; position: absolute; width: 92%; height: 54%; border-radius: 15px; filter: blur(15px); background: rgba(255, 255, 255, 0.52); top: 0; bottom: 0; right: 0; ; left: 0; margin: auto; z-index: 1;}

    .how-it-works-section, 
    .steps-list-section {
        padding: 50px 0;
    }

    .hero-section h1 {
        font-size: 2.3rem; 
    }
    
    .btn-custom-blue {
        width: 100%;
        text-align: center;
    }
    
    .list-box {
        flex-direction: column;
        align-items: center;
        padding: 30px 20px;
        gap: 15px;
    }


    .list-box-icon {
        margin-bottom: 10px;
        width: 90px;
    }

    .list-content h4 {
        text-align: center;
    }

    .step-card {
        align-items: center; 
        text-align: center;
    }
}



.col-white {
    color: #FFF;
}

.col-blue {
    color: #00BBFE;
}


.text-dark-blue {
    color: #131415;
}

.tex-modal-mensaj {
    color: #4a4a4a; 
    font-size: 0.95rem;
    font-family: "Lato", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 24px;
    letter-spacing: 0px;
}
.tex-modal-mensaj2 {
    color: #003967; 
    font-size: 1rem;
    font-family: "Lato", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: semi bold;
    line-height: 24px;
    letter-spacing: 0px;
}

.text-modal-title {
    color: #336ACC;
    font-size: 16px;
    font-family: "Lato", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: bold;
    line-height: 24px;
    letter-spacing: 0px;
}

.text-modal-tilde

.tx-copy {
    color: #001A2B !important;
}

.tx-promocol {
    margin-top: 3%;
    margin-left: 10%;
}

.title-brands {
    font-size: 14px;
}

.owl-init .item img {
    display: flex;
    width: 100%;
    height: 42px;
    object-fit: contain;
    object-position: center;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    align-items: center;
}

.btn-petcop {
    color: #003967;
    border-color: #003967;
    font-size: 16px
}

.alinear-derecha {
    text-align: left;
}

.alinear-izquierda {
    text-align: left;
    margin-left: -7%;
}

.img-fan {
    width: 80% !important;
    text-align: left !important;
    margin-left: -21px !important;
}

.bg-lavender {
    background-color: #C2B4FA;
    border-radius: 24px;
}



.btn-dark-blue {
    background-color: #003967;
    border: none;
    transition: transform 0.2s;
    margin-top: -3%;
}

.btn-dark-blue2 {
    background-color: #003967;
    border: none;
    transition: transform 0.2s;;
}

.btn-dark-blue:hover {
    transform: scale(1.05)!important;
    background-color: #001a33!important;
}

.btn-dark-blue2:hover {
    transform: scale(1.05)!important;
    background-color: #001a33!important;
}

.section-title-puntos {
    color: #002D57;
    font-size: 2.2rem;
}

.step-icon {
    width: 56px;
    height: 56px;
    object-fit: contain;
}

.puntos-icon-top {
    width: 60px;
}

.sello-puntos-badge {
    display: block;
    width: 115px;
    margin-top: -75px;
}

.tyc-text {
    font-size: 0.75rem;
    line-height: 1.2;
}

.video-container {
    border: 8px solid white;
    border-radius: 2rem;
}

.steps-list-puntos span {
    color: #002D57;
    font-size: 1.1rem;
}

.col-blue2 {
    color: #003967 !important;
}

/* Paleta de colores */
:root {
    --gabrica-sky: #72d1f4;
    --gabrica-navy: #002d57;
    --gabrica-blue-dark: #00bdf1;
}

.footer-gabrica {
    background-color: var(--gabrica-sky);
    font-family: 'Lato', sans-serif;
}

.text-navy {
    color: var(--gabrica-navy) !important;
}

/* Logo Superior Izquierdo (Pill Estilo React) */
.footer-main-logo {
    color: white;
    padding: 8px 30px;
    border-radius: 50px;
    display: inline-flex;
    align-items: center;
    font-weight: 800;
    font-size: 1.2rem;
}

.footer-main-logo img {
    width: 55%;
    display: block;
}

.slogan-text {
    font-size: 0.9rem;
    font-weight: 600;
}

.ms-n4-forced {
    margin-left: -4rem !important;
}

/* Iconos de Redes Sociales (Círculos) */
.social-circle {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: transform 0.2s;
}

.social-circle img {
    display: block;
    width: 100%;
    height: 100%;
}

.social-circle:hover {
    transform: scale(1.1);
}

/* Botones Navy Pill */
.btn-navy-pill {
    background-color: var(--gabrica-navy);
    color: white !important;
    border-radius: 50px;
    font-weight: 700;
    font-size: 0.85rem;
    padding: 10px 25px;
    border: none;
}

.btn-navy-pill:hover {
    background-color: #001f3f;
}

/* Enlaces y Texto */
.footer-links a {
    color: var(--gabrica-navy);
    text-decoration: none;
    font-size: 0.95rem;
    display: block;
    margin-bottom: 8px;
}

.footer-links a:hover {
    text-decoration: underline;
}

.contact-info li {
    font-size: 0.95rem;
    margin-bottom: 10px;
}

/* Marcas */
.brand-img1 {
    height: 60px !important;
    width: auto;
    object-fit: contain;
}

.brand-img {
    height: 39px;
    width: auto;
    object-fit: contain;
}

/* Barra inferior */
.copyright-bar {
    background-color: var(--gabrica-blue-dark);
}

.country-selector img {
    display: block;
    width: 32px;
    height: 32px;
}










/* Estilo personalizado para el éxito de carga */
.toast-success-custom {
    background-color: #008145 !important;
    /* Verde Gabrica */
    color: white !important;
    border: none;
    border-radius: 8px;
    min-width: 300px;
}

.toast-success-custom .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
    /* Hace la X blanca */
}

.toast-success-custom .bi-check-circle {
    font-size: 1.2rem;
}

/* Posicionamiento del Toast */
.toast-container {
    z-index: 2000 !important;
    /* Por encima de cualquier modal */
}

.toast-success-custom {
    background-color: #008145 !important;
    color: white !important;
    border-radius: 12px;
    border: none;
}

/* Ajuste para que el segundo modal se vea sobre el primero */
#confirmCancelModal {
    background: rgba(0, 0, 0, 0.5);
}




.alert-info-custom {
    background-color: #f0f7ff;
    border: 1px solid #cce3ff;
    color: #0056b3;
}

.border-dashed {
    border: 2px dashed #dee2e6;
    transition: all 0.3s ease;
}

.dropzone-area:hover,
.dropzone-area.dragover {
    border-color: #002D57;
    background-color: #f8f9fa;
}

.file-item {
    background: #f8f9fa;
    border: 1px solid #eee;
    padding: 10px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cursor-pointer {
    cursor: pointer;
}

/* Estilo para simular el diseño de la imagen del archivo cargado */
.file-icon-box {
    background: #e9ecef;
    padding: 8px;
    border-radius: 8px;
    margin-right: 12px;
}



.dragover-active {
    background-color: #f0f8ff !important;
    border: 2px dashed #002D57 !important;
    transform: scale(1.02);
}

#dropzone {
    transition: all 0.3s ease;
    cursor: pointer;
}

#dropzone.bg-light {
    transform: scale(1.02);
    border-style: solid !important;
}


.file-item {
    transition: all 0.2s ease;
}


.route-card {
    display: inline-block;
    padding: 20px 25px;
    background: white;
    border-radius: 18px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, .15);
    max-width: 100%;
    animation: fadeUp .8s ease;
}

.text-dark-blue2 {
    color: #003967 !important;
}


/* modal carga factura */
.modal-carga-factura1 {
    background-color: #F8FEFF; border: 1px solid #336ACC;
}

.modal-carga-factura2 {
    color: #54565A; font-size: 14px;
}

.modal-carga-factura3 {
    cursor: pointer; background-color: #F5F5F5; border: 2px dashed #BABCBF; border-radius: 20px;
}

.modal-carga-factura4 {
    color: #54565A; font-size: 14px; margin-bottom: 0;
}

.modal-carga-factura5 {
    color: #54565A;
}

/* modal cancel */

.modal-cancel1 {
    color: #003967; font-size: 16px;
}

.modal-cancel2 {
    color: #54565A;
}

.modal-cancel3 {
    color: #131415;
}


/* modal Confirma tu usuario */

.modal-confirma-usuario1 {
    border-radius: 20px;
}

.modal-confirma-usuario2 {
    color: #000; font-size: 40px;
}

.modal-confirma-usuario3 {
    color: #000; font-size: 20px; line-height: 1.3;
}

.modal-confirma-usuario4 {
    border-top: 1px solid #e0e0e0; opacity: 1;
}

.modal-confirma-usuario5 {
    font-size: 16px; color: #4a4a4a;
}

.modal-confirma-usuario6 {
    border-radius: 25px; width: 100%; height: 48px; border: 1px solid #54565A; font-size: 1rem; color: #6c757d;
}
.modal-confirma-usuario7 {
    border-radius: 30px; width: 100%; height: 48px; background-color: #e0e0e0; color: #8e8e8e; border: none;
}

/* Modal Confirmar usuario y codigo verificacion */

.modal-codigo-verificacion1 {
    border-radius: 20px;
}

.modal-codigo-verificacion2 {
    font-size: 2.2rem;
}

.modal-codigo-verificacion3 {
    font-size: 1.1rem;
}

.modal-codigo-verificacion4 {
    background-color: #F8FEFF; border: 1px solid #336ACC; border-radius: 15px;
}

.modal-codigo-verificacion5 {
    color: #336ACC; width: 100%;
}

.modal-codigo-verificacion6 {
    border-radius: 25px; width: 100%; height: 48px; letter-spacing: 5px;
}
.modal-codigo-verificacion7 {
    background-color: #8A8E93; width: 100%; height: 48px; cursor: not-allowed;
}

.modal-codigo-verificacion8 {
    color: #003967;
}

/* Modal error no se encuentra correo */

.modal-error-correo1 {
    border-radius: 20px;
}

.modal-error-correo2 {
    font-size: 2.2rem; color: #000;
}

.modal-error-correo3 {
    font-size: 1.1rem; color: #000; line-height: 1.2;
}

.modal-error-correo4 {
    border-top: 1px solid #dee2e6; opacity: 0.5;
}

.modal-error-correo5 {
    background-color: #F8FEFF; border: 1px solid #D01117; border-radius: 15px;
}

.modal-error-correo6 {
    color: #D01117; width: 100%;
}
.modal-error-correo7 {
    color: #D01117; font-size: 0.95rem;
}

.modal-error-correo8 {
    border-radius: 25px; width: 100%; height: 48px; border: 1.5px solid #D01117; color: #D01117; background-color: #fff;
}

.modal-error-correo9 {
    background-color: #003967; width: 100%; height: 48px; font-size: 16px;
}



/* Modal registro */

.modal-registro1 {
    border-radius: 20px;
}

.modal-registro2 {
    font-size: 2rem;
}

.modal-registro3 {
    border-radius: 20px;
}

.modal-registro4 {
    color: #003967;
}

.modal-registro5 {
   background-color: #e0e0e0; color: #8e8e8e; border-radius: 25px; border: none;
}

/* Modal regitro existo */

.modal-registro-exitoso1 {
   background-color: #008744; border-radius: 12px; min-width: 350px;
}

.modal-registro-exitoso2 {
   line-height: 1.4;
}

.form-control::placeholder{color: #a4a4a4!important;}


@-moz-keyframes viewerImg{0%,100%{-moz-background-position:left}50%{-moz-background-position:right}}
@-webkit-keyframes viewerImg{0%,100%{-webkit-background-position:left}50%{-webkit-background-position:right}}
@keyframes viewerImg{0%,100%{background-position:left}50%{background-position:right}}



/*********************** RESPONSIVE **************************/

@media (max-width: 768px) {

    .social-links-container .row>* {
        flex-shrink: 0;
        width: unset;
        max-width: 100%;
        padding-right: calc(var(--bs-gutter-x) * .5);
        padding-left: calc(var(--bs-gutter-x) * .5);
        margin-top: var(--bs-gutter-y);
    }

    .contenedorlogo {
        display: flex !important;
        flex-direction: column;
    }

    .tx-bontcol {
        text-align: left !important;
    }

    .footer-main-logo img {
        margin: auto;
    }

    .text-dark-blue2 {
        color: #003967 !important;
        font-size: 23px !important;
    }

    .steps-section .step-number,
    .whatsapp-num,
    .section-title-puntos,
    .steps-section h2,
    .display-6 {
        font-size: 20px;
    }

    .steps-card .step-txt {
        font-size: 18px;
    }

    .brands-grid .brand-img {
        padding: 0 20px;
    }

    .img-fan {
        width: 60% !important;
        text-align: none;
        margin-left: -5% !important;
    }

    .btn-petcop,
    .btn-gab {
        font-size: 14px;
        width: unset;
    }

    .puntos-icon-top {
        width: 50px;
    }

    .sello-puntos-badge {
        width: 94px;
        margin-top: -8%;
    }

    .steps-list-puntos ul li {
        margin-bottom: 0.6rem !important;
    }

    .coljuegos img:first-child {
        width: 100% !important;
    }

    .fs-5 {
        font-size: 18px !important
    }

    .hero-section h1 {
        font-size: 22px;
    }

    .brand2-img {
        margin-left: -5%;
    }

    .brand3-img {
        height: 21px !important;
    }

    .tx-promocol {
        margin-top: 3%;
        margin-left: 5%;
    }

    .tx-footer {
        text-align: left;
    }

    .country-selector {
        justify-content: center;
        width: 100%;
        border-top: none !important;
        padding-top: 0px !important;
        border-left: 1px solid #FFFFFF !important;
        margin-left: 23px !important;
        margin-bottom: 11px !important;
    }

    .brand-img1 {
        height: 60px !important;
    }
}

.owl-theme .owl-dots .owl-dot span {
    background: #C0F0FF !important;
    /* Gris claro */
}

.owl-theme .owl-dots .owl-dot.active span {
    background: #00BBFE !important;
    /* El azul oscuro que definimos */
}

@media only screen and (min-width: 768px) and (max-width: 1367px) {

    .steps-section .step-number,
    .whatsapp-num,
    .section-title-puntos,
    .steps-section h2,
    .display-6 {
        font-size: 24px;
    }

    .steps-card .step-txt {
        font-size: 18px;
    }

    .brands-grid .brand-img {
        padding: 0 20px;
    }

    .img-fan {
        width: 60% !important;
    }

    .btn-petcop,
    .btn-gab {
        font-size: 14px;
    }

    .puntos-icon-top {
        width: 50px;
    }

    .sello-puntos-badge {
        width: 94px;
    }

    .steps-list-puntos ul li {
        margin-bottom: 0.6rem !important;
    }

    .text-dark-blue {
        color: #131415;
    }

    .text-dark-blue2 {
        color: #003967 !important;
        font-size: 35px;
    }
}


/* ==========================================
   RESPONSIVE FOOTER GABRICA
   ========================================== */

/* Ajustes para Tablets y Móviles (Menos de 992px) */
@media (max-width: 991.98px) {
    .footer-gabrica {
        text-align: center;
        /* Centramos el texto general */
    }

    /* Logo y Slogan: Se apilan verticalmente */
    .footer-gabrica .row.align-items-center:first-child {
        flex-direction: column;
    }

    .footer-main-logo {
        margin-bottom: 15px;
    }


    .slogan-text {
        margin-left: 0 !important;
        display: block;
        margin-bottom: 20px;
    }

    /* Redes Sociales: Centradas y con espacio */
    .social-links-container {
        justify-content: center !important;
        margin-bottom: 15px;
        margin-left: auto;
        margin-top: auto;
        margin-right: auto !important;
    }

    .country-selector {
        justify-content: center;
        border-left: none;
        border-top: 1px solid #FFFFFF;
        padding-top: 15px;
        padding-left: 0 !important;
        width: 100%;
    }

    /* Botones: Se vuelven más anchos para facilitar el clic */
    .btn-navy-pill {
        width: 80%;
        margin-left: auto;
        margin-right: auto;
    }

    /* Nuestras Marcas: El título arriba y los logos centrados */
    .footer-gabrica .row.align-items-center:last-of-type {
        flex-direction: column;
    }

    .footer-gabrica .row.align-items-center:last-of-type .col-auto {
        margin-bottom: 20px;
        width: 100%;
    }

    .footer-gabrica .row.align-items-center:last-of-type .col.d-flex {
        justify-content: center !important;
        margin-left: 0 !important;
        gap: 1.5rem !important;
    }
}

/* Ajustes finos para Móviles Pequeños (Menos de 576px) */
@media (max-width: 575.98px) {
    .footer-main-logo {
        padding: 6px 20px;
        /* Logo un poco más pequeño */
        font-size: 1rem;
    }

    .btn-navy-pill {
        width: unset;
    }

    .brand-img {
        height: 25px;
        /* Logos de marcas más pequeños */
    }
}