 body {
            margin: 0;
            overflow-x: hidden;
        }

        .bg-puebla{
        color:rgb(123, 24, 45);
        padding: var(--fs-3);
        display: flex;
        flex-direction: column;
        height: 100%;
        margin: 0;
        font-family: 'Lato';
        font-family: 'Open Sans', sans-serif;
        font-weight: normal;
        font-style: normal;
        opacity: 1;
        background-color: var(--bg-color-body);
        color: var(--color-body);
        background: url('/img/media/DG_1GEP.svg');
        background-position-x: 0%;
        background-position-y: 0%;
        background-repeat: repeat;
        background-size: auto;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        position: relative;
    }
    .descargar-cartilla{
        position: fixed;
        bottom: 10px;
        right: 10px;
    }

    
        .navbar {
            z-index: 1050;
        }

        .sidebar {
            width: 280px;
            min-height: 100vh;
            background-color: #fff;
            box-shadow: 2px 0 8px rgba(0, 0, 0, 0.05);
            position: fixed;
            top: 56px; /* Altura del navbar */
            left: 0;
            transition: transform 0.3s ease;
            z-index: 1030;
        }

        .sidebar nav a {
            display: flex;
            align-items: center;
            gap: 1rem; /* espacio entre ícono y texto */
            margin-bottom: 1.25rem; /* separación entre elementos */
            text-decoration: none;
            color: #212529; /* texto más fuerte */
            font-weight: 600; /* más negrito */
            font-size: 1rem;
            transition: color 0.2s ease;
        }

        .sidebar nav a:hover {
            color: #d62b2b;
        }

        .sidebar.hidden {
            transform: translateX(-100%);
        }

        /* #main-content {
            margin-left: 280px;
            transition: margin-left 0.3s ease;
            min-height: calc(100vh - 72px);
        } */

        .sidebar.hidden ~ #main-content {
            margin-left: 0;
        }

        .navbar-brand {
            font-weight: bold;
            color: #d62b2b;
        }

        .text-custom-red {
            color: #b62a36;
            font-weight: 600;
            font-size: 1.3rem;
        }


        .sidebar-logo {
            max-width: 180px;
            display: block;
            margin: 0 auto;
        }

/* * * * * * * * * * * * * * * * * */

input:invalid { border: 2px solid red; color: red; }

