/* Fuente títulos */
@font-face {
    font-family: 'Rubik';
    src: url('../fonts/rubik/static/Rubik-ExtraBold.ttf') format('truetype');
}

/* Fuente texto */
@font-face {
    font-family: 'Lato';
    src: url('../fonts/lato/Lato-Regular.ttf') format('truetype');
}

/* Animaciones */
@keyframes slideInFromTop {
    0% {
        opacity: 0;
        transform: translateY(-100%);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInFromRight {
    0% {
        opacity: 0;
        transform: translateX(100%);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInFromBottom {
    0% {
        opacity: 0;
        transform: translateY(100%);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLetter {
    0% {
        opacity: 0;
        transform: translateY(-100%);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Base */
html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
    font-family: 'Lato', sans-serif;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

/* Manipulación de texto */
.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

.text-bold {
    font-weight: bold;
}

.text-capitalize {
    text-transform: capitalize;
}

.titulo {
    font-family: 'Rubik', sans-serif;
    line-height: 1.2;
    font-size: 1.5rem;
}

@media (min-width: 768px) {
    .titulo {
        font-size: 2rem;
    }
}

.subtitulo {
    line-height: 1.2;
    font-weight: bold;
    font-size: 1.25rem;
}

.tag-text, .tag-text-light {
    font-size: 13px;
    font-weight: bold;
}

.tag-text {
    color: #163f9a;
}

.tag-text-light {
    color: #495e8e;
}

.tag-text-grey {
    color: #414141;
    font-size: 13px;
    font-weight: bold;
}

.white-text {
    color: white;
}

/* Quitar borde */
.no-borde {
    border: none;
}

/* Overlay de cards */
.card-overlay {
    color: white;
}

    .card-overlay::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 1;
    }

/* Sección carrusel */
.carousel-item-idx {
    position: relative;
}

    .carousel-item-idx::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 1;
    }

    .carousel-item-idx img {
        height: 500px;
        object-fit: cover;
        position: relative;
        z-index: 0;
    }

.carousel-caption-idx {
    position: absolute;
    top: 50%;
    left: 10%;
    right: 10%;
    transform: translateY(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    padding: 0 20px;
    text-align: left;
}

.carousel-control-prev-idx,
.carousel-control-next-idx {
    z-index: 3;
    width: 5%;
}

.carousel-title-idx {
    font-family: 'Rubik', sans-serif;
    font-size: 4rem;
    text-transform: uppercase;
    line-height: 1.2;
    max-width: 450px;
    margin: 0;
}

.btn-carousel {
    background: linear-gradient(135deg, #163f9a 20%, #d8582f 100%);
    border: none;
    border-radius: 8px;
    color: white;
    padding: 20px 20px;
    font-size: 1rem;
    font-family: 'Rubik', sans-serif;
    text-transform: uppercase;
    transition: background 0.3s ease, transform 0.3s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

    .btn-carousel:hover {
        background: linear-gradient(135deg, #d8582f 0%, #163f9a 100%);
        transform: translateY(-2px);
        box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
        color: white;
    }

    .btn-carousel:focus, .btn-carousel:active:focus {
        box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #163f9a;
    }

.carousel-item-idx:nth-child(1) .carousel-caption-idx h5,
.carousel-item-idx:nth-child(1) .carousel-caption-idx .carousel-title,
.carousel-item-idx:nth-child(1) .carousel-caption-idx .btn-carousel {
    animation: slideInFromRight 1.5s ease-out;
}

.carousel-item-idx:nth-child(2) .carousel-caption-idx h5,
.carousel-item-idx:nth-child(2) .carousel-caption-idx .carousel-title,
.carousel-item-idx:nth-child(2) .carousel-caption-idx .carousel-subtitle {
    animation: slideInFromTop 1.5s ease-out;
}

.carousel-item-idx:nth-child(3) .carousel-caption-idx h5,
.carousel-item-idx:nth-child(3) .carousel-caption-idx .carousel-title,
.carousel-item-idx:nth-child(3) .carousel-caption-idx .carousel-subtitle {
    animation: slideInFromBottom 1.5s ease-out;
}

/* Sección servicios */
.servicios .card {
    position: relative;
    overflow: hidden;
}

.servicios .card-body {
    position: relative;
    z-index: 2;
}

.servicios-bg1 {
    background-image: url('../img/slide1-home1.jpg');
    background-size: cover;
    background-position: center;
}

.servicios-bg2 {
    background-image: url('../img/slide2-home1.jpg');
    background-size: cover;
    background-position: center;
}

/* Sección por qué elegirnos */
.por-que-elegirnos {
    background-color: #0a1f4a;
    color: white;
    padding: 40px 10px;
}

@media (min-width: 768px) {
    .por-que-elegirnos {
        padding: 60px 0;
    }
}

.por-que-elegirnos .card {
    position: relative;
    background-color: #1a3162;
    border: none;
    color: white;
    min-height: 350px;
    overflow: hidden;
}

    .por-que-elegirnos .card .circle {
        position: absolute;
        bottom: -70px;
        right: -50px;
        width: 150px;
        height: 150px;
        background-color: rgba(255, 255, 255, 0.05);
        border-radius: 50%;
        border: none;
        z-index: 3;
        overflow: hidden;
    }

.por-que-elegirnos .icon {
    position: absolute;
    font-size: 2rem;
    color: white;
    margin-top: auto;
    bottom: 10px;
    right: 15px;
    z-index: 2;
}

.por-que-elegirnos .number {
    position: absolute;
    font-size: 5vw;
    font-weight: bold;
    color: rgba(255, 255, 255, 0.05);
    top: -15px;
    left: 0px;
    z-index: 1;
}

 /* Menú filtros Tienda */
.menu-tienda-btn {
    border-bottom: 1px solid #dee2e6;
    background-color: transparent;
    color: inherit;
}

    .menu-tienda-btn:not(.collapsed) {
        border-bottom: none;
        background-color: transparent;
        color: inherit;
    }

.menu-tienda-body {
    border-top: 1px solid #dee2e6;
}

/* Productos Tienda */
.producto-img {
    width: 45%;
}

/* Logo */
#logo {
    height: 80px;
}
