body {
    font-family: "Outfit", sans-serif;
    color: #260254;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}
/* ESTILOS GENERALES */
section { padding: 2%; }
h1 {
    font-size: 3.5rem;
    font-weight: 600;
    text-transform: uppercase;
}
h2 {
    font-size: 3.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
p {
    font-size: 1.5rem;
    font-weight: 300;
    letter-spacing: 0.02rem;
}
section img { width: 100%; }
.btn-primary {
    background-color: #E04D26;
    color: #FFFFFF;
    font-size: 1.5rem;
    letter-spacing: 0.02rem;
    border: 0;
    text-transform: uppercase;
    font-weight: 600;
    padding: 0.625rem 1.875rem;
}
.btn-primary:hover { background-color: #A13517; }
/* NAVBAR */
.navbar {
    height: 60px;
    background-color: #260254;
    min-height: 60px; 
    width: 90%; 
    margin: 4rem auto; 
    padding: 0.5em 5em;  
    border-radius: 0.5625rem;
    box-shadow: 0px 10px 40px rgba(0, 0, 0, 0.15), 0px 10px 10px rgba(0, 0, 0, 0.1);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);  
}
.navbar .logo{ height: 35px; }
.navbar .nav-link {
    color: #fff;
    text-transform: uppercase;
    font-size: 0.75rem;
}
.navbar .btn-primary { font-size: 0.75rem; }
/* HERO */
#hero {
    padding-top: 13.125rem;
    padding-bottom: 4.375rem;
    background-color: #DDC3FD;
    background-image:
        url('../assets/bg-hero2.webp'),
        url('../assets/bg-hero1.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
.subtitle {
    font-weight: 500;
    margin-top: 0.625rem;
    padding-right: 10%;
}
 /* ANIMACION */
.text-animated { 
    height: 65px;
    width: fit-content;
    line-height: 66px;
    font-size: 56px;
    font-weight: 700;
    letter-spacing: 0.1rem;
    text-transform: uppercase;
    background-color: #E04D26;
    color: #fff;
    padding: 0.3125rem 0.625rem;
    border-radius: 0.375rem;
    overflow: hidden;
}
.text-animated span {
    position: relative;
    animation: text-rotation 8s ease-in-out infinite;
}
@keyframes text-rotation {
    0%, 15% { top: 0; }
    33%, 48% { top: -67px; }
    66%, 81% { top: -132px; }
    100% { top: 0; }
}
#hero .btn-primary {
    margin-top: 1.25rem;
    margin-bottom: 0.625rem;
}
#hero img {
    width: 27rem;
    height: 27rem;
}
/* QUE HACEMOS */
#que_hacemos {
    background-color: #DDC3FD;
    position: relative;
    background-image: url('../assets/bg-que_hacemos.jpg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    text-align: center;
    padding-block: 6rem;
}
#que_hacemos::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.6);
    z-index: 0;
}
#que_hacemos::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(224, 77, 38, 0.15);
    z-index: 1;
}
#que_hacemos>* {
    position: relative;
    z-index: 2;
}
#que_hacemos span {
    font-size: 2.5rem;
    font-weight: 500;
    letter-spacing: 0.02rem;
    display: inline-block;
    background-color: #E04D26;
    color: #FFFFFF;
    padding: 0.625rem 3rem;
    border-radius: 0.375rem;
}
#que_hacemos img {  width: 43.75rem; }
/* PORQUE */
#porque_prosys {
    background-color: #DDC3FD;
    background-image: url('../assets/bg-porque2.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding-block: 7.5rem;
    text-align: center;
}
#porque_prosys h2 { font-size: 3.125rem; }
#porque_prosys span {
    display: inline-block;
    background-color: #E04D26;
    color: #FFFFFF;
    padding: 0.625rem;
    border-radius: 0.375rem;
}
.accordion-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 21.875rem));
    justify-content: center;
    gap: 2rem;
    margin-top: 3.75rem;
}
.center-last {
    grid-column: 1 / -1;
    justify-self: center;
}
.custom-card-accordion {
    width: 21.875rem;
    max-width: 21.875rem;
    margin-inline: auto;
    margin-bottom: 2.5rem;
}
.custom-card-accordion .accordion-item {
    border: none;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 9px 5px 25px rgba(0, 0, 0, 0.2);
    background: #fff;
}
.card-header-btn {
    background: #fff;
    padding: 2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #260254;
}
.card-header-btn.vertical {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
}
.card-header-btn:focus { box-shadow: none; }
.card-header-btn:not(.collapsed) { background: #fff; }
.icon {
    width: 5rem;
    height: 5rem;
    color: #E04D26;
}
.card-header-btn .title {
    margin: 0;
    font-weight: 700;
    letter-spacing: 0.02rem;
}
/* Flecha del accordion */
.card-header-btn::after { display: none; }
.custom-card-accordion .accordion-body {
    padding: 1.5rem;
    border: none;
    background-color: #E04D26;
    color: #fff;
    font-size: 1.25rem;
    font-weight: 400;
}
/* Cambio de color */
.custom-card-accordion .accordion-button:not(.collapsed) {
    background-color: #E04D26;
    color: #fff;
}
.custom-card-accordion .accordion-button:not(.collapsed) .title {
    color: #fff;
}
.accordion-button:not(.collapsed) .icon {
    color: #fff;
}
.custom-card-accordion .accordion-button {
    transition: background-color 0.25s ease, color 0.25s ease;
}
.after-accordion {
    font-weight: 500;
    padding: 0 0 3.125rem 0;
}
/* CONTACTO */
#contacto {
    background-color: #DDC3FD;
    position: relative;
    background-image: url('../assets/bg-contacto.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    justify-content: center;
    align-items: center;
}
#contacto::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.5);
    z-index: 0;
}
#contacto>* {
    position: relative;
    z-index: 1;
}
#contacto h2 { font-weight: 500; }
#contacto .card {
    border: 0;
    box-shadow: 20px 20px 40px rgba(0, 0, 0, 0.3);
}
.card-body {
    text-align: center;
    padding: 5%;
    color: #260254;
}
.card-title {
    font-size: 2.5rem;
    font-weight: 600;
    text-transform: uppercase;
}
.card-subtitle {
    font-size: 1.5rem;
    font-weight: 300;
}
.b24-form-control-label { text-align: left; }		
.b24-form-btn { 
    width: 16.875rem !important; 
    text-transform: uppercase;
}
/* FOOTER */
footer {
    background-color: #260254;
    padding: 5%;
    color: #FFFFFF;
    text-transform: uppercase;
}
footer .logo-footer {
    width: 60%;
    margin-bottom: 1.25rem;
}
footer .icon { width: 1.5rem; }
footer h5 {
    font-size: 1rem;
    margin-bottom: 10%;
    font-weight: 700;
    letter-spacing: 0.1em;
}
footer ul { padding-left: 0; }
footer li {
    list-style-type: none;
    margin-bottom: 0.9375rem;
    font-size: 0.875rem;
}
footer li a {
    color: #FFFFFF;
    text-decoration: none;
}
footer .contact-info { text-transform: none; }
/* TABLETS */
@media (max-width: 992px) {
    .navbar-collapse {
        background-color: #260254;
        border-radius: 0.5rem;
        padding: 1rem;
        margin-top: 1rem;
    }
    #hero .col-lg-5 { text-align: center; }
    #contacto { padding: 3rem; }
    #contacto h2 { text-align: center; }
    .b24-form-btn { width: 100% !important; }
    footer { text-align: center; }
    footer .logo-footer {  width: 40%; }
    footer .icon {
        width: 2rem;
        margin: 2rem 0;
    }
    footer h5 {
        font-size: 1.375rem;
        margin: 5% 0;
    }
    footer li {  font-size: 1.125rem; }
}
/* MOBILE */
@media (max-width: 769px) {
    h1 { font-size: 2.5rem; }
    h2 { font-size: 2.5rem; }
    p { font-size: 1.25rem; }
    .btn-primary { width: 100%; }
    .navbar-brand { margin-right: auto; }
    .navbar { margin: 2rem auto; padding: 0.5em 1rem; }
    #hero { padding-top: 9.375rem; }
    .subtitle {
        margin-top: 0.9375rem;
        padding-right: 0;
    }
     /* ANIMACION */
    .text-animated { 
        height: 50px;
        width: fit-content;
        line-height: 50px;
        font-size: 30px;
        padding: 0.3125rem 0.625rem;
        overflow: hidden;
    }
    .text-animated span {
        animation: text-rotation-mobile 8s ease-in-out infinite;
    }
    @keyframes text-rotation-mobile {
        0%, 15% { top: 0; }
        33%, 48% { top: -50px; }
        66%, 81% { top: -100px; }
        100% { top: 0; }
    }
    #hero .btn-primary { margin-top: 1.25rem; }
    .after-btn { text-align: center; }
    #hero img {
        width: 20rem;
        height: 20rem;
    }
    #que_hacemos span {
        font-size: 1.5rem;
        padding: 0.625rem;
    }
    #porque_prosys h2 { font-size: 2rem; }
    #porque_prosys span { padding: 0.6rem; }
    .custom-card-accordion { width: 18.75rem; }
    .accordion-grid { grid-template-columns: 1fr; }
    .center-last { grid-column: auto; }
    .after-accordion { padding: 0 0 6.25rem 0; }
    #contacto { padding: 2rem; }
    #contacto h2 {  margin-bottom: 1.25rem; }
    footer .icon { width: 1.75rem; }
    footer h5 {
        font-size: 1.125rem;
        margin: 10% 0;
    }
    footer li { font-size: 1rem; }
}