/* =====================================================
   CONTROLFINO
   STYLE.CSS
===================================================== */

:root {

    --rojo: #e30613;
    --rojo-oscuro: #c9000b;

    --negro: #20262b;
    --negro-2: #293138;

    --gris: #69747e;
    --gris-claro: #f5f6f7;

    --blanco: #ffffff;

    --header-height: 88px;
    --menu-height: 57px;

    --header-total:
        calc(
            var(--header-height)
            + var(--menu-height)
        );
}


/* =====================================================
   RESET
===================================================== */

* {

    margin: 0;
    padding: 0;

    box-sizing: border-box;

}


html {

    scroll-behavior: smooth;

}


body {

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    color: var(--negro);

    background: white;

    padding-top: var(--header-total);

}


a {

    text-decoration: none;

    color: inherit;

}


button {

    font-family: inherit;

}



/* =====================================================
   HEADER FIJO
===================================================== */

.top-header {

    position: fixed;

    top: 0;
    left: 0;
    right: 0;

    width: 100%;

    height: var(--header-height);

    background: white;

    border-bottom:
        1px solid #eeeeee;

    z-index: 3000;

}


.header-container {

    width: 100%;

    max-width: 1400px;

    height: 100%;

    margin: auto;

    padding: 0 35px;

    display: flex;

    align-items: center;

    justify-content: space-between;

}



/* =====================================================
   LOGO
===================================================== */

.logo-container {

    display: flex;

    align-items: center;

    gap: 12px;

    flex-shrink: 0;

}


.logo-icon {

    width: 58px;

    height: 58px;

    border-radius: 50%;

    background: var(--rojo);

    color: white;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 29px;

    position: relative;

}


.logo-icon::before {

    content: "";

    position: absolute;

    inset: 5px;

    border:
        3px solid white;

    border-right-color:
        transparent;

    border-radius: 50%;

}


.logo-name {

    font-size: 31px;

    font-weight: 800;

    letter-spacing: -1px;

}


.logo-name span {

    color: var(--rojo);

}


.logo-description {

    font-size: 12px;

    color: #68717a;

    margin-top: 4px;

}

.nombre-organizacion {
    font-size: 15px;
    font-weight: 600;
    color: #555;
    margin-top: 4px;
}



/* =====================================================
   ACCIONES HEADER
===================================================== */

.header-actions {

    display: flex;

    align-items: center;

    gap: 10px;

}



/* BOTONES */

.header-button {

    height: 40px;

    padding: 0 15px;

    border: none;

    border-radius: 6px;

    background: var(--rojo);

    color: white;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 7px;

    font-size: 13px;

    font-weight: 600;

    cursor: pointer;

    transition: .25s;

    white-space: nowrap;

}


.header-button:hover {

    background:
        var(--rojo-oscuro);

    transform:
        translateY(-1px);

}


.header-button i {

    font-size: 13px;

}



/* =====================================================
   DROPDOWN LOGIN
===================================================== */

.login-dropdown {

    position: relative;

}


.login-button {

    min-width: 155px;

}


.login-arrow {

    font-size: 10px !important;

    transition: .25s;

}


.login-dropdown.open
.login-arrow {

    transform:
        rotate(180deg);

}



/* CAJA */

.login-dropdown-menu {

    position: absolute;

    top: calc(100% + 10px);

    right: 0;

    width: 320px;

    background: white;

    border-radius: 10px;

    border:
        1px solid #e1e5e8;

    box-shadow:
        0 15px 45px rgba(0,0,0,.18);

    padding: 8px;

    opacity: 0;

    visibility: hidden;

    transform:
        translateY(-8px);

    transition:
        .2s ease;

    z-index: 4000;

}


.login-dropdown.open
.login-dropdown-menu {

    opacity: 1;

    visibility: visible;

    transform:
        translateY(0);

}



/* TÍTULO */

.login-dropdown-title {

    padding: 12px 13px 10px;

    font-size: 14px;

    font-weight: 700;

    color: var(--negro);

    border-bottom:
        1px solid #eeeeee;

    margin-bottom: 5px;

}


