/* ========== RESET & BASE ========== */
        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        :root {
            --red:     #C41230;
            --red-dark:#8B0C20;
            --gold:    #F5C518;
            --gold-dk: #C8A010;
            --dark:    #111111;
            --dark2:   #1C1C1C;
            --gray:    #2E2E2E;
            --muted:   #6B7280;
            --light:   #F8F5F0;
            --white:   #FFFFFF;
            --text:    #1C1915;
            --text-muted: #6B6360;
            --border:  rgba(0,0,0,.1);
            --radius:  10px;
            --shadow:  0 4px 20px rgba(0,0,0,.08);
        }
        html { scroll-behavior: smooth; overflow-x: hidden; }
        body {
            font-family: 'Inter', sans-serif;
            background: var(--light);
            color: var(--text);
            overflow-x: hidden;
            max-width: 100%;
        }
        a { text-decoration: none; color: inherit; }
        img { max-width: 100%; display: block; }
        ul { list-style: none; }

        /* ========== SCROLLBAR ========== */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: #E8E2D8; }
        ::-webkit-scrollbar-thumb { background: var(--red); border-radius: 3px; }

        /* ========== UTILITY ========== */
        .container { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 24px; }
        .section { padding: 90px 0; background: var(--light); }
        .section-alt { background: #FFFFFF; }
        .tag {
            display: inline-flex; align-items: center; gap: 8px;
            background: rgba(196,18,48,.08); border: 1px solid rgba(196,18,48,.3);
            color: var(--red); font-size: .75rem; font-weight: 700;
            letter-spacing: .12em; text-transform: uppercase;
            padding: 6px 16px; border-radius: 50px; margin-bottom: 18px;
        }
        .section-title {
            font-size: clamp(1.9rem, 4vw, 2.9rem);
            font-weight: 800; line-height: 1.15;
            margin-bottom: 16px; color: var(--text);
        }
        .section-title span { color: var(--red); }
        .section-sub { color: var(--text-muted); font-size: 1.05rem; line-height: 1.7; max-width: 620px; }
        .btn {
            display: inline-flex; align-items: center; gap: 10px;
            padding: 14px 28px; border-radius: 8px;
            font-weight: 700; font-size: .95rem; cursor: pointer;
            transition: all .25s ease; border: 2px solid transparent;
            white-space: nowrap;
        }
        .btn-primary {
            background: var(--red); color: var(--white);
            border-color: var(--red);
        }
        .btn-primary:hover { background: var(--red-dark); border-color: var(--red-dark); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(196,18,48,.35); }
        .btn-gold {
            background: var(--gold); color: var(--dark);
            border-color: var(--gold);
        }
        .btn-gold:hover { background: var(--gold-dk); border-color: var(--gold-dk); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(245,197,24,.35); }
        .btn-outline {
            background: transparent; color: var(--white);
            border-color: rgba(255,255,255,.35);
        }
        .btn-outline:hover { border-color: var(--white); background: rgba(255,255,255,.08); transform: translateY(-2px); }
        .btn-outline-dark {
            background: transparent; color: var(--text);
            border-color: rgba(0,0,0,.2);
        }
        .btn-outline-dark:hover { border-color: var(--red); color: var(--red); transform: translateY(-2px); }
        .btn-whatsapp {
            background: #25D366; color: var(--white);
            border-color: #25D366;
        }
        .btn-whatsapp:hover { background: #1DA851; border-color: #1DA851; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(37,211,102,.35); }

        /* ========== NAVBAR ========== */
        #navbar {
            position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
            width: 100%; max-width: 100vw; overflow: hidden;
            transition: all .35s ease;
        }
        #navbar.scrolled {
            background: rgba(17,17,17,.97);
            backdrop-filter: blur(12px);
            box-shadow: 0 2px 20px rgba(0,0,0,.4);
            border-bottom: 1px solid rgba(196,18,48,.3);
        }
        .nav-inner {
            display: flex; align-items: center; justify-content: space-between;
            padding: 14px 56px; max-width: 1600px; margin: 0 auto; gap: 40px;
        }
        .nav-logo { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
        .nav-logo-icon {
            width: 46px; height: 46px;
            background: var(--red); border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.3rem; font-weight: 900; font-family: 'Bebas Neue', sans-serif;
            letter-spacing: .04em; color: var(--gold);
            box-shadow: 0 0 0 2px rgba(245,197,24,.3);
        }
        .nav-logo-text { line-height: 1.1; }
        .nav-logo-text strong {
            display: block; font-size: 1.15rem; font-weight: 900;
            letter-spacing: .08em; color: var(--gold);
        }
        .nav-logo-text span { font-size: .65rem; color: #9CA3AF; letter-spacing: .06em; text-transform: uppercase; }
        .nav-links { display: flex; align-items: center; gap: 40px; flex: 1; justify-content: center; }
        .nav-links a {
            font-size: .9rem; font-weight: 500; color: #D1D5DB;
            transition: color .2s; position: relative; white-space: nowrap;
        }
        .nav-links a::after {
            content: ''; position: absolute; left: 0; bottom: -4px;
            width: 0; height: 2px; background: var(--red);
            transition: width .25s;
        }
        .nav-links a:hover { color: var(--white); }
        .nav-links a:hover::after { width: 100%; }
        .nav-cta { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
        .hamburger {
            display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px;
            background: transparent; border: 0; box-shadow: none; appearance: none;
        }
        .hamburger span { display: block; width: 24px; height: 2px; background: var(--gold); transition: all .3s; border-radius: 2px; }
        .hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
        .hamburger.open span:nth-child(2) { opacity: 0; }
        .hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }
        .mobile-menu {
            display: none; flex-direction: column; gap: 0;
            background: rgba(17,17,17,.98); border-top: 1px solid rgba(196,18,48,.25);
            padding: 16px 24px 24px;
        }
        .mobile-menu.open { display: flex; }
        .mobile-menu a {
            padding: 12px 0; font-size: .95rem; color: #D1D5DB;
            border-bottom: 1px solid rgba(255,255,255,.07);
            font-weight: 500;
        }
        .mobile-menu a:last-child { border-bottom: none; }
        .mobile-menu .btn { margin-top: 16px; justify-content: center; }

        /* ========== HERO ========== */
        #hero {
            min-height: 100vh;
            background: #111;
            display: flex; align-items: center;
            position: relative; overflow: hidden;
            padding-top: 90px;
            padding-bottom: 90px;
        }
        /* Video de fondo del hero */
        .hero-video {
            position: absolute; top: 0; left: 0;
            width: 100%; height: 100%;
            object-fit: cover; z-index: 0;
        }
        /* Overlay oscuro sobre el video */
        .hero-overlay {
            position: absolute; inset: 0;
            background: linear-gradient(135deg, rgba(10,10,10,.88) 0%, rgba(139,12,32,.60) 55%, rgba(10,10,10,.85) 100%);
            z-index: 1;
        }
        .hero-bg-shape {
            position: absolute; right: -100px; top: -80px;
            width: 700px; height: 700px; border-radius: 50%;
            background: radial-gradient(circle, rgba(196,18,48,.2) 0%, transparent 70%);
            pointer-events: none; z-index: 2;
        }
        .hero-bg-shape2 {
            position: absolute; left: -150px; bottom: -120px;
            width: 500px; height: 500px; border-radius: 50%;
            background: radial-gradient(circle, rgba(245,197,24,.07) 0%, transparent 70%);
            pointer-events: none; z-index: 2;
        }

        /* ========== VIDEO PRINCIPAL ========== */
        .vp-main {
            position: relative; height: 560px; overflow: hidden;
            background: #0d0508;
        }
        .vp-main-video {
            position: absolute; top: 0; left: 0;
            width: 100%; height: 100%; object-fit: cover;
        }
        .vp-main-overlay {
            position: absolute; inset: 0;
            background: linear-gradient(135deg, rgba(5,5,5,.82) 0%, rgba(139,12,32,.55) 50%, rgba(5,5,5,.75) 100%);
            z-index: 1;
        }
        .vp-main-content {
            position: absolute; inset: 0; z-index: 2;
            display: flex; flex-direction: column;
            align-items: center; justify-content: center;
            text-align: center; padding: 40px 24px; gap: 20px;
        }
        .vp-main-tag {
            display: inline-flex; align-items: center; gap: 8px;
            background: rgba(245,197,24,.15); border: 1px solid rgba(245,197,24,.4);
            color: var(--gold); font-size: .75rem; font-weight: 700;
            letter-spacing: .12em; text-transform: uppercase;
            padding: 7px 18px; border-radius: 50px;
        }
        .vp-main-title {
            font-size: clamp(2.6rem, 6vw, 4.8rem);
            font-weight: 900; color: var(--white);
            line-height: 1.05; letter-spacing: -.02em;
            text-shadow: 0 4px 24px rgba(0,0,0,.5);
        }
        .vp-main-title span { color: var(--gold); }
        .vp-main-sub {
            font-size: clamp(.9rem, 1.8vw, 1.15rem);
            color: rgba(255,255,255,.8); max-width: 520px; line-height: 1.6;
        }

        /* ========== VIDEO PANELS ========== */
        .video-panels {
            display: grid; grid-template-columns: repeat(4, 1fr);
            height: 400px;
        }
        .video-panels--three {
            grid-template-columns: repeat(3, 1fr);
        }
        .vp-item {
            position: relative; overflow: hidden; cursor: pointer;
            background: #0d0508;
        }
        .vp-item-link {
            display: block;
            color: inherit;
            text-decoration: none;
        }
        .vp-item-link:focus-visible {
            outline: 2px solid var(--gold);
            outline-offset: -2px;
        }
        .vp-item video,
        .vp-item .vp-media {
            position: absolute; top: 0; left: 0;
            width: 100%; height: 100%; object-fit: cover;
            transition: transform .7s ease;
        }
        .vp-item:hover video,
        .vp-item:hover .vp-media { transform: scale(1.1); }
        .vp-overlay {
            position: absolute; inset: 0; z-index: 1;
            background: linear-gradient(160deg, rgba(139,12,32,.5) 0%, rgba(0,0,0,.75) 100%);
            transition: opacity .35s;
        }
        .vp-item:hover .vp-overlay { opacity: .85; }

        /* Colored borders */
        .vp-border-gold { box-shadow: inset 0 0 0 4px #F5C518; }
        .vp-border-blue  { box-shadow: inset 0 0 0 4px #3b82f6; }
        .vp-border-red   { box-shadow: inset 0 0 0 4px #C41230; }

        /* Dimmed card */
        .vp-dimmed .vp-media { filter: grayscale(60%) brightness(.6); }
        .vp-dimmed .vp-label { opacity: .65; }

        /* top accent line */
        .vp-item::after {
            content: ''; position: absolute; top: 0; left: 0; right: 0;
            height: 3px; background: linear-gradient(90deg, var(--red), var(--gold));
            z-index: 4; transform: scaleX(0); transition: transform .35s ease;
        }
        .vp-item:hover::after { transform: scaleX(1); }
        .vp-label {
            position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
            padding: 0 28px 32px;
            background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.0) 100%);
            display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
            transform: translateY(12px); transition: transform .35s ease;
        }
        .vp-item:hover .vp-label { transform: translateY(0); }
        .vp-icon {
            width: 52px; height: 52px; border-radius: 14px;
            background: rgba(245,197,24,.15); border: 1.5px solid rgba(245,197,24,.4);
            display: flex; align-items: center; justify-content: center;
            font-size: 1.4rem; color: var(--gold);
            transition: background .3s, transform .3s;
            margin-bottom: 4px;
        }
        .vp-item:hover .vp-icon { background: rgba(245,197,24,.28); transform: scale(1.08); }
        .vp-icon.vp-icon-logo {
            width: auto;
            height: auto;
            padding: 0;
            background: transparent;
            border: 0;
            border-radius: 0;
            margin-bottom: 6px;
        }
        .vp-icon.vp-icon-logo img {
            width: 66px;
            height: 66px;
            object-fit: contain;
            display: block;
            border-radius: 12px;
        }
        .vp-item:hover .vp-icon.vp-icon-logo {
            background: transparent;
            transform: scale(1.05);
        }
        .vp-title {
            font-size: 1.05rem; font-weight: 800; color: var(--white);
            letter-spacing: .02em; line-height: 1.2;
            text-shadow: 0 2px 10px rgba(0,0,0,.6);
        }
        .vp-desc {
            font-size: .78rem; color: rgba(255,255,255,.72);
            font-weight: 400; line-height: 1.4;
            opacity: 0; transform: translateY(6px);
            transition: opacity .3s .1s, transform .3s .1s;
        }
        .vp-item:hover .vp-desc { opacity: 1; transform: translateY(0); }

        /* ========== OPERACIÓN MÁQUINA PESADA ========== */
        .opm-section {
            background: #FFFFFF;
            border-top: 1px solid var(--border);
            border-bottom: 1px solid var(--border);
        }
        .opm-section.is-hidden { display: none; }
        #operacion-maquina-pesada { scroll-margin-top: 92px; }
        .opm-head { margin-bottom: 30px; }
        .opm-back-btn { margin: 4px 0 4px; }
        .opm-offer-block { margin-bottom: 28px; }
        .opm-offer-title {
            font-size: 1.02rem;
            font-weight: 800;
            color: var(--text);
            margin-bottom: 12px;
        }
        .opm-offer-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 12px;
        }
        .opm-offer-card {
            background: linear-gradient(180deg, #FFD84C 0%, #F5C518 100%);
            border: 1px solid #E1B312;
            border-radius: 12px;
            padding: 12px 14px;
            box-shadow: 0 8px 18px rgba(245,197,24,.28);
        }
        .opm-offer-tag {
            display: inline-block;
            background: #111111;
            color: #FFFFFF;
            border-radius: 6px;
            font-size: .7rem;
            font-weight: 900;
            letter-spacing: .08em;
            padding: 3px 8px;
            margin-bottom: 8px;
        }
        .opm-offer-card h4 {
            margin: 0 0 6px;
            font-size: .95rem;
            line-height: 1.25;
            font-weight: 900;
            color: #111111;
        }
        .opm-offer-card p {
            margin: 0;
            font-size: .8rem;
            line-height: 1.35;
            font-weight: 700;
            color: rgba(17,17,17,.86);
        }
        .opm-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 16px;
        }
        .opm-card {
            background: #FFFFFF;
            border: 1px solid var(--border);
            border-radius: 14px;
            padding: 22px 18px;
            box-shadow: var(--shadow);
            transition: border-color .25s, transform .25s, box-shadow .25s;
        }
        .opm-card:hover {
            border-color: rgba(196,18,48,.35);
            transform: translateY(-3px);
            box-shadow: 0 10px 28px rgba(196,18,48,.12);
        }
        .opm-card i {
            width: 44px;
            height: 44px;
            border-radius: 10px;
            border: 1px solid rgba(196,18,48,.2);
            background: rgba(196,18,48,.08);
            color: var(--red);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            margin-bottom: 12px;
        }
        .opm-card h4 {
            font-size: .98rem;
            font-weight: 800;
            color: var(--text);
            margin-bottom: 8px;
        }
        .opm-card p {
            font-size: .84rem;
            line-height: 1.55;
            color: var(--text-muted);
        }
        .opm-actions {
            margin-top: 26px;
            display: flex;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
        }

        /* ========== OPERACIÓN: AVALADOS Y CERTIFICADOS ========== */
        .opm-cert-section {
            margin-top: 58px;
            padding-top: 12px;
        }
        .opm-cert-head {
            text-align: center;
            max-width: 860px;
            margin: 0 auto 26px;
        }
        .opm-cert-head .tag { margin-bottom: 12px; }
        .opm-cert-head h3 {
            font-size: clamp(2rem, 4vw, 3rem);
            font-weight: 900;
            color: var(--text);
            line-height: 1.1;
            margin: 0 0 10px;
        }
        .opm-cert-head h3 span { color: var(--red); }
        .opm-cert-head p {
            margin: 0 auto;
            max-width: 740px;
            font-size: 1rem;
            color: var(--text-muted);
            line-height: 1.6;
        }
        .opm-cert-highlight {
            max-width: 920px;
            margin: 0 auto 30px;
            border-radius: 18px;
            padding: 18px 22px;
            background: linear-gradient(135deg, var(--red) 0%, var(--red-dark) 100%);
            color: #fff;
            display: flex;
            align-items: center;
            gap: 16px;
            box-shadow: 0 14px 34px rgba(196,18,48,.28);
        }
        .opm-cert-highlight i {
            font-size: 2rem;
            color: var(--gold);
            flex-shrink: 0;
        }
        .opm-cert-highlight strong {
            display: block;
            font-size: 1.08rem;
            font-weight: 900;
            margin-bottom: 4px;
        }
        .opm-cert-highlight p {
            margin: 0;
            color: rgba(255,255,255,.9);
            font-size: .96rem;
            line-height: 1.45;
        }
        .opm-cert-official {
            background: #FFFFFF;
            border: 1px solid rgba(196,18,48,.24);
            border-radius: 18px;
            padding: 18px;
            display: grid;
            grid-template-columns: 120px 1fr 120px;
            align-items: center;
            gap: 16px;
            margin-bottom: 20px;
        }
        .opm-cert-logo-box {
            width: 106px;
            height: 106px;
            border-radius: 14px;
            border: 1px solid var(--border);
            background: #F7F7F7;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 10px;
        }
        .opm-cert-logo-box img {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }
        .opm-cert-chip {
            display: inline-block;
            font-size: .72rem;
            font-weight: 900;
            color: var(--red);
            letter-spacing: .08em;
            border: 1px solid rgba(196,18,48,.25);
            border-radius: 999px;
            background: rgba(196,18,48,.08);
            padding: 5px 12px;
            margin-bottom: 8px;
        }
        .opm-cert-official-body h4 {
            margin: 0 0 6px;
            font-size: 1.05rem;
            font-weight: 900;
            color: var(--text);
        }
        .opm-cert-official-body p {
            margin: 0;
            font-size: .96rem;
            color: var(--text-muted);
            line-height: 1.55;
        }
        .opm-cert-seal {
            border-left: 1px solid rgba(0,0,0,.12);
            padding-left: 14px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 6px;
            color: var(--red);
            text-transform: uppercase;
            font-weight: 900;
            letter-spacing: .06em;
            font-size: .72rem;
            text-align: center;
        }
        .opm-cert-seal i { font-size: 2rem; }
        .opm-cert-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 14px;
        }
        .opm-cert-card {
            background: #FFFFFF;
            border: 1px solid var(--border);
            border-radius: 18px;
            padding: 14px 14px 16px;
            box-shadow: var(--shadow);
        }
        .opm-cert-thumb {
            height: 86px;
            border: 1px solid var(--border);
            background: #F7F7F7;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 10px;
            margin-bottom: 12px;
        }
        .opm-cert-thumb img {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }
        .opm-cert-pill {
            display: inline-block;
            font-size: .69rem;
            font-weight: 900;
            letter-spacing: .07em;
            border-radius: 999px;
            padding: 4px 10px;
            border: 1px solid rgba(245,197,24,.45);
            background: rgba(245,197,24,.2);
            color: #8A6D00;
            margin-bottom: 8px;
            text-transform: uppercase;
        }
        .opm-cert-pill-blue {
            border-color: rgba(29,111,164,.3);
            background: rgba(29,111,164,.1);
            color: #1D6FA4;
        }
        .opm-cert-card h5 {
            margin: 0 0 6px;
            font-size: 1.02rem;
            font-weight: 800;
            color: var(--text);
        }
        .opm-cert-card p {
            margin: 0;
            font-size: .84rem;
            line-height: 1.5;
            color: var(--text-muted);
        }

        /* Modo "nueva página" para Operación */
        body.opm-page-mode #navbar,
        body.opm-page-mode .vp-main,
        body.opm-page-mode .video-panels,
        body.opm-page-mode .stats-bar-gold,
        body.opm-page-mode .red-divider,
        body.opm-page-mode #nosotros,
        body.opm-page-mode #metodologia,
        body.opm-page-mode #sedes,
        body.opm-page-mode #contacto,
        body.opm-page-mode footer {
            display: none !important;
        }
        body.opm-page-mode .opm-section {
            display: block !important;
            min-height: 100vh;
            border-top: 0;
        }
        body.opm-page-mode .wa-float { z-index: 999; }
        .hero-content {
            position: relative; z-index: 3;
            display: grid; grid-template-columns: 1fr 1fr; gap: 60px;
            align-items: center; width: 100%;
        }
        .hero-left {}
        .hero-badge {
            display: inline-flex; align-items: center; gap: 8px;
            background: rgba(245,197,24,.12); border: 1px solid rgba(245,197,24,.3);
            color: var(--gold); font-size: .75rem; font-weight: 700;
            letter-spacing: .1em; text-transform: uppercase;
            padding: 6px 16px; border-radius: 50px; margin-bottom: 24px;
        }
        .hero-badge i { font-size: .7rem; }
        .hero-h1 {
            font-size: clamp(2rem, 5vw, 3.4rem);
            font-weight: 900; line-height: 1.08;
            margin-bottom: 20px; letter-spacing: -.02em; color: var(--white);
        }
        .hero-h1 .line-red { color: var(--red); display: block; }
        .hero-h1 .line-gold { color: var(--gold); display: block; }
        .hero-sub {
            font-size: 1.05rem; color: #D1D5DB; line-height: 1.7;
            margin-bottom: 32px; max-width: 480px;
        }
        .hero-bullets { margin-bottom: 40px; display: flex; flex-direction: column; gap: 12px; }
        .hero-bullet {
            display: flex; align-items: center; gap: 12px;
            font-size: .95rem; color: #E5E7EB;
        }
        .hero-bullet i {
            width: 28px; height: 28px; border-radius: 50%;
            background: rgba(196,18,48,.2); border: 1px solid rgba(196,18,48,.4);
            display: flex; align-items: center; justify-content: center;
            color: var(--gold); font-size: .75rem; flex-shrink: 0;
        }
        .hero-btns {
            display: grid;
            grid-template-columns: repeat(2, minmax(220px, 1fr));
            gap: 14px;
            max-width: 620px;
        }
        .hero-btns .btn {
            width: 100%;
            min-height: 56px;
            justify-content: center;
        }
        .hero-btns .btn:last-child { grid-column: 1 / -1; }
        /* Right panel */
        .hero-right {
            display: flex; flex-direction: column; gap: 20px;
        }
        .hero-card {
            background: rgba(255,255,255,.04);
            border: 1px solid rgba(255,255,255,.1);
            border-radius: 16px; padding: 28px;
            backdrop-filter: blur(8px);
        }
        .hero-card-title {
            font-size: .75rem; font-weight: 700; letter-spacing: .1em;
            text-transform: uppercase; color: var(--gold); margin-bottom: 16px;
        }
        .contact-form-group { margin-bottom: 14px; }
        .contact-form-group label {
            display: block; font-size: .8rem; color: #9CA3AF;
            margin-bottom: 6px; font-weight: 500;
        }
        .contact-form-group input,
        .contact-form-group select,
        .contact-form-group textarea {
            width: 100%; background: rgba(255,255,255,.06);
            border: 1px solid rgba(255,255,255,.12); border-radius: 8px;
            color: var(--white); font-size: .9rem; padding: 11px 14px;
            font-family: inherit; outline: none;
            transition: border-color .2s;
        }
        .contact-form-group input:focus,
        .contact-form-group select:focus,
        .contact-form-group textarea:focus { border-color: var(--red); }
        .contact-form-group select option { background: #1C1C1C; color: var(--white); }
        .contact-form-group textarea { resize: vertical; min-height: 80px; }
        .hero-stats {
            display: grid; grid-template-columns: repeat(3,1fr); gap: 1px;
            background: rgba(255,255,255,.08); border-radius: 12px; overflow: hidden;
        }
        .hero-stat {
            background: rgba(255,255,255,.04); padding: 16px 12px; text-align: center;
        }
        .hero-stat strong {
            display: block; font-size: 1.5rem; font-weight: 900;
            color: var(--gold); line-height: 1;
        }
        .hero-stat span { font-size: .72rem; color: #9CA3AF; margin-top: 4px; display: block; }

        /* ========== STATS BAR ========== */
        .stats-bar {
            background: var(--red);
            padding: 0;
        }
        .stats-bar-gold {
            background: var(--gold);
            padding: 0;
        }
        .stats-bar-nosotros {
            margin-top: 32px;
        }
        .stats-bar-gold .stat-item { border-right-color: rgba(0,0,0,.15); }
        .stats-bar-gold .stat-icon { background: rgba(0,0,0,.12); color: #111; }
        .stats-bar-gold .stat-info strong { color: #111; font-size: 1.35rem; }
        .stats-bar-gold .stat-info span { color: #111; font-weight: 500; }
        .stats-bar-inner {
            display: grid; grid-template-columns: repeat(5,1fr);
        }
        .stat-item {
            display: flex; align-items: center; gap: 10px;
            padding: 28px 16px; border-right: 1px solid rgba(255,255,255,.2);
        }
        .stat-item:last-child { border-right: none; }
        .stat-icon {
            width: 46px; height: 46px; border-radius: 10px;
            background: rgba(255,255,255,.15);
            display: flex; align-items: center; justify-content: center;
            font-size: 1.2rem; flex-shrink: 0; color: var(--white);
        }
        .stat-info strong { display: block; font-size: 1.65rem; font-weight: 900; line-height: 1; color: var(--white); }
        .stat-info span { font-size: .78rem; color: rgba(255,255,255,.8); }

        /* Nosotros sin padding-top para que la barra quede pegada */
        #nosotros { padding-top: 0; }
        #nosotros .container { padding-top: 60px; }

        /* ========== MODALIDADES BAR ========== */
        .modalidades-bar {
            display: flex;
            background: var(--gold);
            border-bottom: 4px solid var(--red);
            overflow-x: auto;
        }
        .mod-col {
            flex: 1;
            min-width: 170px;
            padding: 18px 20px;
            border-right: 1px solid rgba(0,0,0,.12);
        }
        .mod-col:last-child { border-right: none; }
        .mod-col--formacion {
            background: rgba(0,0,0,.10);
            min-width: 140px;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 8px;
        }
        .mod-col--intro {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .mod-col--presencial { border-left: 3px solid rgba(0,0,0,.2); }
        .mod-col--semipresencial { border-left: 3px solid rgba(0,0,0,.2); }
        .mod-col--virtual { border-left: 3px solid rgba(0,0,0,.2); }
        /* Icono principal */
        .mod-icon {
            width: 36px; height: 36px;
            background: rgba(0,0,0,.12);
            border-radius: 8px;
            display: flex; align-items: center; justify-content: center;
            font-size: .95rem;
            color: var(--dark);
            margin-bottom: 6px;
        }
        .mod-icon--sm { width: 28px; height: 28px; font-size: .8rem; margin-bottom: 0; }
        /* Header de columna con icono + título en fila */
        .mod-col-header {
            display: flex; align-items: center; gap: 8px;
            margin-bottom: 8px;
        }
        .mod-col strong {
            display: block;
            font-family: 'Inter', sans-serif;
            font-size: .9rem;
            font-weight: 800;
            color: var(--dark);
        }
        .mod-col--intro strong { font-size: .95rem; }
        .mod-col > span {
            display: block;
            font-size: .75rem;
            color: rgba(0,0,0,.65);
        }
        /* Horario */
        .mod-schedule {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            font-size: .72rem;
            font-weight: 600;
            color: var(--dark);
            background: rgba(0,0,0,.1);
            border-radius: 20px;
            padding: 2px 10px;
            margin-bottom: 8px;
        }
        /* Lista items */
        .mod-col ul {
            margin: 0; padding: 0; list-style: none;
            display: flex; flex-direction: column; gap: 3px;
        }
        .mod-col ul li {
            font-size: .75rem;
            color: var(--dark);
            display: flex; align-items: center; gap: 6px;
        }
        .mod-col ul li i { font-size: .6rem; color: var(--red); flex-shrink: 0; }
        /* Pills formación */
        .mod-pills { display: flex; flex-direction: column; gap: 4px; }
        .mod-pill {
            background: rgba(0,0,0,.15);
            border-radius: 20px;
            padding: 3px 10px;
            font-size: .75rem;
            font-weight: 700;
            color: var(--dark);
        }

        /* ========== VALORES INSTITUCIONALES ========== */
        .valores-grid {
            margin-top: 36px;
        }
        .valores-header {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            background: var(--dark);
            color: #fff;
            padding: 14px 24px;
            border-radius: 12px 12px 0 0;
        }
        .valores-header i { color: var(--gold); font-size: 1rem; }
        .valores-header strong {
            font-size: 1rem;
            font-weight: 700;
            letter-spacing: .5px;
        }
        .valores-cols {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            border: 1px solid var(--border);
            border-top: none;
            border-radius: 0 0 12px 12px;
            overflow: hidden;
        }
        .valor-item {
            padding: 24px 20px;
            border-right: 1px solid var(--border);
            background: #fff;
            transition: background .2s;
        }
        .valor-item:hover { background: #fafafa; }
        .valor-item:last-child { border-right: none; }
        .valor-icon {
            width: 42px; height: 42px;
            background: rgba(196,18,48,.08);
            border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.1rem;
            color: var(--red);
            margin-bottom: 12px;
        }
        .valor-item strong {
            display: block;
            font-size: .9rem;
            font-weight: 700;
            color: var(--dark);
            margin-bottom: 8px;
        }
        .valor-item p {
            font-size: .8rem;
            color: #555;
            line-height: 1.6;
            margin: 0;
        }
        @media (max-width: 900px) {
            .valores-cols { grid-template-columns: repeat(2, 1fr); }
            .valor-item:nth-child(2) { border-right: none; }
            .valor-item:nth-child(3) { border-top: 1px solid var(--border); }
            .valor-item:nth-child(4) { border-top: 1px solid var(--border); border-right: none; }
        }
        @media (max-width: 520px) {
            .valores-cols { grid-template-columns: 1fr; }
            .valor-item { border-right: none; border-top: 1px solid var(--border); }
            .modalidades-bar { flex-wrap: wrap; }
            .mod-col { min-width: 48%; }
        }

        /* ========== ABOUT ========== */
        .about-story-module {
            margin-bottom: 56px;
        }
        .about-story-module-head {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 10px;
            margin-bottom: 18px;
        }
        .about-story-module .tag { margin: 0; }
        .about-story-module-sub {
            margin: 0;
            color: var(--text-muted);
            font-size: 1rem;
            font-weight: 500;
            line-height: 1.65;
            max-width: 760px;
        }
        .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
        .about-visual {
            position: relative;
        }
        .about-main-box {
            background: linear-gradient(135deg, var(--red-dark), var(--red));
            border-radius: 20px; padding: 0; text-align: center;
            position: relative; overflow: hidden;
        }
        /* ---- Photo carousel ---- */
        .about-photo-reel {
            position: relative; height: 260px; overflow: hidden;
            border-radius: 20px 20px 0 0;
        }
        .about-photo-reel img {
            position: absolute; inset: 0;
            width: 100%; height: 100%; object-fit: cover;
            opacity: 1;
        }
        @keyframes kenBurns {
            0%   { transform: scale(1)    translateX(0)    translateY(0); }
            25%  { transform: scale(1.06) translateX(-1%)  translateY(-1%); }
            50%  { transform: scale(1.1)  translateX(1%)   translateY(-2%); }
            75%  { transform: scale(1.06) translateX(-1%)  translateY(1%); }
            100% { transform: scale(1)    translateX(0)    translateY(0); }
        }
        .about-photo-reel img:nth-child(1) { animation: kenBurns 12s ease-in-out infinite; }
        .about-photo-reel::after {
            content: '';
            position: absolute; inset: 0;
            background: linear-gradient(
                to bottom,
                rgba(0,0,0,.05) 0%,
                rgba(17,17,17,.0) 50%,
                rgba(139,12,32,.85) 100%
            );
            pointer-events: none;
        }
        /* ---- Card text below photo ---- */
        .about-card-body {
            padding: 28px 36px 36px;
            position: relative;
            background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40"><circle cx="20" cy="20" r="1" fill="%23ffffff15"/></svg>');
        }
        .about-main-box h3 { font-size: 1.3rem; font-weight: 800; margin-bottom: 8px; color: var(--white); }
        .about-main-box p { font-size: .9rem; color: rgba(255,255,255,.85); line-height: 1.6; }

        /* ---- Presentación, Misión, Visión (sobre título) ---- */
        .about-story-inline {
            margin: 0;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 16px;
        }
        .about-story-inline-item {
            background: #FFFFFF;
            border: 1px solid var(--border);
            border-radius: 14px;
            padding: 18px 18px 16px;
            box-shadow: var(--shadow);
            transition: border-color .25s, box-shadow .25s, transform .25s;
        }
        .about-story-inline-item:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 26px rgba(196,18,48,.1);
            border-color: rgba(196,18,48,.35);
        }
        .about-story-inline-item h4 {
            margin: 0 0 9px;
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 1rem;
            font-weight: 800;
            color: var(--text);
        }
        .about-story-inline-item h4 i {
            width: 24px;
            height: 24px;
            border-radius: 8px;
            background: rgba(196,18,48,.08);
            border: 1px solid rgba(196,18,48,.2);
            color: var(--red);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: .74rem;
            flex-shrink: 0;
        }
        .about-story-inline-item p {
            margin: 0;
            font-size: .92rem;
            line-height: 1.58;
            color: var(--text-muted);
        }
        /* ========== MISIÓN & VISIÓN — tarjetas premium ========== */
        .mv-row-single {
            display: flex;
            justify-content: center;
            margin-bottom: 24px;
        }
        .mv-row-single .mv-card {
            width: 100%;
            max-width: 620px;
        }
        .mv-cards {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 24px;
            margin-bottom: 0;
        }
        .mv-card {
            position: relative;
            overflow: hidden;
            border-radius: 28px;
            padding: 44px 40px 36px;
            display: flex;
            flex-direction: column;
            min-height: 310px;
            transition: transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s;
        }
        /* Brillo sutil en la parte superior */
        .mv-card::before {
            content: '';
            position: absolute;
            top: 0; left: 10%; right: 10%;
            height: 1px;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
            pointer-events: none;
        }
        .mv-card:hover { transform: translateY(-6px); }

        /* Círculos decorativos de fondo */
        .mv-card-bg-circle {
            position: absolute;
            border-radius: 50%;
            pointer-events: none;
        }
        .mv-card-bg-circle::before {
            content: '';
            position: absolute;
            border-radius: 50%;
        }

        /* ── PRESENTACIÓN (negro) ── */
        .mv-card--presentacion {
            background: linear-gradient(145deg, #1a1a1a 0%, #0d0d0d 55%, #000000 100%);
            box-shadow: 0 20px 56px rgba(0,0,0,.65), 0 4px 12px rgba(0,0,0,.4);
            border: 1px solid rgba(245,197,24,.2);
        }
        .mv-card--presentacion:hover {
            box-shadow: 0 30px 72px rgba(0,0,0,.75), 0 6px 16px rgba(245,197,24,.18);
        }
        .mv-card--presentacion .mv-card-bg-circle {
            width: 280px; height: 280px;
            right: -70px; bottom: -70px;
            background: radial-gradient(circle, rgba(245,197,24,.1) 0%, transparent 70%);
        }
        .mv-card--presentacion::after {
            content: '';
            position: absolute;
            width: 140px; height: 140px;
            border-radius: 50%;
            top: -45px; left: -45px;
            background: rgba(245,197,24,.06);
            pointer-events: none;
        }
        /* Línea de brillo dorado en la parte superior */
        .mv-card--presentacion::before {
            background: linear-gradient(90deg, transparent, rgba(245,197,24,.5), transparent) !important;
        }
        .mv-card--presentacion .mv-label      { color: #F5C518; }
        .mv-card--presentacion .mv-card-text  { color: rgba(255,255,255,.88); }
        .mv-card--presentacion .mv-divider    { background: linear-gradient(90deg, #F5C518, rgba(245,197,24,.25)); }
        .mv-icon-wrap--presentacion {
            background: rgba(245,197,24,.14);
            border: 1.5px solid rgba(245,197,24,.35);
            color: #F5C518;
            box-shadow: 0 4px 14px rgba(0,0,0,.25);
        }

        /* ── MISIÓN (rojo) ── */
        .mv-card--mision {
            background: linear-gradient(145deg, #D0122F 0%, #8B0D20 60%, #6a0918 100%);
            box-shadow: 0 20px 56px rgba(196,18,48,.38), 0 4px 12px rgba(196,18,48,.2);
        }
        .mv-card--mision:hover {
            box-shadow: 0 30px 72px rgba(196,18,48,.48), 0 6px 16px rgba(196,18,48,.25);
        }
        /* Círculo grande fondo */
        .mv-card--mision .mv-card-bg-circle {
            width: 260px; height: 260px;
            right: -70px; bottom: -70px;
            background: radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 70%);
        }
        /* Círculo pequeño esquina superior izquierda */
        .mv-card--mision::after {
            content: '';
            position: absolute;
            width: 120px; height: 120px;
            border-radius: 50%;
            top: -40px; left: -40px;
            background: rgba(255,255,255,.06);
            pointer-events: none;
        }
        .mv-card--mision .mv-label      { color: #fff; }
        .mv-card--mision .mv-card-text  { color: rgba(255,255,255,.9); }
        .mv-card--mision .mv-divider    { background: linear-gradient(90deg, #F5C518, rgba(245,197,24,.3)); }
        .mv-icon-wrap--mision {
            background: rgba(255,255,255,.14);
            border: 1.5px solid rgba(255,255,255,.28);
            color: #fff;
            box-shadow: 0 4px 14px rgba(0,0,0,.15);
        }
        .mv-card--mision .mv-card-footer {
            color: rgba(255,255,255,.65);
            border-color: rgba(255,255,255,.18);
        }
        .mv-card--mision .mv-card-footer i { color: #F5C518; }

        /* ── VISIÓN (dorado) ── */
        .mv-card--vision {
            background: linear-gradient(145deg, #F5C518 0%, #D9A90E 55%, #b8880a 100%);
            box-shadow: 0 20px 56px rgba(196,165,12,.4), 0 4px 12px rgba(196,165,12,.22);
        }
        .mv-card--vision:hover {
            box-shadow: 0 30px 72px rgba(196,165,12,.5), 0 6px 16px rgba(196,165,12,.3);
        }
        .mv-card--vision .mv-card-bg-circle {
            width: 260px; height: 260px;
            right: -70px; bottom: -70px;
            background: radial-gradient(circle, rgba(255,255,255,.18) 0%, transparent 70%);
        }
        .mv-card--vision::after {
            content: '';
            position: absolute;
            width: 120px; height: 120px;
            border-radius: 50%;
            top: -40px; left: -40px;
            background: rgba(255,255,255,.12);
            pointer-events: none;
        }
        /* Brillo superior más visible en el card dorado */
        .mv-card--vision::before {
            background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent);
        }
        .mv-card--vision .mv-label      { color: rgba(80,50,0,.85); }
        .mv-card--vision .mv-card-text  { color: rgba(60,35,0,.88); }
        .mv-card--vision .mv-divider    { background: linear-gradient(90deg, rgba(100,60,0,.5), transparent); }
        .mv-icon-wrap--vision {
            background: rgba(0,0,0,.1);
            border: 1.5px solid rgba(0,0,0,.18);
            color: rgba(80,50,0,.9);
            box-shadow: 0 4px 14px rgba(0,0,0,.1);
        }
        .mv-card--vision .mv-card-footer {
            color: rgba(80,50,0,.65);
            border-color: rgba(0,0,0,.15);
        }
        .mv-card--vision .mv-card-footer i { color: rgba(80,50,0,.8); }

        /* ── Elementos internos ── */
        .mv-card-top {
            display: flex;
            align-items: center;
            gap: 16px;
            margin-bottom: 22px;
            position: relative; z-index: 1;
        }
        .mv-icon-wrap {
            width: 62px;
            height: 62px;
            border-radius: 18px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            flex-shrink: 0;
        }
        .mv-label {
            font-size: clamp(1.1rem, 4vw, 1.65rem);
            font-weight: 900;
            letter-spacing: 1px;
            text-transform: uppercase;
            line-height: 1;
            min-width: 0;
            word-break: break-word;
        }
        .mv-divider {
            width: 52px;
            height: 4px;
            border-radius: 4px;
            margin-bottom: 20px;
            position: relative; z-index: 1;
        }
        .mv-card-text {
            font-size: 1rem;
            line-height: 1.7;
            flex: 1;
            margin-bottom: 26px;
            position: relative; z-index: 1;
        }
        .mv-card-footer {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: .78rem;
            font-weight: 800;
            letter-spacing: .8px;
            text-transform: uppercase;
            padding-top: 16px;
            border-top: 1px solid;
            position: relative; z-index: 1;
        }
        /* ── Responsive ── */
        @media (max-width: 640px) {
            .mv-row-single .mv-card { max-width: 100%; }
            .mv-cards { grid-template-columns: 1fr; gap: 16px; }
            .mv-card { padding: 32px 26px 26px; min-height: auto; }
            .mv-label { font-size: 1.4rem; }
        }
        /* ========================================================= */

        /* ========== RESPALDO & CERTIFICACIONES ========== */
        .cr-section {
            background: #fff;
        }
        /* Header */
        .cr-header {
            text-align: center;
            margin-bottom: 36px;
        }
        .cr-header .tag {
            margin: 0 auto 14px;
            display: inline-flex;
        }
        .cr-title {
            font-size: 2.2rem;
            font-weight: 900;
            color: var(--text);
            margin: 0 0 12px;
            line-height: 1.15;
        }
        .cr-title span { color: var(--red); }
        .cr-sub {
            color: var(--text-muted);
            font-size: 1rem;
            max-width: 560px;
            margin: 0 auto;
            line-height: 1.65;
        }
        .cr-sub strong { color: var(--red); font-weight: 800; }
        /* Badge "#1" */
        .cr-badge-row {
            display: flex;
            justify-content: center;
            margin-bottom: 32px;
        }
        .cr-badge-highlight {
            display: flex;
            align-items: center;
            gap: 16px;
            background: linear-gradient(135deg, #C41230 0%, #8B0D20 100%);
            border-radius: 16px;
            padding: 18px 32px;
            max-width: 620px;
            width: 100%;
            box-shadow: 0 8px 28px rgba(196,18,48,.25);
        }
        .cr-badge-highlight > i {
            font-size: 2rem;
            color: #F5C518;
            flex-shrink: 0;
        }
        .cr-badge-highlight strong {
            display: block;
            font-size: 1rem;
            font-weight: 900;
            color: #fff;
            margin-bottom: 3px;
        }
        .cr-badge-highlight span {
            font-size: .84rem;
            color: rgba(255,255,255,.78);
            line-height: 1.45;
        }
        /* Tarjeta Ministerio destacada */
        .cr-featured-wrap { margin-bottom: 18px; }
        .cr-card {
            background: #fff;
            border: 1.5px solid var(--border);
            border-radius: 18px;
            transition: border-color .25s, box-shadow .25s, transform .25s;
        }
        .cr-card--featured {
            display: flex;
            align-items: center;
            gap: 28px;
            padding: 28px 32px;
            border-color: rgba(196,18,48,.2);
            background: linear-gradient(135deg, #fff 60%, rgba(245,197,24,.06) 100%);
        }
        .cr-card--featured:hover {
            border-color: rgba(196,18,48,.5);
            box-shadow: 0 10px 36px rgba(196,18,48,.1);
            transform: translateY(-2px);
        }
        /* Logo box */
        .cr-logo-box {
            background: #f7f7f7;
            border: 1px solid var(--border);
            border-radius: 12px;
            padding: 14px 20px;
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .cr-logo-box img { height: 64px; width: auto; object-fit: contain; }
        .cr-logo-box--sm { padding: 10px 14px; border-radius: 10px; margin-bottom: 14px; }
        .cr-logo-box--sm img { height: 46px; }
        /* Card body */
        .cr-card-body { flex: 1; }
        .cr-card-body h4 {
            font-size: 1.12rem;
            font-weight: 800;
            color: var(--text);
            margin: 8px 0 8px;
        }
        .cr-card-body p {
            font-size: .9rem;
            color: var(--text-muted);
            line-height: 1.6;
            margin: 0;
        }
        /* Chips */
        .cr-card-chip {
            display: inline-block;
            font-size: .7rem;
            font-weight: 800;
            letter-spacing: .7px;
            text-transform: uppercase;
            border-radius: 6px;
            padding: 3px 10px;
            border: 1px solid;
        }
        .cr-card-chip--red {
            color: var(--red);
            background: rgba(196,18,48,.07);
            border-color: rgba(196,18,48,.2);
        }
        .cr-card-chip--gold {
            color: #b8900a;
            background: rgba(245,197,24,.15);
            border-color: rgba(245,197,24,.4);
        }
        .cr-card-chip--blue {
            color: #1d6fa4;
            background: rgba(29,111,164,.07);
            border-color: rgba(29,111,164,.2);
        }
        /* Sello "Validez Nacional" */
        .cr-card-seal {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 6px;
            flex-shrink: 0;
            color: var(--text-muted);
            font-size: .68rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .5px;
            text-align: center;
            border-left: 1px solid var(--border);
            padding-left: 24px;
        }
        .cr-card-seal i {
            font-size: 1.6rem;
            color: var(--red);
        }
        /* Grid 4 tarjetas (legacy) */
        .cr-grid-four {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 16px;
        }
        /* Grid 6 tarjetas */
        .cr-grid-six {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 16px;
            margin-top: 24px;
        }
        /* INACAL logo texto */
        .cr-logo-text { display: flex; align-items: center; justify-content: center; }
        .cr-inacal-logo {
            font-family: 'Bebas Neue', sans-serif;
            font-size: 2rem;
            color: var(--red);
            letter-spacing: 2px;
        }
        /* Badges validez */
        .cr-validez-row {
            display: flex;
            gap: 16px;
            justify-content: center;
            margin-top: 28px;
            flex-wrap: wrap;
        }
        .cr-validez-badge {
            display: flex;
            align-items: center;
            gap: 12px;
            background: var(--dark);
            color: #fff;
            border-radius: 10px;
            padding: 14px 28px;
            min-width: 180px;
        }
        .cr-validez-badge i {
            font-size: 1.6rem;
            color: var(--red);
        }
        .cr-validez-badge strong {
            display: block;
            font-size: .85rem;
            font-weight: 700;
            color: #fff;
        }
        .cr-validez-badge span {
            font-size: .75rem;
            color: rgba(255,255,255,.6);
            letter-spacing: 1px;
        }
        /* ========== CARRUSEL DE LOGOS ========== */
        .logos-carousel-wrap {
            background: #f8f8f8;
            padding: 32px 0;
            overflow: hidden;
            border-top: 1px solid #eee;
            border-bottom: 1px solid #eee;
        }
        .logos-track {
            display: flex;
            align-items: center;
            gap: 64px;
            width: max-content;
            animation: logos-scroll 28s linear infinite;
        }
        .logos-track img {
            height: 52px;
            width: auto;
            object-fit: contain;
            filter: none;
            opacity: .85;
            transition: opacity .3s, transform .3s;
            flex-shrink: 0;
        }
        .logos-track img:hover {
            opacity: 1;
            transform: scale(1.08);
        }
        @keyframes logos-scroll {
            0%   { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }

        .cr-card--small {
            padding: 22px 20px 20px;
            display: flex;
            flex-direction: column;
        }
        .cr-card--small:hover {
            border-color: rgba(196,18,48,.35);
            transform: translateY(-4px);
            box-shadow: 0 14px 36px rgba(196,18,48,.08);
        }
        .cr-card--small h5 {
            font-size: .95rem;
            font-weight: 800;
            color: var(--text);
            margin: 8px 0 8px;
            line-height: 1.3;
        }
        .cr-card--small p {
            font-size: .82rem;
            color: var(--text-muted);
            line-height: 1.55;
            margin: 0;
        }
        /* Responsive */
        @media (max-width: 1024px) {
            .cr-grid-four { grid-template-columns: repeat(2, 1fr); }
            .cr-grid-six { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 768px) {
            .cr-card--featured { flex-wrap: wrap; gap: 20px; }
            .cr-card-seal { border-left: none; border-top: 1px solid var(--border); padding-left: 0; padding-top: 16px; flex-direction: row; width: 100%; }
            .cr-title { font-size: 1.8rem; }
            .cr-grid-six { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 480px) {
            .cr-grid-four { grid-template-columns: 1fr 1fr; }
            .cr-grid-six { grid-template-columns: 1fr 1fr; }
            .cr-badge-highlight { flex-direction: column; text-align: center; padding: 18px 20px; }
        }
        /* ================================================== */

        .about-badge-float {
            position: absolute; bottom: -18px; right: -18px;
            background: var(--gold); color: var(--dark);
            border-radius: 14px; padding: 14px 20px; text-align: center;
            box-shadow: 0 8px 28px rgba(245,197,24,.4);
        }
        .about-badge-float strong { display: block; font-size: 1.6rem; font-weight: 900; line-height: 1; }
        .about-badge-float span { font-size: .72rem; font-weight: 700; }
        .about-text { }
        .about-values { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 32px; }
        .about-value {
            background: #FFFFFF; border: 1px solid var(--border);
            border-radius: var(--radius); padding: 20px 18px;
            box-shadow: var(--shadow);
            transition: border-color .25s, transform .25s, box-shadow .25s;
        }
        .about-value:hover { border-color: rgba(196,18,48,.35); transform: translateY(-3px); box-shadow: 0 8px 28px rgba(196,18,48,.1); }
        .about-value i { font-size: 1.4rem; color: var(--red); margin-bottom: 10px; display: block; }
        .about-value strong { display: block; font-size: .9rem; font-weight: 700; margin-bottom: 4px; color: var(--text); }
        .about-value p { font-size: .8rem; color: var(--text-muted); line-height: 1.5; }

        /* ========== PROGRAMS ========== */
        .programs-header {
            display: flex; align-items: flex-end; justify-content: space-between;
            margin-bottom: 48px; flex-wrap: wrap; gap: 20px;
        }

        /* ========== SCHEDULE TABLE ========== */
        .schedule-wrap { margin-top: 8px; }
        .schedule-badge {
            display: inline-flex; align-items: center; gap: 10px;
            background: var(--red); color: var(--white);
            font-size: .82rem; font-weight: 700; letter-spacing: .08em;
            text-transform: uppercase; padding: 8px 20px;
            border-radius: 6px 6px 0 0; margin-bottom: 0;
        }
        .schedule-table-wrap {
            overflow-x: auto;
            border-radius: 0 10px 10px 10px;
            border: 2px solid var(--red);
            box-shadow: 0 8px 32px rgba(196,18,48,.12);
        }
        .schedule-table {
            width: 100%; border-collapse: collapse;
            background: #FFFFFF; min-width: 560px;
        }
        .schedule-table thead tr {
            background: var(--dark);
        }
        .schedule-table thead th {
            padding: 14px 18px; font-size: .8rem; font-weight: 700;
            text-transform: uppercase; letter-spacing: .07em;
            color: var(--white); text-align: center;
            border-right: 1px solid rgba(255,255,255,.1);
        }
        .schedule-table thead th:last-child { border-right: none; }
        .th-curso { text-align: left !important; }
        .th-pago { color: var(--gold) !important; }
        .schedule-table tbody tr {
            border-bottom: 1px solid rgba(0,0,0,.07);
            transition: background .2s;
        }
        .schedule-table tbody tr:last-child { border-bottom: none; }
        .schedule-table tbody tr:hover { background: rgba(196,18,48,.04); }
        .schedule-table tbody tr:nth-child(even) { background: rgba(0,0,0,.02); }
        .schedule-table tbody tr:nth-child(even):hover { background: rgba(196,18,48,.05); }
        .schedule-table tbody td {
            padding: 12px 18px; font-size: .88rem;
            color: var(--text); text-align: center;
            border-right: 1px solid rgba(0,0,0,.06);
        }
        .schedule-table tbody td:last-child { border-right: none; }
        .td-curso {
            text-align: left !important; font-weight: 700;
            color: var(--text) !important;
        }
        .td-pago {
            font-weight: 700; color: var(--red) !important;
            background: rgba(196,18,48,.06);
        }
        .schedule-note {
            margin-top: 20px; text-align: center;
            font-size: .88rem; font-style: italic;
            color: var(--text-muted); display: flex;
            align-items: center; justify-content: center; gap: 8px;
        }
        .schedule-note i { color: var(--gold); font-size: .8rem; }
        .programs-grid {
            display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
            gap: 20px;
        }
        .program-card {
            background: #FFFFFF;
            border: 1px solid var(--border);
            border-radius: 14px; padding: 28px 22px;
            box-shadow: var(--shadow);
            transition: all .3s ease; cursor: pointer; position: relative; overflow: hidden;
        }
        .program-card::before {
            content: ''; position: absolute;
            top: 0; left: 0; right: 0; height: 3px;
            background: linear-gradient(90deg, var(--red), var(--gold));
            transform: scaleX(0); transition: transform .3s;
        }
        .program-card:hover { border-color: rgba(196,18,48,.35); transform: translateY(-6px); box-shadow: 0 16px 40px rgba(196,18,48,.12); }
        .program-card:hover::before { transform: scaleX(1); }
        .program-card .card-icon {
            width: 52px; height: 52px; border-radius: 12px;
            background: rgba(196,18,48,.1); border: 1px solid rgba(196,18,48,.2);
            display: flex; align-items: center; justify-content: center;
            font-size: 1.5rem; margin-bottom: 16px; color: var(--red);
        }
        .program-card h4 { font-size: .95rem; font-weight: 700; margin-bottom: 8px; line-height: 1.3; color: var(--text); }
        .program-card p { font-size: .8rem; color: var(--text-muted); line-height: 1.5; }
        .program-card .card-badge {
            display: inline-block; margin-top: 14px;
            background: rgba(196,18,48,.08); border: 1px solid rgba(196,18,48,.2);
            color: var(--red); font-size: .7rem; font-weight: 700;
            letter-spacing: .08em; text-transform: uppercase;
            padding: 4px 10px; border-radius: 20px;
        }
        .program-highlight {
            background: linear-gradient(135deg, rgba(196,18,48,.06), rgba(139,12,32,.1));
            border-color: rgba(196,18,48,.35) !important;
        }

        /* ========== METHODOLOGY ========== */
        .method-grid {
            display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center;
        }
        .method-steps { display: flex; flex-direction: column; gap: 0; }
        .method-step {
            display: flex; gap: 20px; padding: 24px 0;
            border-bottom: 1px solid var(--border);
        }
        .method-step:last-child { border-bottom: none; }
        .step-num {
            width: 44px; height: 44px; border-radius: 50%;
            background: var(--red); color: var(--white);
            display: flex; align-items: center; justify-content: center;
            font-weight: 900; font-size: .95rem; flex-shrink: 0;
            box-shadow: 0 0 0 6px rgba(196,18,48,.12);
        }
        .step-body strong { display: block; font-size: .95rem; font-weight: 700; margin-bottom: 5px; color: var(--text); }
        .step-body p { font-size: .85rem; color: var(--text-muted); line-height: 1.6; }
        .method-features-title {
            font-family: 'Inter', sans-serif;
            font-size: 1.4rem;
            font-weight: 800;
            color: var(--dark);
            margin-bottom: 20px;
            border-bottom: 3px solid var(--red);
            padding-bottom: 10px;
        }
        .method-features-title span { color: var(--red); }
        .method-features { display: flex; flex-direction: column; gap: 16px; }
        .method-feature {
            display: flex; align-items: flex-start; gap: 16px;
            background: #FFFFFF; border: 1px solid var(--border);
            border-radius: var(--radius); padding: 20px;
            box-shadow: var(--shadow);
            transition: border-color .25s, box-shadow .25s;
        }
        .method-feature:hover { border-color: rgba(196,18,48,.3); box-shadow: 0 6px 24px rgba(196,18,48,.09); }
        .method-feature .feat-icon {
            width: 48px; height: 48px; border-radius: 10px;
            background: rgba(196,18,48,.08); border: 1px solid rgba(196,18,48,.18);
            display: flex; align-items: center; justify-content: center;
            font-size: 1.2rem; color: var(--red); flex-shrink: 0;
        }
        .method-feature strong { display: block; font-size: .92rem; font-weight: 700; margin-bottom: 4px; color: var(--text); }
        .method-feature p { font-size: .8rem; color: var(--text-muted); line-height: 1.5; }

        /* ========== CERTIFICATIONS ========== */
        .cert-section { text-align: center; }
        .cert-cards { display: grid; grid-template-columns: repeat(2,1fr); gap: 24px; margin-top: 48px; }
        .cert-card {
            background: #FFFFFF; border: 1px solid var(--border);
            border-radius: 16px; padding: 36px 28px; text-align: center;
            box-shadow: var(--shadow);
            transition: all .3s;
        }
        .cert-card:hover { border-color: rgba(196,18,48,.3); transform: translateY(-5px); box-shadow: 0 12px 36px rgba(196,18,48,.1); }
        .cert-card i { font-size: 2.5rem; color: var(--red); margin-bottom: 16px; }
        .cert-card h4 { font-size: 1rem; font-weight: 700; margin-bottom: 8px; color: var(--text); }
        .cert-card p { font-size: .83rem; color: var(--text-muted); line-height: 1.6; }

        /* ========== LOCATIONS ========== */
        .locations-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 48px; max-width: 860px; margin-left: auto; margin-right: auto; }
        .location-card {
            background: #FFFFFF; border: 1px solid var(--border);
            border-radius: 12px; padding: 22px; text-align: center;
            box-shadow: var(--shadow);
            transition: all .25s;
        }
        .location-card:hover { border-color: rgba(196,18,48,.35); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(196,18,48,.1); }
        .location-card i { font-size: 1.6rem; color: var(--red); margin-bottom: 10px; }
        .location-card strong { display: block; font-size: .92rem; font-weight: 700; color: var(--text); }
        .location-card span { font-size: .78rem; color: var(--text-muted); }

        /* ========== TESTIMONIOS ========== */
        .testi-section {
            background: var(--light);
            padding: 96px 0;
            position: relative;
            overflow: hidden;
        }
        .testi-section::before {
            content: '';
            position: absolute; top: -120px; right: -120px;
            width: 480px; height: 480px; border-radius: 50%;
            background: radial-gradient(circle, rgba(196,18,48,.06) 0%, transparent 70%);
            pointer-events: none;
        }
        .testi-header { text-align: center; margin-bottom: 52px; }

        /* LAYOUT */
        .testi-layout {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 24px;
            margin-bottom: 32px;
            align-items: stretch;
        }

        /* ── FEATURED CARD ── */
        .testi-featured {
            background: #fff;
            border: 1px solid #e8ecf1;
            border-radius: 24px;
            overflow: hidden;
            box-shadow: 0 8px 32px rgba(196,18,48,.08);
            display: flex; flex-direction: column;
            transition: transform .25s, box-shadow .25s;
        }
        .testi-featured:hover {
            transform: translateY(-4px);
            box-shadow: 0 16px 48px rgba(196,18,48,.14);
        }
        .tf-photo-wrap {
            position: relative; flex: 1; min-height: 200px; overflow: hidden;
            background: #e8ecf1;
        }
        .tf-photo {
            width: 100%; height: 100%; object-fit: cover; object-position: center top;
            display: block; position: absolute; inset: 0;
        }
        .tf-photo-badge {
            position: absolute; bottom: 14px; left: 14px;
            background: linear-gradient(90deg, #15803d, #16a34a);
            color: #fff; font-size: 11px; font-weight: 700;
            border-radius: 999px; padding: 5px 14px;
            display: inline-flex; align-items: center; gap: 6px;
            box-shadow: 0 4px 12px rgba(0,0,0,.2);
        }
        .tf-photo-badge i { font-size: 11px; }
        .tf-content {
            padding: 26px 28px 28px; flex-shrink: 0; display: flex; flex-direction: column;
        }
        .tf-stars {
            display: flex; align-items: center; gap: 3px;
            color: #F5C518; font-size: 14px; margin-bottom: 8px;
        }
        .tf-rating {
            font-size: 12px; font-weight: 800; color: #92400e;
            margin-left: 6px; background: #fef9c3;
            border-radius: 6px; padding: 2px 8px;
        }
        .tf-bigquote {
            font-size: 80px; line-height: .6; font-family: Georgia, serif;
            color: var(--red); opacity: .15; margin-bottom: 6px;
            font-weight: 900; user-select: none;
        }
        .tf-text {
            font-size: 15px; line-height: 1.8; color: #374151;
            font-style: italic; margin-bottom: 24px; flex: 1;
        }
        .tf-author-row { display: flex; align-items: center; gap: 14px; }
        .tf-author-name { font-size: 15px; font-weight: 800; color: #0f172a; margin-bottom: 3px; }
        .tf-author-role { font-size: 11.5px; color: var(--red); font-weight: 600; margin-bottom: 2px; }
        .tf-author-role i { margin-right: 4px; }
        .tf-author-year { font-size: 11px; color: #94a3b8; }

        /* ── SECONDARY CARDS ── */
        .testi-secondary { display: flex; flex-direction: column; gap: 16px; }
        .ts-card {
            background: #fff;
            border: 1px solid #e8ecf1;
            border-radius: 18px; padding: 20px 22px;
            box-shadow: 0 2px 12px rgba(0,0,0,.05);
            transition: transform .2s, box-shadow .2s, border-color .2s;
        }
        .ts-card:hover {
            transform: translateX(5px);
            box-shadow: 0 6px 24px rgba(196,18,48,.1);
            border-color: rgba(196,18,48,.3);
        }
        .ts-card-top {
            display: flex; align-items: center; gap: 12px; margin-bottom: 12px;
        }
        .ts-photo {
            width: 46px; height: 46px; border-radius: 50%;
            object-fit: cover; border: 2px solid #e8ecf1; flex-shrink: 0;
        }
        .ts-info { flex: 1; min-width: 0; }
        .ts-name { font-size: 13.5px; font-weight: 800; color: #0f172a; margin-bottom: 2px; }
        .ts-role { font-size: 11px; color: #64748b; }
        .ts-role i { color: var(--red); margin-right: 3px; }
        .ts-stars { color: #F5C518; font-size: 11px; letter-spacing: 1px; white-space: nowrap; flex-shrink: 0; }
        .ts-quote {
            font-size: 13px; color: #475569;
            line-height: 1.7; font-style: italic; margin-bottom: 12px;
        }
        .ts-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
        .ts-year-badge {
            background: #fee2e2; border: 1px solid #fca5a5;
            color: #b91c1c; font-size: 10px; font-weight: 700;
            border-radius: 999px; padding: 2px 10px;
        }
        .ts-program { font-size: 11px; color: #94a3b8; font-weight: 500; }

        /* ── STATS STRIP ── */
        .testi-strip {
            display: flex; align-items: center; justify-content: center;
            background: linear-gradient(135deg, var(--red) 0%, #a01025 100%);
            border-radius: 20px; padding: 28px 32px;
            flex-wrap: wrap; gap: 0;
            margin-top: 20px;
            box-shadow: 0 8px 32px rgba(196,18,48,.25);
        }
        .tstrip-item {
            flex: 1; min-width: 110px; text-align: center; padding: 8px 16px;
        }
        .tstrip-num {
            display: block; font-size: 2rem; font-weight: 900;
            color: #fff; line-height: 1; margin-bottom: 6px;
        }
        .tstrip-lbl {
            font-size: 11px; color: rgba(255,255,255,.7); font-weight: 600;
            text-transform: uppercase; letter-spacing: .06em;
        }
        .tstrip-divider {
            width: 1px; height: 48px; background: rgba(255,255,255,.2);
            flex-shrink: 0;
        }

        /* VIDEO TESTIMONIOS */
        .testi-video-wrap {
            margin: 48px 0 0;
        }
        .testi-video-label {
            display: inline-flex; align-items: center; gap: 8px;
            font-size: .85rem; font-weight: 700; color: var(--red);
            text-transform: uppercase; letter-spacing: .06em;
            margin-bottom: 16px;
        }
        .testi-video-frame {
            position: relative; padding-bottom: 56.25%; height: 0;
            overflow: hidden; border-radius: 16px;
            box-shadow: 0 12px 40px rgba(0,0,0,.12);
        }
        .testi-video-frame iframe {
            position: absolute; top: 0; left: 0;
            width: 100%; height: 100%; border: 0;
        }

        /* RESPONSIVE */
        @media (max-width: 900px) {
            .testi-layout { grid-template-columns: 1fr; }
            .tf-photo-wrap { flex: none; height: 260px; }
            .tf-photo { position: static; }
        }
        @media (max-width: 600px) {
            .tstrip-divider { display: none; }
            .tstrip-item { min-width: 50%; }
        }

        /* ========== CONTACT ========== */
        .contact-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: start; }
        .contact-info { }
        .contact-item {
            display: flex; align-items: flex-start; gap: 16px;
            padding: 20px 0; border-bottom: 1px solid var(--border);
        }
        .contact-item:last-of-type { border-bottom: none; }
        .contact-item .c-icon {
            width: 44px; height: 44px; border-radius: 10px;
            background: rgba(196,18,48,.1); border: 1px solid rgba(196,18,48,.2);
            display: flex; align-items: center; justify-content: center;
            color: var(--red); font-size: 1rem; flex-shrink: 0;
        }
        .contact-item strong { display: block; font-size: .8rem; color: var(--text-muted); font-weight: 500; margin-bottom: 4px; }
        .contact-item p, .contact-item a { font-size: .93rem; font-weight: 600; color: var(--text); }
        .contact-item a:hover { color: var(--red); }
        .phones-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 4px; }
        .phone-link {
            display: flex; align-items: center; gap: 8px;
            font-size: .85rem; color: var(--text); padding: 8px 12px;
            background: #FFFFFF; border: 1px solid var(--border);
            border-radius: 8px; transition: all .2s;
            box-shadow: 0 1px 6px rgba(0,0,0,.05);
        }
        .phone-link:hover { border-color: rgba(37,211,102,.4); color: #1DA851; box-shadow: 0 3px 12px rgba(37,211,102,.15); }
        .phone-link i { color: #25D366; font-size: .85rem; }
        .contact-form-card {
            background: #FFFFFF;
            border: 1px solid var(--border);
            border-radius: 16px; padding: 36px;
            box-shadow: 0 6px 32px rgba(0,0,0,.08);
        }
        .contact-form-card h3 { font-size: 1.2rem; font-weight: 800; margin-bottom: 6px; color: var(--text); }
        .contact-form-card p { font-size: .85rem; color: var(--text-muted); margin-bottom: 24px; }
        .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
        .form-group { margin-bottom: 14px; }
        .form-group label { display: block; font-size: .8rem; color: var(--text-muted); margin-bottom: 6px; font-weight: 500; }
        .form-group input,
        .form-group select,
        .form-group textarea {
            width: 100%; background: #FFFFFF;
            border: 1px solid rgba(0,0,0,.15); border-radius: 8px;
            color: var(--text); font-size: .9rem; padding: 11px 14px;
            font-family: inherit; outline: none; transition: border-color .2s, box-shadow .2s;
        }
        .form-group input:focus,
        .form-group select:focus,
        .form-group textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(196,18,48,.1); }
        .form-group select option { background: #FFFFFF; color: var(--text); }
        .form-group textarea { resize: vertical; min-height: 100px; }

        /* ========== FLOATING WHATSAPP ========== */
        .wa-float {
            position: fixed; bottom: 28px; right: 28px; z-index: 999;
            width: 58px; height: 58px; border-radius: 50%;
            background: #25D366; color: var(--white);
            display: flex; align-items: center; justify-content: center;
            font-size: 1.6rem; box-shadow: 0 4px 20px rgba(37,211,102,.5);
            transition: all .25s; animation: wa-pulse 2.5s infinite;
        }
        .wa-float:hover { transform: scale(1.12); box-shadow: 0 6px 28px rgba(37,211,102,.65); }
        @keyframes wa-pulse {
            0%,100% { box-shadow: 0 4px 20px rgba(37,211,102,.5); }
            50% { box-shadow: 0 4px 36px rgba(37,211,102,.8), 0 0 0 10px rgba(37,211,102,.1); }
        }

        /* ========== FOOTER ========== */
        footer {
            background: #111111; border-top: 3px solid var(--red);
            padding: 60px 0 0;
        }
        .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; padding-bottom: 48px; }
        .footer-brand p { font-size: .85rem; color: #9CA3AF; line-height: 1.7; margin: 16px 0 20px; }
        .footer-socials { display: flex; gap: 10px; }
        .footer-socials a {
            width: 36px; height: 36px; border-radius: 8px;
            background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1);
            display: flex; align-items: center; justify-content: center;
            font-size: .9rem; color: #9CA3AF; transition: all .2s;
        }
        .footer-socials a:hover { background: var(--red); border-color: var(--red); color: var(--white); }
        .footer-col h4 { font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; }
        .footer-col ul li { margin-bottom: 10px; }
        .footer-col ul li a { font-size: .85rem; color: #9CA3AF; transition: color .2s; }
        .footer-col ul li a:hover { color: var(--white); }
        /* Footer programas coloreados */
        .footer-programas { display: flex; flex-direction: column; gap: 8px; }
        .footer-programas li a {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px 14px;
            border-radius: 10px;
            font-weight: 600;
            font-size: .82rem;
            color: var(--dark) !important;
            text-decoration: none;
            transition: transform .2s, box-shadow .2s;
            box-shadow: 0 2px 8px rgba(0,0,0,.25);
        }
        .footer-programas li a::before {
            content: '';
            width: 7px; height: 7px;
            border-radius: 50%;
            background: rgba(0,0,0,.25);
            flex-shrink: 0;
        }
        .footer-programas li a:hover {
            transform: translateX(4px);
            box-shadow: 0 4px 14px rgba(0,0,0,.35);
        }
        .fp-gold   { background: linear-gradient(135deg, #F5C518, #e0a800); }
        .fp-blue   { background: linear-gradient(135deg, #3b82f6, #1d4ed8); color: #fff !important; }
        .fp-blue::before   { background: rgba(255,255,255,.4) !important; }
        .fp-dimmed { background: linear-gradient(135deg, #6b7280, #4b5563); color: #fff !important; }
        .fp-dimmed::before { background: rgba(255,255,255,.4) !important; }
        .fp-red    { background: linear-gradient(135deg, #C41230, #9b0e27); color: #fff !important; }
        .fp-red::before    { background: rgba(255,255,255,.4) !important; }
        .footer-bottom {
            border-top: 1px solid rgba(255,255,255,.08);
            padding: 20px 0; display: flex; align-items: center;
            justify-content: space-between; flex-wrap: wrap; gap: 12px;
        }
        .footer-bottom p { font-size: .8rem; color: #6B7280; }
        .footer-bottom span { color: var(--red); }

        /* ========== DIVIDER ========== */
        .red-divider { height: 4px; background: linear-gradient(90deg, var(--red), var(--gold), var(--red)); }

        /* ========== RESPONSIVE ========== */
        @media (max-width: 1024px) {
            .hero-content { grid-template-columns: 1fr; gap: 40px; }
            .hero-right { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
            .about-grid, .method-grid, .contact-layout { grid-template-columns: 1fr; gap: 40px; }
            .opm-offer-grid { grid-template-columns: 1fr 1fr; }
            .opm-grid { grid-template-columns: 1fr 1fr; }
            .opm-cert-official { grid-template-columns: 110px 1fr; }
            .opm-cert-seal { grid-column: 1 / -1; border-left: 0; border-top: 1px solid rgba(0,0,0,.12); padding-left: 0; padding-top: 10px; }
            .opm-cert-grid { grid-template-columns: 1fr 1fr; }
            .about-story-module { margin-bottom: 30px; }
            .about-story-inline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .about-story-inline-item { min-height: 190px; }
            .cert-cards { grid-template-columns: 1fr 1fr; }
            .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
        }
        @media (max-width: 768px) {
            .nav-inner { padding: 10px 14px; }
            .nav-logo img { height: 46px !important; max-width: 140px !important; }
            .hamburger { padding: 2px; }
            .vp-main { height: 420px; }
            .video-panels { grid-template-columns: 1fr 1fr; height: 480px; }
            .video-panels--three { grid-template-columns: 1fr 1fr; }
            .vp-main {
                background-image: linear-gradient(135deg, rgba(5,5,5,.82) 0%, rgba(139,12,32,.55) 50%, rgba(5,5,5,.75) 100%), url('/cetecop/public/imagenes/productos/WhatsApp%20Image%202026-03-05%20at%2012.44.12%20PM.jpeg');
                background-size: cover;
                background-position: center;
            }
            .vp-main-video { display: none; }
            .vp-item {
                background-image: linear-gradient(160deg, rgba(139,12,32,.45) 0%, rgba(0,0,0,.75) 100%), url('/cetecop/public/imagenes/productos/WhatsApp%20Image%202026-03-05%20at%2012.44.12%20PM.jpeg');
                background-size: cover;
                background-position: center;
            }
            .vp-item video { display: none; }
            .nav-links { display: none; }
            .nav-cta .btn { display: none; }
            .hamburger { display: flex; }
            .section { padding: 64px 0; }
            .stats-bar-inner { grid-template-columns: 1fr 1fr; }
            .stat-item:nth-child(2) { border-right: none; }
            .programs-grid { grid-template-columns: 1fr 1fr; }
            .locations-grid { grid-template-columns: 1fr; }
            .cert-cards { grid-template-columns: 1fr; }
            .hero-right { grid-template-columns: 1fr; }
            .hero-btns { grid-template-columns: 1fr; max-width: 100%; }
            .hero-btns .btn:last-child { grid-column: auto; }
            .opm-offer-grid { grid-template-columns: 1fr; }
            .opm-offer-card h4 { font-size: .9rem; }
            .opm-offer-card p { font-size: .78rem; }
            .opm-grid { grid-template-columns: 1fr; }
            .opm-cert-head { text-align: left; margin-bottom: 18px; }
            .opm-cert-head h3 { font-size: 2rem; }
            .opm-cert-highlight { margin-bottom: 20px; padding: 16px; }
            .opm-cert-highlight i { font-size: 1.7rem; }
            .opm-cert-official { grid-template-columns: 1fr; gap: 12px; }
            .opm-cert-logo-box { width: 96px; height: 96px; }
            .opm-cert-seal { border-top: 1px solid rgba(0,0,0,.12); border-left: 0; padding: 10px 0 0; }
            .opm-cert-grid { grid-template-columns: 1fr; }
            .opm-actions { gap: 10px; }
            .opm-actions .btn { width: 100%; justify-content: center; }
            .opm-back-btn { width: 100%; justify-content: center; }
            .about-story-module { margin-bottom: 24px; }
            .about-story-module-sub { font-size: .9rem; line-height: 1.55; }
            .about-story-inline { grid-template-columns: 1fr; }
            .about-story-inline-item { min-height: auto; padding: 13px 13px; }
            .about-story-inline-item p { font-size: .86rem; line-height: 1.52; }
            .footer-grid { grid-template-columns: 1fr; gap: 28px; }
            .form-row { grid-template-columns: 1fr; }
            /* Paneles: etiquetas siempre visibles en móvil (sin hover) */
            .vp-label { transform: translateY(0); padding: 0 16px 20px; }
            .vp-desc { opacity: 1; transform: translateY(0); }
            .vp-icon { width: 40px; height: 40px; font-size: 1.1rem; border-radius: 10px; margin-bottom: 2px; }
            .vp-icon.vp-icon-logo { width: auto; height: auto; border: 0; background: transparent; border-radius: 0; }
            .vp-icon.vp-icon-logo img { width: 52px; height: 52px; border-radius: 10px; }
            .vp-title { font-size: .9rem; }
            /* Video principal: compensar navbar fija */
            .vp-main-content { padding-top: 92px; }
        }
        @media (max-width: 480px) {
            .nav-inner { padding: 8px 12px; }
            .nav-logo img { height: 42px !important; max-width: 128px !important; }
            .vp-main { height: 360px; }
            .video-panels { grid-template-columns: 1fr 1fr; height: 420px; }
            .video-panels--three { grid-template-columns: 1fr; }
            .vp-label { padding: 0 12px 16px; gap: 4px; }
            .vp-icon { width: 34px; height: 34px; font-size: .95rem; border-radius: 8px; }
            .vp-icon.vp-icon-logo { width: auto; height: auto; border: 0; background: transparent; border-radius: 0; }
            .vp-icon.vp-icon-logo img { width: 46px; height: 46px; border-radius: 8px; }
            .vp-title { font-size: .82rem; }
            .vp-desc { font-size: .72rem; }
            .vp-main-content { padding-top: 98px; }
            .programs-grid { grid-template-columns: 1fr; }
            .stats-bar-inner { grid-template-columns: 1fr 1fr; }
            .stat-item:nth-child(2) { border-right: none; }
            .stat-item { border-bottom: none; }
            .locations-grid { grid-template-columns: 1fr; }
            .about-story-module { margin-bottom: 20px; }
            .about-story-inline { gap: 10px; }
            .about-story-module-sub { font-size: .84rem; line-height: 1.48; }
            .about-story-inline-item h4 { font-size: .86rem; }
            .about-story-inline-item h4 i { width: 22px; height: 22px; font-size: .66rem; border-radius: 7px; }
            .about-story-inline-item p { font-size: .82rem; line-height: 1.48; }
            .about-values { grid-template-columns: 1fr; }
            .phones-grid { grid-template-columns: 1fr; }
        }

/* ============================
   AULA VIRTUAL — BOTÓN
============================ */
.btn-aula {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: transparent;
    border: 2px solid var(--gold);
    color: var(--gold);
    font-family: 'Inter', sans-serif;
    font-size: .875rem;
    font-weight: 700;
    border-radius: var(--radius);
    cursor: pointer;
    white-space: nowrap;
    transition: background .25s, color .25s;
    text-decoration: none;
}
.btn-aula:hover {
    background: var(--gold);
    color: var(--dark);
}

/* ============================
   CURSOS CERT — BOTÓN
============================ */
.btn-cursos-cert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: #0d9488;
    border: 2px solid #0d9488;
    color: #ffffff;
    font-family: 'Inter', sans-serif;
    font-size: .875rem;
    font-weight: 700;
    border-radius: var(--radius);
    cursor: pointer;
    white-space: nowrap;
    transition: background .25s, border-color .25s;
    text-decoration: none;
}
.btn-cursos-cert:hover {
    background: #0f766e;
    border-color: #0f766e;
}

/* ============================
   AULA VIRTUAL — MODAL (v2)
============================ */
.av-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10,10,10,.75);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s ease, visibility .35s ease;
}
.av-overlay.open { opacity: 1; visibility: visible; }

/* Modal contenedor — dos columnas */
.av-modal {
    display: grid;
    grid-template-columns: 300px 1fr;
    width: 100%;
    max-width: 780px;
    min-height: 540px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 32px 80px rgba(0,0,0,.45);
    transform: translateY(28px) scale(.96);
    transition: transform .38s cubic-bezier(.34,1.3,.64,1);
}
.av-overlay.open .av-modal { transform: translateY(0) scale(1); }

/* ── Panel izquierdo (branding rojo) ── */
.av-panel-left {
    background: linear-gradient(160deg, #C41230 0%, #7A0B1E 60%, #3D0510 100%);
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
}
.av-close-left {
    position: absolute;
    top: 16px; left: 16px;
    width: 34px; height: 34px;
    border-radius: 50%;
    background: rgba(255,255,255,.15);
    border: none;
    color: #fff;
    font-size: .9rem;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s;
    z-index: 2;
}
.av-close-left:hover { background: rgba(255,255,255,.28); }

.av-brand-content { position: relative; z-index: 2; }
.av-brand-logo {
    width: 76px; height: 76px;
    border-radius: 14px;
    object-fit: contain;
    background: #fff;
    padding: 6px;
    margin-bottom: 18px;
    box-shadow: 0 8px 24px rgba(0,0,0,.3);
}
.av-brand-name {
    font-size: 1.7rem;
    font-weight: 900;
    color: #fff;
    letter-spacing: .06em;
    margin-bottom: 8px;
    font-family: 'Bebas Neue', 'Inter', sans-serif;
}
.av-brand-slogan {
    font-size: .85rem;
    color: rgba(255,255,255,.75);
    line-height: 1.5;
    margin-bottom: 24px;
}
.av-brand-slogan strong { color: var(--gold); font-weight: 700; }
.av-brand-divider {
    width: 40px; height: 3px;
    background: var(--gold);
    border-radius: 2px;
    margin-bottom: 22px;
}
.av-brand-features {
    list-style: none;
    padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 10px;
}
.av-brand-features li {
    font-size: .82rem;
    color: rgba(255,255,255,.85);
    display: flex; align-items: center; gap: 10px;
}
.av-brand-features li i { color: var(--gold); font-size: .85rem; }

/* Decoración geométrica */
.av-deco {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,.05);
}
.av-deco-1 { width: 240px; height: 240px; bottom: -80px; right: -80px; }
.av-deco-2 { width: 130px; height: 130px; top: -30px; right: 20px; }

/* ── Panel derecho (formulario) ── */
.av-panel-right {
    background: #fff;
    padding: 44px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.av-form-header { margin-bottom: 28px; }
.av-form-icon {
    width: 52px; height: 52px;
    background: rgba(196,18,48,.1);
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem;
    color: var(--red);
    margin-bottom: 16px;
}
.av-form-header h2 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #111;
    margin-bottom: 4px;
}
.av-form-header p {
    font-size: .85rem;
    color: #6B7280;
}

/* Alerta de error */
.av-alert {
    display: flex; align-items: center; gap: 10px;
    background: #FFF1F2;
    border: 1px solid #FECDD3;
    border-left: 4px solid var(--red);
    color: #9F1239;
    border-radius: 8px;
    padding: 11px 14px;
    font-size: .84rem;
    margin-bottom: 20px;
}

/* Formulario */
.av-form { display: flex; flex-direction: column; gap: 16px; }

.av-field label {
    display: block;
    font-size: .78rem;
    font-weight: 700;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: .07em;
    margin-bottom: 7px;
}
.av-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.av-input-icon {
    position: absolute;
    left: 14px;
    color: #9CA3AF;
    font-size: .9rem;
    pointer-events: none;
    display: flex; align-items: center;
    transition: color .2s;
}
.av-input-wrap:focus-within .av-input-icon { color: var(--red); }
.av-input-wrap input,
.av-input-wrap select {
    width: 100%;
    padding: 12px 14px 12px 40px;
    border: 1.5px solid #E5E7EB;
    border-radius: 10px;
    font-size: .9rem;
    font-family: 'Inter', sans-serif;
    color: #111;
    background: #F9FAFB;
    outline: none;
    transition: border-color .2s, box-shadow .2s, background .2s;
    -webkit-appearance: none;
    appearance: none;
}
.av-input-wrap input:focus,
.av-input-wrap select:focus {
    border-color: var(--red);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(196,18,48,.1);
}
.av-pass-wrap input { padding-right: 44px; }
.av-eye {
    position: absolute;
    right: 13px;
    background: none; border: none;
    color: #9CA3AF; cursor: pointer;
    font-size: .9rem; padding: 4px;
    display: flex; align-items: center;
    transition: color .2s;
}
.av-eye:hover { color: var(--red); }

/* Botón principal */
.av-submit {
    width: 100%;
    margin-top: 4px;
    padding: 13px 20px;
    background: linear-gradient(135deg, var(--red) 0%, #8B0C20 100%);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: .95rem;
    font-weight: 700;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px;
    box-shadow: 0 4px 18px rgba(196,18,48,.35);
    transition: transform .18s, box-shadow .18s;
}
.av-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 26px rgba(196,18,48,.45);
}
.av-submit:active { transform: translateY(0); }
.av-submit i { font-size: .95rem; }

/* Ayuda */
.av-help {
    margin-top: 22px;
    text-align: center;
    font-size: .8rem;
    color: #9CA3AF;
}
.av-help i { color: #25D366; margin-right: 4px; }
.av-help a { color: var(--red); font-weight: 600; margin-left: 4px; }
.av-help a:hover { text-decoration: underline; }

/* ── Responsive ── */
@media (max-width: 680px) {
    .av-modal { grid-template-columns: 1fr; min-height: auto; max-width: 420px; }
    .av-panel-left { display: none; }
    .av-panel-right { padding: 36px 28px; }
}
@media (max-width: 400px) {
    .av-panel-right { padding: 28px 20px; }
}
