@font-face {
    font-family: "bootstrap-icons";
    src: url("../fonts/bootstrap-icons.woff2") format("woff2"),
    url("../fonts/bootstrap-icons.woff") format("woff");
}

.bi {
    font-family: "bootstrap-icons" !important;
    font-style: normal;
    font-weight: normal;
    display: inline-block;
    line-height: 1;
}

.nNodiaHomeSlide {
    background: #ffffff;
    border-bottom: 1px solid #f5f5f5;
}

.nNodiaHomeSlide .btn {
    font-size: 1rem;
}

.nNodiaTitle {
    width: fit-content;
    margin: auto;
    max-width: 820px;
}

#servicios .nNodiaLinear, #servicios-mensuales .nNodiaLinear, .nNodiaLinear {
    width: 25%;
    height: 4px;
    background: #ffc107;
}

.nNodiaFrom {
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    font-size: 1.2rem;
    color: #383838;
}

.nNodiaFrom strong {
    color: #d5a000;
}

.nnStatIcon {
    width: 45px;
    height: 45px;
    background: rgba(13,110,253,0.1);
    color: #0d6efd;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 20px;
}

.nnStatCard p {
    font-size: 0.85rem;
    color: #6c757d;
}

/* CARD */
.nnStatCard{
    background:#fff;
    padding:20px;
    border-radius:14px;
    transition:.25s ease;
    box-shadow:0 5px 20px rgba(0,0,0,0.05);
}

.nnStatCard:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 35px rgba(0,0,0,0.08);
}

/* ICONO BASE */
.nnStatIcon{
    width:45px;
    height:45px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
}

/* COLORES LIMPIOS (sin fondo en número) */
.stat-blue .nnStatIcon{ background:rgba(13,110,253,0.1); color:#0d6efd; }
.stat-green .nnStatIcon{ background:rgba(25,135,84,0.1); color:#198754; }
.stat-purple .nnStatIcon{ background:rgba(111,66,193,0.1); color:#6f42c1; }
.stat-yellow .nnStatIcon{ background:rgba(245,159,0,0.15); color:#f59f00; }

/* NÚMEROS */
.stat-blue span{ color:#0d6efd; }
.stat-green span{ color:#198754; }
.stat-purple span{ color:#6f42c1; }
.stat-yellow span{ color:#f59f00; }

/* TEXTO */
.nnStatCard span{
    font-weight:700;
    font-size:26px;
    display: flex;
}

.nnStatCard30 {
    height: 30px;
    line-height: 30px;
}

.nnStatCard p{
    color:#6c757d;
    font-size:14px;
}

/* SUFIJO */
.suffix{
    margin-left:2px;
    opacity:.8;
}

/* SECCIÓN */
.nNodiaCTASection{
    background: linear-gradient(135deg,#0d6efd 0%, #6f42c1 100%);
    position: relative;
    overflow: hidden;
}

/* CAJA */
.nNodiaCTABox{
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(10px);
    border-radius:16px;
    padding:50px 30px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.15);
    max-width:800px;
    margin:auto;
}

/* BOTÓN PRINCIPAL */
.nNodiaBtnPrimary{
    background: linear-gradient(135deg, #0d6efd 0%, #6f42c1 100%);
    color:#fff;
    padding:12px 22px;
    border-radius:10px;
    border: none;

    background-size:200% auto;

    transition:
            transform .25s ease,
            box-shadow .25s ease,
            filter .25s ease,
            background-position .4s ease;

    box-shadow:0 6px 18px rgba(13,110,253,.3);
}

.nNodiaBtnPrimary:hover{
    transform:translateY(-2px);

    filter: brightness(1.1);

    background-position:right center;

    box-shadow:0 12px 30px rgba(13,110,253,.4);

    color:#fff;
}

/* BOTÓN SECUNDARIO */
.nNodiaBtnGhost{
    border:1px solid #dee2e6;
    padding:12px 22px;
    border-radius:10px;
    font-weight:500;
    color:#495057;
    background:#fff;
    transition:all .2s ease;
}

.nNodiaBtnGhost:hover{
    background:#f8f9fa;
    border-color:#adb5bd;
}

/* TEXTO */
.nNodiaCTABox h2{
    font-size:28px;
}

.nNodiaCTABox p{
    font-size:16px;
}

.nNodiaCard--featured img {
    pointer-events: none;
}

.nNodiaList {
    list-style: none;
}

/* FONDO */
.nNodiaCTASection{
    background: #fbfbfb;
}

/* CONTENEDOR */
.nNodiaCTAPro{
    background:#fff;
    border-radius:16px;
    padding:40px;
    box-shadow:0 20px 60px rgba(0,0,0,0.15);
}

/* STATS DERECHA */
.nNodiaCTAStats{
    display:flex;
    justify-content:center;
    gap:20px;
    font-size:20px;
    font-weight:700;
}

.nNodiaCTAStats span{
    font-size:14px;
    font-weight:400;
    color:#6c757d;
}

/* RESPONSIVE */
@media (max-width:768px){
    .nNodiaCTAPro{
        text-align:center;
    }
}

.nNodiaCTAStats{
    display:flex;
    justify-content:center;
    gap:16px;
}

.stat-box{
    background:#f8f9fa;
    padding:14px 20px;
    border-radius:12px;
    text-align:center;
    min-width:110px;

    box-shadow:0 10px 25px rgba(0,0,0,0.06);
}

.stat-box strong {
    font-size: 20px;
    font-weight: 700;
}

.nNodiaCTAPro p.small{
    font-size:14px;
    margin-top:10px;
}

.nNodiaCTAPro .col-lg-5{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}

.stat-box span{
    font-size:13px;
    color:#6c757d;
}

.nNodiaHomeSlide .btn-primary, .nNodiaHomeSlide .btn-warning {
    font-size: 1.1rem;
}

.nnReviews {
    background: #fff;
}

.review-item {
    border: 1px solid #eee;
    border-radius: 14px;
    padding: 18px;
    transition: .25s ease;
    background: #fbfbfb;
    width: 100%;
    color: red;
    border-radius: 0;
}

.review-item:hover {
    border-color: #dcdcdc;
    box-shadow: 0 10px 25px rgba(0,0,0,.05);
}

.review-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.review-header strong {
    font-size: 14px;
    color: #333;
}

.avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
}

.date {
    font-size: 12px;
    color: #00000091;
}

.stars i.active {
    color: #f59e0b;
}

.stars {
    font-size: 15px;
    letter-spacing: 1px;
}

.stars i {
    color: #e5e7eb;
}

.review-item p {
    font-size: 14px;
    color: #333;
    margin-top: 8px;
}

.reviews-swiper .swiper-wrapper {
    align-items: stretch;
}

.reviews-swiper .swiper-slide {
    height: auto;
    display: flex;
}

.nnReviews .border-bottom {
    border-color: rgb(0 0 0 / 4%) !important
}

.nNodiaHomeSlide .text-secondary {
    color: #717171;
}