.login-dropdown-title span {

    color: var(--rojo);

}



/* OPCIONES */

.login-dropdown-option {

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 12px;

    border-radius: 8px;

    transition: .2s;

}


.login-dropdown-option:hover {

    background: #f7f8f9;

}


.login-dropdown-icon {

    width: 43px;

    height: 43px;

    flex-shrink: 0;

    border-radius: 8px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 18px;

}


.employee-icon {

    color: var(--rojo);

    background: #fff0f1;

}


.client-icon {

    color: var(--negro);

    background: #eef1f3;

}


.login-dropdown-text {

    flex: 1;

}


.login-dropdown-text strong {

    display: block;

    font-size: 14px;

    color: var(--negro);

    margin-bottom: 3px;

}


.login-dropdown-text small {

    display: block;

    font-size: 11px;

    color: #7b858d;

}


.option-arrow {

    color: var(--rojo);

    font-size: 11px;

}



/* =====================================================
   MENÚ FIJO
===================================================== */

.main-menu {

    position: fixed;

    top: var(--header-height);

    left: 0;
    right: 0;

    width: 100%;

    height: var(--menu-height);

    background: var(--negro);

    z-index: 2900;

}


.menu-container {

    max-width: 1400px;

    height: 100%;

    margin: auto;

    display: flex;

    align-items: stretch;

}


.menu-item {

    height: 57px;

    padding: 0 28px;

    color: white;

    background: transparent;

    border: none;

    cursor: pointer;

    display: flex;

    align-items: center;

    gap: 8px;

    font-size: 14px;

    font-weight: 600;

    transition: .25s;

}


.menu-item:hover {

    background: #343c42;

}


.menu-item.active {

    background: var(--rojo);

}


.menu-item i {

    font-size: 11px;

}



/* =====================================================
   MENÚ DESPLEGABLE
===================================================== */

.menu-dropdown {

    position: relative;

}


.dropdown-content {

    position: absolute;

    top: 57px;

    left: 0;

    width: 245px;

    background: white;

    border-top:
        3px solid var(--rojo);

    box-shadow:
        0 12px 35px rgba(0,0,0,.15);

    display: none;

}


.menu-dropdown:hover
.dropdown-content {

    display: block;

}


.dropdown-content a {

    display: flex;

    align-items: center;

    gap: 10px;

    padding: 13px 18px;

    color: var(--negro);

    border-bottom:
        1px solid #eeeeee;

    font-size: 13px;

}


.dropdown-content a:hover {

    background: #f7f8f9;

    color: var(--rojo);

}


.dropdown-content a i {

    width: 20px;

    color: var(--rojo);

}



/* =====================================================
   BOTÓN MOBILE
===================================================== */

.mobile-menu-button {

    display: none;

    width: 40px;

    height: 40px;

    border: none;

    border-radius: 6px;

    background: var(--rojo);

    color: white;

    cursor: pointer;

    font-size: 18px;

}



/* =====================================================
   HERO
===================================================== */

.hero {

    height: 445px;

    position: relative;

    overflow: hidden;

    background: #20262b;

}

.hero-slide {

    position: absolute;

    inset: 0;

    background-position: center;

    background-size: cover;

    opacity: 0;

    transition:
        opacity .7s ease;

}


.hero-slide.active-slide {

    opacity: 1;

}


.hero-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.82),
            rgba(0,0,0,.45),
            rgba(0,0,0,.15)
        );

}


.hero-content {

    max-width: 1400px;

    height: 100%;

    margin: auto;

    padding: 0 70px;

    position: relative;

    z-index: 5;

    display: flex;

    align-items: center;

    justify-content: space-between;

}


.hero-text {

    max-width: 570px;

    color: white;

}


.hero-small-title {

    border-left:
        8px solid var(--rojo);

    padding-left: 13px;

    font-size: 15px;

    font-weight: 700;

    margin-bottom: 15px;

}