/* * * * * * * * * * * * * * * * * */
        /* * * * * * * FILE UPLOAD * * * * */
        /* * * * * * * * * * * * * * * * * */
        .file-area {
            width: 100%;
            position: relative;
            /*padding: 2%;*/
            animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
            text-align: center;
        }
        .file-area input[type=file] {
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            opacity: 0;
            cursor: pointer;
            z-index: 1;
        }
        .file-area .file-dummy {
            width: 100%;
            
            /*height: 100%;*/
            background: rgba(255, 255, 255, 0.2);
            border: 2px dashed rgba(0,0,0,0.3);
            border-radius: 7px;
            padding: 0.5rem 2rem;
            
            text-align: center;
            font-size: 15px;
            transition: all 1s;

            display: flex;
            /*
            justify-content: center;
            align-items: center;
            */
        }

        /* - - - */

        .file-area .file-dummy .avatar-img{display: inline-block;}
        .file-area .file-dummy .avatar-img img{
            object-fit: cover;
            width: 200px;
            height: 200px;
            padding: 10px;
        }
        .file-area .file-dummy .success {
        display: none;
        }
        .file-area .file-dummy .default {
        display: inline-block;
        margin: auto;
        }

        /* - - - */

        .file-area:hover .file-dummy {
        background: rgba(220, 220, 220, 0.2);
        }
        .file-area input[type=file]:valid + .file-dummy {
        border: 1px solid rgba(0,0,0,0.3);
        background-color: #fff;
        box-shadow: 1 4px 10px rgba(0,0,0,0) !important;
        }
        .file-area input[type=file]:valid + .file-dummy .success {
        /* display: inline-block; */
        display: none;
        }
        .file-area input[type=file]:valid + .file-dummy .default {
        /* display: none; */
        display: inline-block;
        }

        /* - - - */

        .file-area .avatar-edit {
            position: absolute;
            right: 70px;
            z-index: 1;
            top: 0;
        }
        .file-area .avatar-edit label {
            display: inline-block;
            width: 34px;
            height: 34px;
            margin: 5px;
            padding: 6px;
            border-radius: 100%;
            background: #FFFFFF;
            color:var(--primary-500);
            border: 1px solid;
            border-color: var(--primary-500);
            cursor: pointer;
            transition: all 0.2s ease-in-out;
        }
        .file-area:hover .avatar-edit label {
            color: #222;
            background-color: #fff;
        }
        @media (max-width: 576px) { .file-area .avatar-edit { right: 20px; } .file-area .file-dummy{padding: 1rem 0;}}
        .file-area .file-dummy.avatar { 
            width: 220px !important;
            height: 220px !important;
            border-radius: 100%;
            background-color: #FFFFFF;
            margin: auto;
            justify-content: center;
        }
        .file-area:hover .file-dummy.avatar{
            border: 2px dashed #ececf1;
            background: #ececf1;
        }

        /* * * * * * * * * * * * * * * * * */
        /* * * * * * * Files  * * * * * */
        /* * * * * * * * * * * * * * * * * */

        .file-container{
            display: flex;
            background: #ececec;
            color: #000;
            border: 1px solid #e4e4e4;
        }
        .file-container img{
            width: 100%;
            height: 100%;
        }
        .file-container .doc-type{
            align-items: center;
            display: flex;
            margin: 0px 20px;
        }
        .file-container .doc-info{
            margin: auto 0px;
            text-align: left;
            padding: 10px;
            overflow: hidden;
            
            white-space: nowrap;
            text-overflow: ellipsis;
        }
        .file-container .doc-info .name{   
            font-size: 15px;
            font-weight: 700;
            line-height: 20px;
        }
        .file-container .doc-info .fecha{
            color: #888888;
            font-size: 13px;
            font-weight: 700;
            width: 55px;
            height: 10px;
            
        }
        .file-container .doc-info .options{
            color: #2a2a2a;
            font-size: 13px;
            font-weight: 400;
            width: 50px;
            height: 10px;
        }
        /* * * * * * * * * * * * * * * * * */
        /* * * * * NOTIFICACIONES* * * * * */
        /* * * * * * * * * * * * * * * * * */

        .notification-box {
            box-sizing: border-box;
            position: fixed;
            bottom: 0;
            left: 280px; /* deja espacio del sidebar */
            right: 0;
            padding: 0;
            display: flex;
            flex-direction: column-reverse;
            overflow: hidden;
            align-items: center;
            z-index: 2000; /* mayor que el sidebar y contenido */
            transition: left 0.3s ease;
        }
        .notification-box .Message {
            display: table;
            text-align: center;
            position: relative;
            margin: 5px auto;
            width: 70%;
            color: #fff;
            transition: all 0.2s ease;
            border-radius: 7px;
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.3s ease, transform 0.3s ease;
        }
        .notification-box .Message.opacity-1 {
            opacity: 1;
            transform: translateY(0);
        }

        .notification-box .Message.opacity-0 {
            opacity: 0;
            transform: translateY(30px);
        }
        .notification-box .Message.is-hidden {
            opacity: 0;
            height: 0;
            font-size: 0;
            padding: 0;
            margin: 0 auto;
            display: block;
        }
        .notification-box .Message .Message-icon {
            display: table-cell;
            vertical-align: middle;
            width: 20px;
            padding: 10px 20px;
            text-align: center;
            /**/
            background-color: rgba(0, 0, 0, 0);
            opacity: 0.7;
        }
        .notification-box .Message .Message-body {
            display: table-cell;
            vertical-align: middle;
            padding: 10px 20px 10px 10px;
        }
        .notification-box .Message .Message-body > p {
            line-height: 1;
            font-size: 17px;
            color: #ffffff;
            font-weight: 600;
        }
        .notification-box .Message.bg-warning .Message-icon > svg,
        .notification-box .Message.bg-secondary .Message-icon > svg {
            color: var(--cl-warning);
        }
        .notification-box .Message.bg-warning .Message-body > p,
        .notification-box .Message.bg-secondary .Message-body > p {
            color: var(--cl-warning);
        }
        .notification-box .Message .Message-close {
            position: absolute;
            background-color: rgba(0, 0, 0, 0);
            color: #fff;
            border: none;
            outline: none;
            font-size: 10px;
            right: 5px;
            top: 5px;
            opacity: .8;
            cursor: pointer;
        }
        .notification-box .Message .Message:hover .Message-close {
            opacity: 1;
        }

        .patron{
            width: 100%;
            height: 45px;
            background-image: url('/img/patron.jpg');
            background-repeat: repeat-x;
            background-size: auto 100%;
        }
        .bg-mujeres{
            background-color: rgb(233, 230, 211) !important;
        }

        /* - - - Blur filter - - - */
        .nav-blur{
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            /* height: 3.5rem; */
            height: 100%;
            margin-left: -12px;
            margin-top: -5px;
            margin: auto;
            max-width: 100%;
            z-index: -1;
            overflow: hidden;
                background-color: rgba(233, 230, 211,0.7);
            filter: url("data:image/svg+xml;utf8,<svg height='0' xmlns='http://www.w3.org/2000/svg'><filter id='svgBlur' x='-10%' y='-10%' width='200%' height='200%'><feGaussianBlur in='SourceGraphic' stdDeviation='1'/></filter></svg>#svgBlur");
            filter: progid: DXImageTransform.Microsoft.Blur(PixelRadius = '13');
        }
        /* Soporte backdrop-filter */
        @supports ((backdrop-filter: blur(13px)) or (-webkit-backdrop-filter: blur(13px))) {
            .nav-blur {
                backdrop-filter: saturate(180%) blur(13px);
                -webkit-backdrop-filter: saturate(180%) blur(13px);
                    background-color: rgba(233, 230, 211,0.7);
            }
        }



         /* Estilos RadioBtn tipo usuario */
        input[type=radio].radoption{
            display:none;
            }

            .userBox{
                height: auto;
                width: 100%;
                /*border: 2px solid #bdbdbd; */
                
                color: #FFF;
                border-radius: 4px;
                background-color: #fff;
                border: 2px solid #eee;
                padding: 10px 30px;
                cursor: pointer;
                /**/
                justify-content: center;
                display: flex;
                border-radius: 0 50px;
                    min-width: 250px;
                    transition: ease 0.2s;
                
            }
            .RadioBtnUser .styleLabel{
                position:relative;
                text-align: center;
            }

            .method{
                overflow: auto;
                margin: auto;
                position: absolute;
                top: 0;
                left: 0;
                bottom: 0;
                right: 0;
            }

            .RadioBtnUser input[type=radio].radoption:checked + .styleLabel:before{
                content: "✓";
                background-color: #c9a261;
                color: #fff;
                border-radius: 50%;
                border: 1px solid #c9a261;
                position: absolute;
                top: -15px;
                padding: 6px;
                line-height: 1;
                right: -15px;
                width: 30px;
                height: 30px;
                font-size: 15px;
                z-index: 1;
            }
            .RadioBtnUser input[type=radio].radoption:checked + label .userBox {
                border: solid 5px #c9a261;
                background-color: #f6fbff;
            }
            .metodo-textarea{
                width: 100%;
                padding: 5px 10px;
                border: solid 1px #c7c7c7;
            }

            .userBox h2 {
                font-weight: 800;
                font-size: 30px;
            }
            .discount-text{
            color: #727586; text-decoration: line-through; font-size: 16px; font-weight: 400;
            }
            .userBox .offer-text{
                font-size: 16px;
            }
            .userBox .plan-text {
                font-weight: 400;
                font-size: 14px;
                line-height: 24px;
            }
            .userBox .userBox#productTangible:before {
                content: url("");
            }

            .cardacepted{
            width: 40px !important;
            }


            /* - - - - - - - - - - TEXT HR - - - - - - - - - - */

            .text-hr {
                display: flex;
                align-items: center;
                font-family: sans-serif;
                width: 100%;
                margin: 30px auto;
                color: #a57f2c;
                font-size: 20px;
                font-weight: bold;
            }
            .text-hr::after {
                flex: 1;
                background: #d8be8e;
                content: "";
                height: 2px;
                margin: 0 10px;
            }

            /* - - - - - - - - - cuestionario - - - - - - - - - */
            :root {
        --white: #FFF;
        --green: #00d084;
        --pink: #f03;
        --gold: #d8be8e;
        }
                        ol {
        list-style: none;
        padding: 0;
        }

        label {
        cursor: pointer;
        }

        .switches [type="checkbox"] {
        position: absolute;
        left: -9999px;
        }

        .switches li {
        position: relative;
        counter-increment: switchCounter;
        }

        .switches li:not(:last-child) {
        border-bottom: 1px solid var(--gold);
        }
        .switches label {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 15px 0;
        font-weight: 600;
        }

        .switches span:last-child {
        position: relative;
        width: 50px;
        height: 26px;
        border-radius: 15px;
        background: var(--pink);
        transition: all 0.3s;
        }

        .switches span:last-child::before,
        .switches span:last-child::after {
        content: "";
        position: absolute;
        }

        .switches span:last-child::before {
        left: 1px;
        top: 1px;
        width: 24px;
        height: 24px;
        background: var(--white);
        border-radius: 50%;
        z-index: 1;
        transition: transform 0.3s;
        }

        .switches span:last-child::after {
        top: 30%;
        right: 10px;
        width: 14px;
        height: 15px;
        transform: translateY(-50%);
            content: 'No';
            color: #fff;
            
            font-size: 15px;
            background-size: 12px 12px;
        }
        .switches [type="checkbox"]:checked + label span:last-child {
            background: var(--green);
        }
        .switches [type="checkbox"]:checked + label span:last-child::before {
            transform: translateX(24px);
        }
        .switches [type="checkbox"]:checked + label span:last-child::after {
            width: 14px;
            height: 14px;
            right: auto;
            left: 8px;
            content: 'Si';
            color: #fff;
            background-size: 14px 14px;
            font-size: 15px;
        }
        @media screen and (max-width: 600px) {
            .switches li::before {
                display: none;
            }
        }

        /* - - - - - - - - - - CHECKBOX - - - - - - - - - */
        .columns-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
            gap: 10px;
        }

        .columns-grid .checkbox-tag {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 12px;
            border-radius: 6px;
            background-color: #fff;
            border: 2px solid #ddd;
            cursor: pointer;
            font-weight: 600;
            text-align: center;
            user-select: none;
            transition: background-color 0.2s ease-in-out, border 0.2s ease-in-out;
        }

        .columns-grid input[type="checkbox"] {
            display: none;
        }

        .columns-grid input[type="checkbox"]:checked + label.checkbox-tag {
            background-color: #216d6b;
            color: white;
            border-color: #a57f2c;
        }

        /* - - - - - - - */

        /* * * * * * * * * * * * * * * * * */
        /* * * * * * * * MODAL * * * * * * */
        /* * * * * * * * * * * * * * * * * */

        .modal {
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            opacity: 0;
            pointer-events: none;
            background-color: rgba(0, 0, 0, 0.4);
            -ms-overflow-style: none;
            scrollbar-width: none;
            overflow: -moz-scrollbars-none;
            overflow-y: scroll;
            align-items: center;
            justify-content: center;
            transition: all 400ms ease-in;
            z-index: 6;
        }
        .modal::-webkit-scrollbar{
            display: none;
            width: 0 !important;
            visibility: hidden;
        }
        .modal:target {
            display: flex;
            opacity: 1;
            pointer-events: auto;
            z-index: 9999;
            margin: 0;
            padding: 0;
            transform:translate3d(0px,0px,0px);
            pointer-events: all;
        }
        .modal__inner{
            width: 100%;
            /*height: 97%; */   /* 1 */
            height: calc(100% - 60px);
            top: 0;
            right: 0;
            left: 0;
            bottom: 0;
            /* - - - scroll <3 FIX for IO - - - */
            /* margin: 200px auto; */
            margin: 60px auto; 
            text-align: left;
            overflow-x: hidden;
            overflow-y: hidden;
            align-items: center;
            position: fixed;
            transform:translate3d(0px, 100%, 0px);
            transition: ease-in-out .6s;
            background: rgba(255, 255, 255, 1);
            border-radius: 10px 10px 0px 0px;
        }
        .modal:target .modal__inner {
            display: flex;
            opacity: 1;
            z-index: 1;
            padding: 0;
            transform: translate3d(0px,0px,0px);
            transition: ease-in-out .6s;
            animation: scale-up-ver-bottom 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
            pointer-events: all;    
        }

        .modal:target>.closeoverlay {
            display: block;
        }
        .closeoverlay {
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            opacity: 0;
            display: block;
            z-index: -1;
            position: fixed;
            cursor: pointer;
        }

        .modal__x {
            position: absolute;
            right: 21px;
            top: 21px;
            width: 1.1em;
            height: 1.1em;
            cursor: pointer;
            z-index: 1;
        }
        .modal__x svg { fill: rgba(0,0,0,0.3); transition: all ease-in-out 0.3s; }
        .modal__x:hover svg { fill: rgba(0,0,0,0.7); }

        .modal_header{
            width: 100%;
            height: 55px;
            background-color: #FFF;
            position: fixed;
            z-index: 1;
            top: 0;
            text-align: center;
        }
        .modal_header h1{
            color: var(--text-dark);
            font-size: 17px;
            font-weight: 700;
            overflow-wrap: break-word;
            padding: 27px 17px 0px 17px;
            text-align: center;

        }
        .modal_header::before{
            content: "";
            font-size: 20px;
            position: absolute;
            text-align: center;
            display: flex;
            margin: 0 auto;
            justify-content: center;
            width: 45px;
            background: rgba(0,0,0,0.1);
            height: 3px;
            top: 15px;
            right: 0;
            left: 0;
            border-radius: 10px;
        }

        .modal_body {
            margin: auto 0;
            /* padding: 0 10%; */
            padding: 0 5%;
            overflow-x: hidden;
            overflow-y: auto;
            height: 70%;
            width: 100%;
        }

        .modal_footer {
            width: 100%;
            height: 70px;
            position: fixed;
            bottom: 0;
            text-align: center;
            padding: 10px;
        }

        @media screen and (min-width: 768px) {
            .modal__inner{
                min-width: 600px;
                max-height: 90vh;
                max-width: 60vw;
                width: 80% !important;
                height: 80% !important;
                box-sizing: border-box;
                display: flex;
                margin: auto !important;
                border-radius: 16px !important;
            }
        }