        :root {
            --gold: #ffc506;
            --gold-light: #fffbee;
            --gray-sec: #f4f5f7;
            --dark: #0b0d0f;
            --border-d: rgba(255, 197, 6, 0.18);
            --muted: #6b7280;
        }

        .bg-gray-sec {
            background: var(--gray-sec);
        }

        .bg-white-sec {
            background: #ffffff;
        }

        .bg-yellow-sec {
            background: var(--gold-light);
        }

        .bg-dark-sec {
            background: var(--dark);
        }

        .bg-gray-sec,
        .bg-white-sec,
        .bg-yellow-sec,
        .bg-dark-sec {
            border-top: 3px solid transparent;
            border-image: linear-gradient(90deg, transparent 0%, var(--gold) 20%, var(--gold) 80%, transparent 100%) 1;
        }

        .bg-gray-sec::before,
        .bg-white-sec::before,
        .bg-yellow-sec::before,
        .bg-dark-sec::before {
            content: none;
        }

        .bg-white-sec .sec-title,
        .bg-gray-sec .sec-title,
        .bg-yellow-sec .sec-title {
            color: #111;
        }

        .bg-dark-sec .sec-title {
            color: #fff;
        }

        .bg-white-sec .sec-sub,
        .bg-gray-sec .sec-sub,
        .bg-yellow-sec .sec-sub {
            color: #666;
        }

        .bg-dark-sec .sec-sub {
            color: var(--muted);
        }

        .sec-eyebrow {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 300;
            font-size: .72rem;
            letter-spacing: .35em;
            text-transform: uppercase;
            color: var(--gold);
            margin-bottom: 10px;
        }

        .sec-title {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 800;
            font-size: clamp(2rem, 4.5vw, 3.4rem);
            line-height: 1;
            text-transform: uppercase;
            margin-bottom: 10px;
        }

        .sec-title span {
            color: var(--gold);
        }

        .sec-sub {
            font-family: 'Barlow', sans-serif;
            font-size: .9rem;
            font-weight: 300;
        }

        /* ── QUIÉNES SOMOS ── */
        #quienessomos {
            padding: 80px 0;
        }

        .about-card {
            background: #fff;
            border: 1.5px solid #e2e4e8;
            border-radius: 16px;
            padding: 40px 44px;
            box-shadow: 0 6px 32px rgba(0, 0, 0, .07);
            text-align: left;
        }

        .about-card img.about-icon {
            width: 56px;
            height: 56px;
            margin-bottom: 20px;
        }

        .about-card h3 {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 700;
            font-size: 1.3rem;
            color: #111;
            margin-bottom: 16px;
        }

        .about-card p {
            font-family: 'Barlow', sans-serif;
            font-size: .92rem;
            color: #555;
            line-height: 1.75;
            margin-bottom: 0;
        }

        .about-divider {
            width: 40px;
            height: 3px;
            background: var(--gold);
            border-radius: 2px;
            margin-bottom: 20px;
        }

        /* ── DIAGRAMA IMAGE ── */
        .diagrama-col {
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .diagrama-frame {
            position: relative;
            border-radius: 20px;
            overflow: hidden;
            /* Gold accent border */
            box-shadow:
                0 0 0 1.5px var(--gold),
                0 16px 56px rgba(255, 197, 6, .18),
                0 4px 20px rgba(0, 0, 0, .10);
            /* clip to show the image nicely despite the tall ratio */
            width: 100%;
            max-width: 420px;
        }

        /* Gold corner accents */
        .diagrama-frame::before,
        .diagrama-frame::after {
            content: '';
            position: absolute;
            z-index: 3;
            width: 28px;
            height: 28px;
            pointer-events: none;
        }

        .diagrama-frame::before {
            top: 10px;
            left: 10px;
            border-top: 2.5px solid var(--gold);
            border-left: 2.5px solid var(--gold);
            border-radius: 4px 0 0 0;
        }

        .diagrama-frame::after {
            bottom: 10px;
            right: 10px;
            border-bottom: 2.5px solid var(--gold);
            border-right: 2.5px solid var(--gold);
            border-radius: 0 0 4px 0;
        }

        /* Inner corner — bottom-left */
        .diagrama-corner-bl,
        .diagrama-corner-tr {
            position: absolute;
            z-index: 3;
            width: 28px;
            height: 28px;
            pointer-events: none;
        }

        .diagrama-corner-bl {
            bottom: 10px;
            left: 10px;
            border-bottom: 2.5px solid var(--gold);
            border-left: 2.5px solid var(--gold);
            border-radius: 0 0 0 4px;
        }

        .diagrama-corner-tr {
            top: 10px;
            right: 10px;
            border-top: 2.5px solid var(--gold);
            border-right: 2.5px solid var(--gold);
            border-radius: 0 4px 0 0;
        }

        /* Subtle gold gradient overlay on the image edges */
        .diagrama-overlay {
            position: absolute;
            inset: 0;
            background:
                linear-gradient(to bottom,
                    rgba(255, 197, 6, .06) 0%,
                    transparent 18%,
                    transparent 82%,
                    rgba(255, 197, 6, .06) 100%);
            z-index: 2;
            pointer-events: none;
        }

        /* The image itself — zoom animation */
        .diagrama-img {
            display: block;
            width: 100%;
            /* show the upper portion of the tall image at a good height */
            height: 540px;
            object-fit: cover;
            object-position: center top;
            transform: scale(1.08);
            opacity: 0;
            transition:
                transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
                opacity 1.0s cubic-bezier(0.22, 1, 0.36, 1);
            will-change: transform, opacity;
        }

        .diagrama-img.zoom-in {
            transform: scale(1);
            opacity: 1;
        }

        /* Subtle pulse glow on hover */
        .diagrama-frame:hover .diagrama-img {
            transform: scale(1.03);
            transition:
                transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
                opacity 0.6s ease;
        }

        /* Gold eyebrow tag above the image */
        .diagrama-badge {
            position: absolute;
            top: 14px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 4;
            background: var(--gold);
            color: #000;
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 600;
            font-size: .68rem;
            letter-spacing: .28em;
            text-transform: uppercase;
            padding: 4px 14px;
            border-radius: 20px;
            white-space: nowrap;
            box-shadow: 0 2px 10px rgba(255, 197, 6, .35);
            opacity: 0;
            transform: translateX(-50%) translateY(-6px);
            transition: opacity 0.8s ease 0.5s, transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
        }

        .diagrama-img.zoom-in~.diagrama-overlay~.diagrama-badge,
        .diagrama-badge.badge-visible {
            opacity: 1;
            transform: translateX(-50%) translateY(0);
        }

        @media (max-width: 991px) {
            .diagrama-frame {
                max-width: 100%;
                margin-top: 40px;
            }

            .diagrama-img {
                height: 420px;
            }

            .about-card {
                text-align: center;
            }

            .about-divider {
                margin-left: auto;
                margin-right: auto;
            }
        }

        @media (max-width: 575px) {
            .diagrama-img {
                height: 300px;
            }
        }

        /* ── SERVICIOS ── */
        #quehacemos {
            padding: 80px 0;
        }

        .services-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
            padding: 0 24px;
            max-width: 1100px;
            margin: 0 auto;
        }

        @media (max-width: 992px) {
            .services-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (max-width: 576px) {
            .services-grid {
                grid-template-columns: 1fr;
            }
        }

        .svc-card {
            background: #fff;
            border-radius: 12px;
            border: 1px solid #ede8d8;
            padding: 28px 24px;
            transition: transform .3s, box-shadow .3s, border-color .3s;
        }

        .svc-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 12px 32px rgba(255, 197, 6, .12);
            border-color: var(--gold);
        }

        .svc-icon {
            width: 40px;
            height: 40px;
            margin-bottom: 14px;
        }

        .svc-card h4 {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 700;
            font-size: 1.1rem;
            color: #111;
            margin-bottom: 10px;
        }

        .svc-card p,
        .svc-card ul {
            font-size: .85rem;
            color: #555;
            line-height: 1.6;
            margin-bottom: 0;
        }

        .svc-card ul {
            padding-left: 18px;
        }

        /* ── EQUIPO ── */
        #equipo {
            padding: 80px 0;
        }

        .team-grid {
            display: flex;
            flex-wrap: nowrap;
            justify-content: center;
            gap: 24px;
            padding: 0 40px;
            max-width: 1400px;
            margin: 0 auto;
            overflow-x: auto;
        }

        @media (max-width: 1024px) {
            .team-grid {
                flex-wrap: wrap;
                padding: 0 24px;
            }

            .team-card {
                width: calc(33.33% - 16px);
                min-width: 220px;
                flex: none;
            }
        }

        @media (max-width: 768px) {
            .team-card {
                width: calc(50% - 12px);
                min-width: 0;
            }
        }

        @media (max-width: 480px) {
            .team-card {
                width: 100%;
            }
        }

        .team-card {
            background: #fff;
            border-radius: 16px;
            border: 1.5px solid #ebebeb;
            flex: 1 1 0;
            min-width: 200px;
            max-width: 260px;
            overflow: hidden;
            box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
            transition: transform .3s, box-shadow .3s, border-color .3s;
        }

        .team-card:hover {
            transform: translateY(-6px);
            box-shadow: 0 18px 44px rgba(0, 0, 0, .11);
            border-color: var(--gold);
        }

        .team-photo {
            width: 100%;
            height: 220px;
            background: var(--gold-light);
            object-fit: cover;
            object-position: center top;
            display: block;
        }

        .team-info {
            padding: 18px 20px 22px;
        }

        .team-name {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 700;
            font-size: 1.15rem;
            color: #111;
            margin-bottom: 6px;
            line-height: 1.2;
        }

        .team-divider {
            width: 28px;
            height: 2px;
            background: var(--gold);
            margin-bottom: 10px;
            border-radius: 2px;
        }

        .team-bio {
            font-family: 'Barlow', sans-serif;
            font-size: .78rem;
            color: #555;
            line-height: 1.6;
        }

        /* ── NÚMEROS ── */
        #numeros {
            padding: 100px 0 110px;
            position: relative;
            overflow: hidden;
        }

        .numeros-inner {
            max-width: 1100px;
            margin: 0 auto;
            padding: 0 40px;
            position: relative;
            z-index: 1;
        }

        .numeros-grid {
            display: grid;
            grid-template-columns: repeat(5, 1fr);
            gap: 20px;
            margin-top: 56px;
        }

        @media (max-width: 1024px) {
            .numeros-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        @media (max-width: 640px) {
            .numeros-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 14px;
            }

            .numeros-inner {
                padding: 0 20px;
            }
        }

        @media (max-width: 380px) {
            .numeros-grid {
                grid-template-columns: 1fr;
            }
        }

        .numero-card {
            background: #fff;
            border: 1.5px solid #e2e4e8;
            border-radius: 18px;
            padding: 36px 24px 32px;
            text-align: center;
            position: relative;
            overflow: hidden;
            box-shadow: 0 4px 20px rgba(0, 0, 0, .06);
            opacity: 0;
            transform: translateY(40px);
            transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.3s ease,
                border-color 0.3s ease;
        }

        .numero-card::before {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: var(--gold);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
        }

        .numero-card:hover {
            box-shadow: 0 20px 48px rgba(0, 0, 0, .10);
            border-color: var(--gold);
        }

        .numero-card:hover::before {
            transform: scaleX(1);
        }

        .numero-card.visible {
            opacity: 1;
            transform: translateY(0);
        }

        .numero-val {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 800;
            font-size: clamp(2.6rem, 4vw, 3.6rem);
            line-height: 1;
            color: var(--gold);
            letter-spacing: -.02em;
            margin-bottom: 14px;
            display: flex;
            align-items: baseline;
            justify-content: center;
            gap: 1px;
        }

        .numero-val .val-prefix {
            font-size: 55%;
            font-weight: 700;
            color: #bbb;
            margin-right: 2px;
        }

        .numero-sep {
            width: 28px;
            height: 2px;
            background: linear-gradient(90deg, var(--gold), #f0a800);
            border-radius: 2px;
            margin: 0 auto 14px;
        }

        .numero-desc {
            font-family: 'Barlow', sans-serif;
            font-size: .8rem;
            font-weight: 400;
            color: #666;
            line-height: 1.55;
        }

        /* ── CLIENTES ── */
        #nuestrosclientes {
            padding: 80px 0 72px;
            overflow: hidden;
        }

        .clients-stats {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 48px;
            flex-wrap: wrap;
            margin-bottom: 52px;
            padding: 0 24px;
        }

        .stat-item {
            text-align: center;
        }

        .stat-num {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 800;
            font-size: 2.2rem;
            color: var(--gold);
            line-height: 1;
        }

        .stat-label {
            font-family: 'Barlow', sans-serif;
            font-size: .68rem;
            letter-spacing: .18em;
            text-transform: uppercase;
            color: var(--muted);
            margin-top: 4px;
        }

        .stat-sep {
            width: 1px;
            height: 32px;
            background: var(--border-d);
        }

        .marquee-wrapper {
            width: 100%;
            overflow: hidden;
            position: relative;
            padding: 6px 0;
        }

        .marquee-wrapper::before,
        .marquee-wrapper::after {
            content: '';
            position: absolute;
            top: 0;
            width: 120px;
            height: 100%;
            z-index: 2;
            pointer-events: none;
        }

        .marquee-wrapper::before {
            left: 0;
            background: linear-gradient(to right, var(--dark), transparent);
        }

        .marquee-wrapper::after {
            right: 0;
            background: linear-gradient(to left, var(--dark), transparent);
        }

        .marquee-track {
            display: flex;
            align-items: center;
            width: max-content;
            will-change: transform;
        }

        .marquee-track--row1 {
            animation: scroll-left 38s linear infinite;
        }

        .marquee-track--row2 {
            animation: scroll-right 44s linear infinite;
        }

        .marquee-wrapper:hover .marquee-track {
            animation-play-state: paused;
        }

        @keyframes scroll-left {
            from {
                transform: translateX(0)
            }

            to {
                transform: translateX(-50%)
            }
        }

        @keyframes scroll-right {
            from {
                transform: translateX(-50%)
            }

            to {
                transform: translateX(0)
            }
        }

        .logo-card {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 190px;
            height: 90px;
            margin: 10px 12px;
            border-radius: 10px;
            border: 1px solid rgba(0, 0, 0, .08);
            background: #fff;
            position: relative;
            overflow: hidden;
            flex-shrink: 0;
            text-decoration: none;
            transition: border-color .3s, transform .3s, box-shadow .3s;
        }

        .logo-card::before {
            content: '';
            position: absolute;
            inset: 0;
            background: rgba(255, 197, 6, .07);
            opacity: 0;
            transition: opacity .3s;
        }

        .logo-card:hover {
            border-color: var(--gold);
            transform: translateY(-3px);
            box-shadow: 0 8px 24px rgba(255, 197, 6, .2);
            text-decoration: none;
        }

        .logo-card:hover::before {
            opacity: 1;
        }

        .logo-img {
            max-width: 130px;
            max-height: 54px;
            width: auto;
            height: auto;
            object-fit: contain;
            opacity: .85;
            transition: opacity .3s;
            position: relative;
            z-index: 1;
            pointer-events: none;
        }

        .logo-card:hover .logo-img {
            opacity: 1;
        }

        .logo-dot {
            position: absolute;
            bottom: 8px;
            right: 10px;
            width: 5px;
            height: 5px;
            border-radius: 50%;
            background: var(--gold);
            opacity: 0;
            transition: opacity .3s;
            z-index: 1;
        }

        .logo-card:hover .logo-dot {
            opacity: 1;
        }

        .clients-row-divider {
            width: 100%;
            height: 1px;
            background: linear-gradient(to right, transparent, var(--border-d) 30%, var(--border-d) 70%, transparent);
            margin: 4px 0;
        }

        .clients-cta {
            text-align: center;
            margin-top: 52px;
        }

        .btn-brochure {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 14px 36px;
            border: 1.5px solid var(--gold);
            background: transparent;
            color: var(--gold);
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 600;
            font-size: .88rem;
            letter-spacing: .15em;
            text-transform: uppercase;
            text-decoration: none;
            border-radius: 4px;
            transition: background .25s, color .25s, box-shadow .25s;
        }

        .btn-brochure:hover {
            background: var(--gold);
            color: #000;
            box-shadow: 0 0 28px rgba(255, 197, 6, .35);
            text-decoration: none;
        }

        .btn-brochure svg {
            transition: transform .25s;
        }

        .btn-brochure:hover svg {
            transform: translateY(2px);
        }