.hero-text h1 {

    font-size: 52px;

    line-height: 1.02;

    margin-bottom: 20px;

}


.hero-text p {

    font-size: 17px;

    line-height: 1.55;

    margin-bottom: 25px;

}


.hero-button {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 14px 28px;

    background: var(--rojo);

    color: white;

    border-radius: 30px;

    font-weight: 700;

}


.hero-features {

    width: 280px;

    display: flex;

    flex-direction: column;

    gap: 15px;

}


.hero-feature {

    display: flex;

    align-items: center;

    gap: 13px;

    color: white;

    font-size: 14px;

    font-weight: 600;

}


.feature-icon {

    width: 45px;

    height: 45px;

    border-radius: 50%;

    background: var(--rojo);

    display: flex;

    align-items: center;

    justify-content: center;

}

/* =========================================
   CARRUSEL PRINCIPAL
========================================= */

.hero {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.hero-carousel {
    position: relative;
    width: 100%;
    height: 560px;
    overflow: hidden;
}

.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.7s ease;
}

.hero-slide.active {
    opacity: 1;
    visibility: visible;
    z-index: 2;
}

.hero-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


/* Capa oscura sobre la imagen */

.hero-overlay {
    position: absolute;
    inset: 0;

    display: flex;
    align-items: center;

    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.78) 0%,
            rgba(0, 0, 0, 0.48) 45%,
            rgba(0, 0, 0, 0.10) 100%
        );
}


.hero-content {
    width: min(1200px, 90%);
    margin: auto;

    color: white;
}


.hero-tag {
    display: inline-block;

    background: var(--rojo);
    color: white;

    padding: 7px 14px;

    border-radius: 4px;

    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;

    margin-bottom: 18px;
}


.hero-content h1 {
    max-width: 650px;

    font-size: clamp(34px, 5vw, 60px);
    line-height: 1.08;

    margin: 0 0 20px;

    font-weight: 800;
}


.hero-content p {
    max-width: 600px;

    font-size: 18px;
    line-height: 1.7;

    margin-bottom: 30px;

    color: rgba(255,255,255,.9);
}


.hero-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    padding: 13px 22px;

    background: var(--rojo);
    color: white;

    border-radius: 5px;

    text-decoration: none;
    font-weight: 700;

    transition: .25s ease;
}

.hero-button:hover {
    background: var(--rojo-oscuro);
    transform: translateY(-2px);
}


/* =========================================
   FLECHAS
========================================= */

.carousel-prev,
.carousel-next {
    position: absolute;

    top: 50%;
    transform: translateY(-50%);

    width: 46px;
    height: 46px;

    border: none;
    border-radius: 50%;

    background: rgba(255,255,255,.18);
    color: white;

    cursor: pointer;

    font-size: 17px;

    z-index: 10;

    backdrop-filter: blur(5px);

    transition: .25s ease;
}

.carousel-prev {
    left: 25px;
}

.carousel-next {
    right: 25px;
}

.carousel-prev:hover,
.carousel-next:hover {
    background: var(--rojo);
}


/* =========================================
   INDICADORES
========================================= */

.carousel-dots {
    position: absolute;

    left: 50%;
    bottom: 25px;

    transform: translateX(-50%);

    display: flex;
    gap: 8px;

    z-index: 20;
}

.carousel-dot {
    width: 10px;
    height: 10px;

    padding: 0;

    border: none;
    border-radius: 50%;

    background: rgba(255,255,255,.5);

    cursor: pointer;

    transition: .25s ease;
}

.carousel-dot.active {
    width: 28px;

    border-radius: 10px;

    background: var(--rojo);
}


/* =========================================
   MÓVIL
========================================= */

@media (max-width: 700px) {

    .hero-carousel {
        height: 520px;
    }

    .hero-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(0,0,0,.80),
                rgba(0,0,0,.40)
            );
    }

    .hero-content {
        width: 85%;
    }

    .hero-content h1 {
        font-size: 34px;
    }

    .hero-content p {
        font-size: 15px;
    }

    .carousel-prev,
    .carousel-next {
        width: 38px;
        height: 38px;
    }

    .carousel-prev {
        left: 12px;
    }

    .carousel-next {
        right: 12px;
    }
}



/* =====================================================
   CARRUSEL
===================================================== */

.carousel-button {

    position: absolute;

    top: 50%;

    transform: translateY(-50%);

    width: 50px;

    height: 50px;

    border: none;

    border-radius: 50%;

    background: rgba(0,0,0,.6);

    color: white;

    cursor: pointer;

    z-index: 20;

}


.carousel-prev {

    left: 20px;

}


.carousel-next {

    right: 20px;

}


.carousel-button:hover {

    background: var(--rojo);

}


.carousel-dots {

    position: absolute;

    bottom: 25px;

    left: 50%;

    transform: translateX(-50%);

    display: flex;

    gap: 8px;

    z-index: 30;

}


.dot {

    width: 10px;

    height: 10px;

    border-radius: 50%;

    background: white;

    opacity: .6;

}


.dot.active {

    background: var(--rojo);

    opacity: 1;

}



/* =====================================================
   TÍTULO
===================================================== */

.section-title {

    text-align: center;

    padding: 30px 20px 25px;

}


.section-title h2 {

    display: inline-block;

    margin: 0 15px;

    font-size: 30px;

}


.section-title h2 span {

    color: var(--rojo);

}


.title-line {

    width: 45px;

    height: 2px;

    display: inline-block;

    vertical-align: middle;

    background: var(--rojo);

}


.section-title p {

    margin-top: 8px;

    color: #71808c;

}



/* =====================================================
   SERVICIOS
===================================================== */

.services-section {

    padding-bottom: 35px;

}


.services-container {

    max-width: 1400px;

    margin: auto;

    padding: 0 35px;

    display: grid;

    grid-template-columns:
        repeat(6, 1fr);

    gap: 15px;

}


.service-card {

    min-height: 205px;

    padding: 25px 15px;

    text-align: center;

    border:
        1px solid #e4e8eb;

    border-radius: 8px;

    transition: .25s;

}


.service-card:hover {

    transform:
        translateY(-5px);

    box-shadow:
        0 10px 30px rgba(0,0,0,.08);

}


.service-icon {

    width: 58px;

    height: 58px;

    margin: auto;

    margin-bottom: 12px;

    border-radius: 50%;

    background: #fff0f1;

    color: var(--rojo);

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 23px;

}


.service-card h3 {

    font-size: 16px;

    margin-bottom: 8px;

}


.service-card p {

    font-size: 12px;

    line-height: 1.5;

    color: #71808c;

}



/* =====================================================
   FOOTER
===================================================== */

.footer {

    padding: 20px 0;

    background: var(--negro);

    color: white;

}


.footer-container {

    max-width: 1400px;

    margin: auto;

    padding: 0 35px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

}


.footer-logo {

    display: flex;

    align-items: center;

    gap: 10px;

}


.footer-logo-icon {

    width: 40px;

    height: 40px;

    border: 2px solid white;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

}


.footer-logo strong {

    display: block;

}


.footer-logo strong span {

    color: var(--rojo);

}


.footer-logo small {

    display: block;

    color: #aab2b8;

    font-size: 8px;

}


.footer-links {

    display: flex;

    gap: 10px;

    color: #ccd1d4;

    font-size: 11px;

}


.social-links {

    display: flex;

    gap: 15px;

}


.copyright {

    color: #aeb6bb;

    font-size: 10px;

}



/* =====================================================
   TABLET
===================================================== */

@media (max-width: 1100px) {

    .menu-item {

        padding: 0 16px;

    }


    .services-container {

        grid-template-columns:
            repeat(3, 1fr);

    }


    .hero-text h1 {

        font-size: 43px;

    }

}



/* =====================================================
   CELULAR
===================================================== */

@media (max-width: 800px) {


    :root {

        --header-height: 70px;

        --menu-height: 0px;

    }


    body {

        padding-top: 70px;

    }


    /* HEADER */

    .top-header {

        height: 70px;

    }


    .header-container {

        padding: 0 12px;

    }


    .logo-container {

        gap: 7px;

    }


    .logo-icon {

        width: 42px;

        height: 42px;

        font-size: 19px;

    }


    .logo-name {

        font-size: 20px;

    }


    .logo-description {

        display: none;

    }


    /* ACCIONES */

    .header-actions {

        gap: 5px;

        margin-left: auto;

    }


    /*
       IMPORTANTE:
       Los botones permanecen visibles
    */

    .header-button {

        height: 36px;

        padding: 0 9px;

        font-size: 11px;

    }


    .header-button i {

        font-size: 12px;

    }


    /* LOGIN */

    .login-button {

        min-width: auto;

    }


    .login-button .login-arrow {

        display: none;

    }


    /* SOPORTE */

    .support-button {

        display: none;

    }


    /* REGISTRO */

    .register-button {

        display: flex;

    }


    /* MENÚ HAMBURGUESA */

    .mobile-menu-button {

        display: flex;

        align-items: center;

        justify-content: center;

    }


    /* MENÚ */

    .main-menu {

        top: 70px;

        height: auto;

        max-height:
            calc(100vh - 70px);

        overflow-y: auto;

        display: none;

    }


    .main-menu.show {

        display: block;

    }


    .menu-container {

        flex-direction: column;

        width: 100%;

    }


    .menu-item {

        width: 100%;

        height: 48px;

        justify-content: space-between;

        padding: 0 20px;

    }


    .menu-dropdown:hover
    .dropdown-content {

        display: none;

    }


    .menu-dropdown.open
    .dropdown-content {

        display: block;

    }


    .dropdown-content {

        position: static;

        width: 100%;

        border-top: none;

        box-shadow: none;

    }


    .dropdown-content a {

        padding-left: 40px;

        background: #293138;

        color: white;

    }


    .dropdown-content a:hover {

        background: #343c42;

    }


    /* HERO */

    .hero {

        height: 570px;

    }


    .hero-content {

        padding: 30px;

        align-items: flex-start;

        justify-content: center;

    }


    .hero-text h1 {

        font-size: 38px;

    }


    .hero-text p {

        font-size: 15px;

    }


    .hero-features {

        display: none;

    }


    /* SERVICIOS */

    .services-container {

        grid-template-columns:
            repeat(2, 1fr);

        padding: 0 15px;

    }


    /* FOOTER */

    .footer-container {

        flex-direction: column;

        text-align: center;

    }


}



/* =====================================================
   CELULARES PEQUEÑOS
===================================================== */

@media (max-width: 500px) {


    .header-container {

        padding: 0 8px;

    }


    .logo-icon {

        width: 38px;

        height: 38px;

        font-size: 17px;

    }


    .logo-name {

        font-size: 18px;

    }


    .header-actions {

        gap: 4px;

    }


    /*
       En teléfonos pequeños
       mostramos solo iconos
       para ahorrar espacio.
    */

    .header-button span {

        display: none;

    }


    .header-button {

        width: 37px;

        height: 37px;

        padding: 0;

    }


    .login-dropdown-menu {

        position: fixed;

        top: 70px;

        right: 8px;

        width:
            calc(100vw - 16px);

        max-width: 330px;

    }


    .mobile-menu-button {

        width: 37px;

        height: 37px;

    }


    .hero {

        height: 540px;

    }


    .hero-content {

        padding: 25px;

    }


    .hero-text h1 {

        font-size: 32px;

    }


    .services-container {

        grid-template-columns: 1fr;

    }


    .section-title h2 {

        font-size: 24px;

    }


    .title-line {

        display: none;

    }

}



/* =====================================================
   SCROLL DE SECCIONES
===================================================== */

section,
article {

    scroll-margin-top: 160px;

}

/* =====================================================
   CARRUSEL PRINCIPAL CONTROLFINO
===================================================== */

.hero-controlfino {
    width: 100%;
    position: relative;
    overflow: hidden;
}

.cf-carousel {
    position: relative;
    width: 100%;
    height: 620px;
    overflow: hidden;
}


/* =====================================================
   SLIDES
===================================================== */

.cf-slide {
    position: absolute;
    inset: 0;

    opacity: 0;
    visibility: hidden;

    transition:
        opacity .8s ease,
        visibility .8s ease;

    z-index: 1;
}

.cf-slide.active {
    opacity: 1;
    visibility: visible;
    z-index: 2;
}


/* =====================================================
   IMAGEN
===================================================== */

.cf-slide-image {
    position: absolute;

    width: 100%;
    height: 100%;

    object-fit: cover;

    object-position: center;

    inset: 0;
}


/* =====================================================
   CAPA OSCURA
===================================================== */

.cf-slide-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, .82) 0%,
            rgba(0, 0, 0, .60) 38%,
            rgba(0, 0, 0, .20) 70%,
            rgba(0, 0, 0, .55) 100%
        );

    z-index: 1;
}


/* =====================================================
   CONTENEDOR
===================================================== */

.cf-slide-container {

    position: relative;

    z-index: 3;

    width: min(1400px, 94%);

    height: 100%;

    margin: auto;

    display: grid;

    grid-template-columns:
        minmax(400px, 1fr)
        minmax(330px, 400px);

    align-items: center;

    gap: 50px;
}


/* =====================================================
   TEXTO IZQUIERDO
===================================================== */

.cf-hero-text {
    color: #fff;

    max-width: 650px;
}


.cf-hero-label {

    display: inline-block;

    padding-left: 14px;

    border-left:
        5px solid var(--rojo);

    font-size: 16px;

    font-weight: 700;

    letter-spacing: .5px;

    margin-bottom: 22px;
}


.cf-hero-text h1 {

    margin: 0 0 22px;

    font-size:
        clamp(40px, 5vw, 68px);

    line-height: 1.04;

    font-weight: 800;

    color: #fff;
}


.cf-hero-text h1 strong {

    display: block;

    color: var(--rojo);

    font-weight: 800;
}


.cf-hero-text p {

    max-width: 620px;

    margin: 0 0 30px;

    color: rgba(255,255,255,.90);

    font-size: 18px;

    line-height: 1.65;
}


/* =====================================================
   BOTÓN
===================================================== */

.cf-hero-button {

    display: inline-flex;

    align-items: center;

    gap: 12px;

    padding:
        15px 25px;

    background:
        var(--rojo);

    color: #fff;

    text-decoration: none;

    border-radius: 30px;

    font-size: 16px;

    font-weight: 700;

    transition: .25s ease;
}


.cf-hero-button:hover {

    background:
        var(--rojo-oscuro);

    color: #fff;

    transform:
        translateY(-2px);

    box-shadow:
        0 8px 25px rgba(0,0,0,.30);
}


/* =====================================================
   PANEL DERECHO
===================================================== */

.cf-feature-panel {

    width: 100%;

    padding:
        18px 24px;

    background:
        rgba(15, 22, 27, .72);

    border:
        1px solid rgba(255,255,255,.20);

    border-radius: 18px;

    box-shadow:
        0 15px 45px rgba(0,0,0,.30);

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);
}


/* =====================================================
   ITEMS
===================================================== */

.cf-feature-item {

    display: flex;

    align-items: center;

    gap: 15px;

    padding:
        14px 0;

    border-bottom:
        1px solid rgba(255,255,255,.18);
}


.cf-feature-item:last-child {

    border-bottom:
        none;
}


/* =====================================================
   ICONOS
===================================================== */

.cf-feature-icon {

    flex:
        0 0 52px;

    width: 52px;

    height: 52px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background:
        var(--rojo);

    color: #fff;

    font-size: 20px;

    box-shadow:
        0 5px 15px rgba(0,0,0,.25);
}


/* =====================================================
   TEXTO DEL PANEL
===================================================== */

.cf-feature-item h3 {

    margin:
        0 0 4px;

    color: #fff;

    font-size: 17px;

    font-weight: 700;
}


.cf-feature-item p {

    margin: 0;

    color:
        rgba(255,255,255,.72);

    font-size: 13px;

    line-height: 1.4;
}


/* =====================================================
   FLECHAS
===================================================== */

.cf-carousel-prev,
.cf-carousel-next {

    position: absolute;

    top: 50%;

    transform:
        translateY(-50%);

    width: 45px;

    height: 45px;

    border:
        1px solid rgba(255,255,255,.30);

    border-radius: 50%;

    background:
        rgba(0,0,0,.35);

    color: #fff;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    z-index: 20;

    transition: .25s ease;
}


.cf-carousel-prev {
    left: 18px;
}


.cf-carousel-next {
    right: 18px;
}


.cf-carousel-prev:hover,
.cf-carousel-next:hover {

    background:
        var(--rojo);

    border-color:
        var(--rojo);
}


/* =====================================================
   INDICADORES
===================================================== */

.cf-carousel-dots {

    position: absolute;

    left: 50%;

    bottom: 22px;

    transform:
        translateX(-50%);

    display: flex;

    gap: 8px;

    z-index: 30;
}


.cf-dot {

    width: 10px;

    height: 10px;

    padding: 0;

    border: none;

    border-radius: 50%;

    background:
        rgba(255,255,255,.55);

    cursor: pointer;

    transition: .3s ease;
}


.cf-dot.active {

    width: 30px;

    border-radius: 10px;

    background:
        var(--rojo);
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 1000px) {

    .cf-carousel {
        height: 650px;
    }

    .cf-slide-container {

        grid-template-columns:
            1fr 320px;

        gap: 25px;
    }

    .cf-hero-text h1 {
        font-size: 48px;
    }

    .cf-feature-panel {
        padding: 12px 18px;
    }

    .cf-feature-item {
        padding: 11px 0;
    }

    .cf-feature-icon {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
        font-size: 17px;
    }

    .cf-feature-item h3 {
        font-size: 14px;
    }

    .cf-feature-item p {
        font-size: 11px;
    }
}


/* =====================================================
   CELULAR
===================================================== */

@media (max-width: 750px) {

    .cf-carousel {

        height:
            650px;
    }


    .cf-slide-container {

        width: 88%;

        display: flex;

        flex-direction: column;

        justify-content: center;

        align-items: stretch;

        gap: 20px;

        padding-bottom: 35px;
    }


    .cf-hero-text {

        max-width:
            100%;

        text-align:
            left;
    }


    .cf-hero-label {

        font-size:
            12px;

        margin-bottom:
            12px;
    }


    .cf-hero-text h1 {

        font-size:
            34px;

        line-height:
            1.08;

        margin-bottom:
            14px;
    }


    .cf-hero-text p {

        font-size:
            14px;

        line-height:
            1.5;

        margin-bottom:
            18px;
    }


    .cf-hero-button {

        padding:
            11px 18px;

        font-size:
            14px;
    }


    .cf-feature-panel {

        max-height:
            250px;

        overflow-y:
            auto;

        padding:
            8px 15px;

        border-radius:
            12px;
    }


    .cf-feature-item {

        padding:
            8px 0;

        gap:
            10px;
    }


    .cf-feature-icon {

        width:
            36px;

        height:
            36px;

        flex-basis:
            36px;

        font-size:
            14px;
    }


    .cf-feature-item h3 {

        font-size:
            13px;
    }


    .cf-feature-item p {

        font-size:
            10px;
    }


    .cf-carousel-prev,
    .cf-carousel-next {

        width:
            35px;

        height:
            35px;

        top:
            auto;

        bottom:
            18px;

        transform:
            none;
    }


    .cf-carousel-prev {
        left: 15px;
    }


    .cf-carousel-next {
        right: 15px;
    }


    .cf-carousel-dots {
        bottom:
            30px;
    }
}