
        :root {
            --sm-primary: #0d2f66;
            --sm-secondary: #0066cc;
            --sm-accent: #00b4d8;
            --sm-gradient: linear-gradient(135deg, #0d2f66 0%, #0066cc 60%, #00b4d8 100%);
            --sm-light: #f0f6ff;
            --sm-text: #1e293b;
            --sm-muted: #64748b;
        }

        .sm-page {
            font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
            color: var(--sm-text);
        }

        /* ============================
           HERO
        ============================ */
        .sm-hero {
            background: var(--sm-gradient);
            color: #fff;
            padding: 100px 20px 80px;
            position: relative;
            overflow: hidden;
        }

        .sm-hero::before {
            content: '';
            position: absolute;
            top: -80px;
            right: -80px;
            width: 420px;
            height: 420px;
            background: rgba(255, 255, 255, 0.05);
            border-radius: 50%;
        }

        .sm-hero::after {
            content: '';
            position: absolute;
            bottom: -100px;
            left: -60px;
            width: 320px;
            height: 320px;
            background: rgba(0, 180, 216, 0.08);
            border-radius: 50%;
        }

        .sm-hero-inner {
            max-width: 1100px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 60px;
            align-items: center;
            position: relative;
            z-index: 1;
        }

        .sm-hero-badge {
            display: inline-block;
            background: rgba(0, 180, 216, 0.25);
            color: #7dd3fc;
            border: 1px solid rgba(125, 211, 252, 0.4);
            padding: 6px 18px;
            border-radius: 50px;
            font-size: 0.82rem;
            font-weight: 600;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            margin-bottom: 20px;
        }

        .sm-hero h1 {
            font-size: 3rem;
            font-weight: 800;
            line-height: 1.18;
            margin-bottom: 22px;
        }

        .sm-hero h1 span {
            color: #7dd3fc;
        }

        .sm-hero-subtitle {
            font-size: 1.15rem;
            opacity: 0.9;
            line-height: 1.7;
            margin-bottom: 36px;
        }

        .sm-hero-actions {
            display: flex;
            gap: 14px;
            flex-wrap: wrap;
        }

        .sm-btn-primary {
            background: #00b4d8;
            color: #fff;
            padding: 14px 32px;
            border-radius: 8px;
            font-weight: 700;
            font-size: 1rem;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all 0.3s ease;
            border: none;
            cursor: pointer;
        }

        .sm-btn-primary:hover {
            background: #0096c7;
            transform: translateY(-2px);
            box-shadow: 0 8px 20px rgba(0, 180, 216, 0.35);
            color: #fff;
        }

        .sm-btn-outline {
            background: transparent;
            color: #fff;
            padding: 14px 32px;
            border-radius: 8px;
            font-weight: 700;
            font-size: 1rem;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all 0.3s ease;
            border: 2px solid rgba(255, 255, 255, 0.7);
        }

        .sm-btn-outline:hover {
            background: rgba(255, 255, 255, 0.12);
            color: #fff;
            border-color: #fff;
        }

        .sm-hero-visual {
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .sm-code-card {
            background: rgba(255, 255, 255, 0.08);
            border: 1px solid rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(10px);
            border-radius: 16px;
            padding: 28px 32px;
            width: 100%;
            max-width: 420px;
            font-family: 'Courier New', monospace;
            font-size: 0.9rem;
        }

        .sm-code-header {
            display: flex;
            gap: 8px;
            margin-bottom: 20px;
        }

        .sm-code-dot {
            width: 12px;
            height: 12px;
            border-radius: 50%;
        }

        .sm-code-dot.red {
            background: #ff5f57;
        }

        .sm-code-dot.yellow {
            background: #febc2e;
        }

        .sm-code-dot.green {
            background: #28c840;
        }

        .sm-code-line {
            margin: 6px 0;
            opacity: 0.88;
            line-height: 1.6;
        }

        .sm-code-kw {
            color: #7dd3fc;
        }

        .sm-code-fn {
            color: #86efac;
        }

        .sm-code-str {
            color: #fde68a;
        }

        .sm-code-cm {
            color: #94a3b8;
            font-style: italic;
        }

        .sm-code-pn {
            color: #e2e8f0;
        }

        /* ============================
           STATS BAND
        ============================ */
        .sm-stats {
            background: var(--sm-primary);
            color: #fff;
            padding: 40px 20px;
        }

        .sm-stats-inner {
            max-width: 1000px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 30px;
            text-align: center;
        }

        .sm-stat-num {
            font-size: 2.4rem;
            font-weight: 800;
            color: #7dd3fc;
            line-height: 1;
        }

        .sm-stat-label {
            font-size: 0.9rem;
            opacity: 0.8;
            margin-top: 6px;
        }

        /* ============================
           PROBLEM / VALUE PROP
        ============================ */
        .sm-section {
            padding: 80px 20px;
        }

        .sm-section-inner {
            max-width: 1100px;
            margin: 0 auto;
        }

        .sm-section-tag {
            display: inline-block;
            background: var(--sm-light);
            color: var(--sm-secondary);
            border: 1px solid rgba(0, 102, 204, 0.2);
            padding: 5px 16px;
            border-radius: 50px;
            font-size: 0.82rem;
            font-weight: 700;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            margin-bottom: 14px;
        }

        .sm-section-title {
            font-size: 2.4rem;
            font-weight: 800;
            color: var(--sm-primary);
            margin-bottom: 16px;
            line-height: 1.25;
            text-align: center;
        }

        .sm-section-lead {
            font-size: 1.1rem;
            color: var(--sm-muted);
            line-height: 1.7;
            max-width: 720px;
            margin: 0 auto;
            text-align: center;
        }

        /* ============================
           PROBLEMAS / "¿Por qué a la medida?"
        ============================ */
        .sm-problems {
            background: var(--sm-light);
        }

        .sm-problems-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
            gap: 24px;
            margin-top: 50px;
        }

        .sm-problem-card {
            background: #fff;
            border-radius: 12px;
            padding: 28px;
            border-left: 4px solid #ef4444;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .sm-problem-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
        }

        .sm-problem-icon {
            font-size: 2rem;
            margin-bottom: 12px;
            color: #ef4444;
        }

        .sm-problem-card h4 {
            color: var(--sm-primary);
            font-weight: 700;
            margin-bottom: 8px;
            font-size: 1.05rem;
        }

        .sm-problem-card p {
            color: var(--sm-muted);
            font-size: 0.92rem;
            line-height: 1.6;
            margin: 0;
        }

        /* ============================
           CARRUSEL INFINITO DE PROBLEMAS
        ============================ */

        @keyframes sm-carousel-scroll {
            0%   { transform: translateX(0); }
            100% { transform: translateX(-1296px); }
        }

        .sm-problems-carousel-wrapper {
            overflow: hidden;
            margin-top: 50px;
            position: relative;
        }

        /* Fade edges */
        .sm-problems-carousel-wrapper::before,
        .sm-problems-carousel-wrapper::after {
            content: '';
            position: absolute;
            top: 0;
            bottom: 0;
            width: 80px;
            z-index: 2;
            pointer-events: none;
        }

        .sm-problems-carousel-wrapper::before {
            left: 0;
            background: linear-gradient(to right, var(--sm-light), transparent);
        }

        .sm-problems-carousel-wrapper::after {
            right: 0;
            background: linear-gradient(to left, var(--sm-light), transparent);
        }

        .sm-problems-carousel-track {
            display: flex;
            align-items: center;
            animation: sm-carousel-scroll 22s linear infinite;
            will-change: transform;
        }

        .sm-problems-carousel-wrapper:hover .sm-problems-carousel-track {
            animation-play-state: paused;
        }

        .sm-carousel-card {
            flex-shrink: 0;
            width: 300px;
            margin-right: 24px;
            background: #fff;
            border-radius: 14px;
            overflow: hidden;
            /* border-left: 4px solid #449cef; */
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
            transition: box-shadow 0.3s ease;
            transform-origin: center center;
        }

        .sm-carousel-card:hover {
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
        }

        .sm-carousel-card-img {
            width: 100%;
            height: 175px;
            overflow: hidden;
            position: relative;
        }

        .sm-carousel-card-overlay-title {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            padding: 36px 16px 13px;
            background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, transparent 100%);
            color: #fff;
            font-weight: 800;
            font-size: 1.05rem;
            line-height: 1.25;
            text-shadow: 0 1px 4px rgba(0,0,0,0.45);
            pointer-events: none;
        }

        .sm-carousel-card-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform 0.4s ease;
        }

        .sm-carousel-card:hover .sm-carousel-card-img img {
            transform: scale(1.05);
        }

        .sm-carousel-card-body {
            padding: 20px 20px 22px;
        }

        .sm-carousel-card-body .sm-problem-icon {
            font-size: 1.6rem;
            margin-bottom: 10px;
            color: #ef4444;
        }

        .sm-carousel-card-body h4 {
            color: var(--sm-primary);
            font-weight: 700;
            font-size: 1.02rem;
            margin-bottom: 8px;
        }

        .sm-carousel-card-body p {
            color: var(--sm-muted);
            font-size: 0.88rem;
            line-height: 1.6;
            margin: 0;
        }

        @media (prefers-reduced-motion: reduce) {
            .sm-problems-carousel-track {
                animation: none;
            }
        }

                /* ============================
            SERVICIOS / QUÉ DESARROLLAMOS
            ============================ */
        .sm-services-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
            gap: 28px;
            margin-top: 50px;
        }

        .sm-service-card {
            background: #fff;
            border-radius: 14px;
            border: 2px solid black;
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
            transition: all 0.3s ease;
            overflow: hidden;
            display: flex;
            flex-direction: column;
        }

        /* SECCIÓN SUPERIOR: ICONO + TÍTULO */
        .sm-service-header {
            background: #f5f5f5;
            padding: 32px 28px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 16px;
            flex-shrink: 0;
        }

        .sm-service-icon {
            width: 80px;
            height: 80px;
            background: var(--sm-light);
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--sm-secondary);
        }

        .sm-service-icon img {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }

        .sm-service-header h4 {
            color: var(--sm-primary);
            font-weight: 700;
            font-size: 1.15rem;
            margin: 0;
            text-align: center;
        }

        /* SECCIÓN INFERIOR: DESCRIPCIÓN */
        .sm-service-description {
            padding: 28px;
            background: #ffffff;
            flex-grow: 1;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .sm-service-description p {
            color: var(--sm-muted);
            font-size: 0.93rem;
            line-height: 1.65;
            margin: 0;
            text-align: center;
        }

        /* HOVER */
        .sm-service-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 16px 36px rgba(0, 102, 204, 0.14);
            border-color: var(--sm-accent);
        }

        .sm-service-card:hover .sm-service-header {
            background: #efefef;
        }

        /* ============================
           PROCESO
        ============================ */
        .sm-process {
            background: var(--sm-primary);
            color: #fff;
        }

        .sm-process .sm-section-title {
            color: #fff;
        }

        .sm-process .sm-section-lead {
            color: rgba(255, 255, 255, 0.75);
        }

        .sm-process-steps {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 0;
            margin-top: 60px;
            position: relative;
        }

        .sm-process-steps::before {
            content: '';
            position: absolute;
            top: 36px;
            left: 10%;
            right: 10%;
            height: 2px;
            background: linear-gradient(to right, transparent, rgba(0, 180, 216, 0.5), transparent);
        }

        .sm-step {
            text-align: center;
            padding: 0 20px;
            position: relative;
            z-index: 1;
        }

        .sm-step-num {
            width: 72px;
            height: 72px;
            background: linear-gradient(135deg, #0066cc, #00b4d8);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.6rem;
            font-weight: 800;
            color: #fff;
            margin: 0 auto 18px;
            box-shadow: 0 0 0 8px rgba(0, 180, 216, 0.15);
        }

        .sm-step h4 {
            font-size: 1.05rem;
            font-weight: 700;
            margin-bottom: 10px;
            color: #7dd3fc;
        }

        .sm-step p {
            font-size: 0.88rem;
            color: rgba(255, 255, 255, 0.72);
            line-height: 1.6;
        }

        /* ============================
           BENEFICIOS
        ============================ */
        .sm-benefits {
            background: #fff;
        }

        .sm-benefits-layout {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 60px;
            align-items: center;
            margin-top: 50px;
        }

        .sm-benefits-list {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .sm-benefits-list li {
            display: flex;
            gap: 16px;
            padding: 18px 0;
            border-bottom: 1px solid #f1f5f9;
            align-items: flex-start;
        }

        .sm-benefits-list li:last-child {
            border-bottom: none;
        }

        .sm-benefit-check {
            width: 36px;
            height: 36px;
            background: linear-gradient(135deg, #0066cc, #00b4d8);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            font-size: 1rem;
            flex-shrink: 0;
            margin-top: 2px;
        }

        .sm-benefit-text strong {
            display: block;
            color: var(--sm-primary);
            font-weight: 700;
            margin-bottom: 4px;
            font-size: 1rem;
        }

        .sm-benefit-text span {
            color: var(--sm-muted);
            font-size: 0.92rem;
            line-height: 1.55;
        }

        .sm-benefits-visual {
            background: var(--sm-gradient);
            border-radius: 20px;
            padding: 40px;
            color: #fff;
            text-align: center;
        }

        .sm-benefits-visual h3 {
            font-size: 1.7rem;
            font-weight: 800;
            margin-bottom: 10px;
        }

        .sm-benefits-visual p {
            opacity: 0.82;
            font-size: 0.95rem;
            margin-bottom: 28px;
            line-height: 1.6;
        }

        .sm-metric-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 16px;
            margin-bottom: 16px;
        }

        .sm-metric {
            background: rgba(255, 255, 255, 0.1);
            border: 1px solid rgba(255, 255, 255, 0.18);
            border-radius: 10px;
            padding: 18px;
        }

        .sm-metric-val {
            font-size: 1.9rem;
            font-weight: 800;
            color: #7dd3fc;
            line-height: 1;
        }

        .sm-metric-lbl {
            font-size: 0.8rem;
            opacity: 0.8;
            margin-top: 4px;
        }

        /* ============================
           TECNOLOGÍAS
        ============================ */
        .sm-tech {
            background: var(--sm-light);
        }

        .sm-tech-grid {
            display: flex;
            flex-wrap: wrap;
            gap: 14px;
            margin-top: 40px;
            justify-content: center;
        }

        .sm-tech-badge {
            background: #fff;
            border: 1.5px solid #e2e8f0;
            border-radius: 50px;
            padding: 10px 22px;
            font-size: 0.92rem;
            font-weight: 600;
            color: var(--sm-primary);
            display: flex;
            align-items: center;
            gap: 8px;
            transition: all 0.3s ease;
            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
        }

        .sm-tech-badge:hover {
            border-color: var(--sm-secondary);
            background: var(--sm-light);
            transform: translateY(-3px);
            box-shadow: 0 6px 16px rgba(0, 102, 204, 0.12);
        }

        .sm-tech-badge i {
            color: var(--sm-secondary);
        }

        /* ============================
           SECTORES
        ============================ */
        .sm-sectors {
            background: #fff;
        }

        .sm-sectors-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
            margin-top: 50px;
        }

        .sm-sector-item {
            text-align: center;
            padding: 28px 20px;
            border-radius: 12px;
            border: 1.5px solid #e8edf4;
            background: #fff;
            transition: all 0.3s ease;
        }

        .sm-sector-item:hover {
            background: var(--sm-light);
            border-color: var(--sm-secondary);
            transform: translateY(-5px);
            box-shadow: 0 8px 20px rgba(0, 102, 204, 0.1);
        }

        .sm-sector-item i {
            font-size: 2.2rem;
            color: var(--sm-secondary);
            margin-bottom: 12px;
            display: block;
        }

        .sm-sector-item span {
            font-size: 0.92rem;
            font-weight: 600;
            color: var(--sm-primary);
        }

        /* ============================
           TESTIMONIALS / CASES
        ============================ */
        .sm-cases {
            background: var(--sm-light);
        }

        .sm-cases-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 28px;
            margin-top: 50px;
        }

        .sm-case-card {
            background: #fff;
            border-radius: 14px;
            padding: 30px;
            box-shadow: 0 3px 14px rgba(0, 0, 0, 0.07);
            transition: all 0.3s ease;
            border-bottom: 4px solid var(--sm-secondary);
        }

        .sm-case-card:hover {
            transform: translateY(-6px);
            box-shadow: 0 12px 30px rgba(0, 102, 204, 0.13);
        }

        .sm-case-tag {
            display: inline-block;
            background: var(--sm-light);
            color: var(--sm-secondary);
            border-radius: 50px;
            padding: 4px 14px;
            font-size: 0.78rem;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            margin-bottom: 16px;
        }

        .sm-case-card h4 {
            color: var(--sm-primary);
            font-weight: 700;
            font-size: 1.1rem;
            margin-bottom: 10px;
        }

        .sm-case-card p {
            color: var(--sm-muted);
            font-size: 0.91rem;
            line-height: 1.65;
            margin-bottom: 16px;
        }

        .sm-case-result {
            font-size: 0.88rem;
            color: #059669;
            font-weight: 600;
        }

        .sm-case-result i {
            margin-right: 5px;
        }

        /* ============================
           CTA FINAL
        ============================ */
        .sm-cta {
            background: var(--sm-gradient);
            color: #fff;
            padding: 90px 20px;
            text-align: center;
            position: relative;
            overflow: hidden;
        }

        .sm-cta::before {
            content: '';
            position: absolute;
            top: -60px;
            right: -60px;
            width: 280px;
            height: 280px;
            background: rgba(255, 255, 255, 0.05);
            border-radius: 50%;
        }

        .sm-cta-inner {
            max-width: 700px;
            margin: 0 auto;
            position: relative;
            z-index: 1;
        }

        .sm-cta h2 {
            font-size: 2.6rem;
            font-weight: 800;
            margin-bottom: 18px;
            line-height: 1.25;
        }

        .sm-cta p {
            font-size: 1.1rem;
            opacity: 0.88;
            margin-bottom: 36px;
            line-height: 1.7;
        }

        .sm-cta-actions {
            display: flex;
            gap: 16px;
            justify-content: center;
            flex-wrap: wrap;
        }

        .sm-btn-cta-primary {
            background: #fff;
            color: var(--sm-primary);
            padding: 16px 38px;
            border-radius: 8px;
            font-weight: 800;
            font-size: 1.05rem;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 10px;
            transition: all 0.3s ease;
        }

        .sm-btn-cta-primary:hover {
            background: #f0f6ff;
            transform: translateY(-3px);
            box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
            color: var(--sm-primary);
        }

        .sm-btn-cta-outline {
            background: transparent;
            color: #fff;
            padding: 16px 38px;
            border-radius: 8px;
            font-weight: 700;
            font-size: 1.05rem;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 10px;
            transition: all 0.3s ease;
            border: 2px solid rgba(255, 255, 255, 0.75);
        }

        .sm-btn-cta-outline:hover {
            background: rgba(255, 255, 255, 0.12);
            border-color: #fff;
            color: #fff;
        }

        /* ============================
           BREADCRUMB / BACK
        ============================ */
        .sm-topbar {
            background: #fff;
            border-bottom: 1px solid #e8edf4;
            padding: 12px 20px;
        }

        .sm-topbar-inner {
            max-width: 1100px;
            margin: 0 auto;
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 0.88rem;
        }

        .sm-topbar a {
            color: var(--sm-secondary);
            text-decoration: none;
            font-weight: 500;
        }

        .sm-topbar a:hover {
            text-decoration: underline;
        }

        .sm-topbar .sep {
            color: #cbd5e1;
        }

        .sm-topbar .current {
            color: var(--sm-muted);
        }

        /* ============================
           RESPONSIVE
        ============================ */
        @media (max-width: 900px) {
            .sm-hero-inner {
                grid-template-columns: 1fr;
                text-align: center;
                gap: 40px;
            }

            .sm-hero-actions {
                justify-content: center;
            }

            .sm-hero h1 {
                font-size: 2.3rem;
            }

            .sm-section-title {
                font-size: 2rem;
            }

            .sm-stats-inner {
                grid-template-columns: repeat(2, 1fr);
            }

            .sm-benefits-layout {
                grid-template-columns: 1fr;
                gap: 40px;
            }

            .sm-metric-row {
                grid-template-columns: repeat(2, 1fr);
            }

            .sm-process-steps::before {
                display: none;
            }
        }

        @media (max-width: 576px) {
            .sm-hero {
                padding: 70px 20px 60px;
            }

            .sm-hero h1 {
                font-size: 1.9rem;
            }

            .sm-section-title {
                font-size: 1.7rem;
            }

            .sm-stats-inner {
                grid-template-columns: repeat(2, 1fr);
                gap: 20px;
            }

            .sm-stat-num {
                font-size: 2rem;
            }

            .sm-cta h2 {
                font-size: 2rem;
            }
        }

/* ===== CARRUSEL DE CARACTERÍSTICAS (SOFT FEATURES) ===== */

.soft-section-incluye {
    background: white;
    border-bottom: 1px solid #e2e8f0;
    padding: 80px 20px;
}

.soft-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.soft-section-title {
    font-size: 2.5rem;
    color: #0f172a;
    text-align: center;
    margin-bottom: 1rem;
    font-weight: 900;
    letter-spacing: -0.5px;
}

.soft-section-subtitle {
    text-align: center;
    color: #64748b;
    font-size: 1.05rem;
    margin-bottom: 3rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}

.soft-features-shell {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.soft-features-carousel {
    position: relative;
    width: 100%;
    max-width: min(1180px, 100%);
    margin: 0 auto;
    overflow: hidden;
    --soft-feature-width: clamp(15rem, 28vw, 24rem);
    --soft-feature-gap: 1.2rem;
}

.soft-features-viewport {
    overflow: hidden;
    width: 100%;
}

.soft-features-grid {
    display: flex;
    gap: var(--soft-feature-gap);
    align-items: end;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding: 1.5rem max(0.9rem, calc((100% - var(--soft-feature-width)) / 2)) 2rem;
}

.soft-features-grid::-webkit-scrollbar {
    display: none;
}

.soft-features-controls {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.soft-features-arrow {
    width: 3rem;
    height: 3rem;
    border: 1px solid rgba(13, 47, 102, 0.22);
    border-radius: 999px;
    background: white;
    color: #0d2f66;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 24px rgba(13, 47, 102, 0.12);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
}

.soft-features-arrow:hover {
    transform: translateY(-2px);
    background: #0d2f66;
    color: white;
    box-shadow: 0 16px 32px rgba(13, 47, 102, 0.2);
}

.soft-feature-card,
.soft-feature-card-amplified {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    cursor: pointer;
    transition: transform 0.45s ease, opacity 0.45s ease, box-shadow 0.45s ease, filter 0.45s ease;
    flex: 0 0 var(--soft-feature-width);
    scroll-snap-align: center;
    height: 460px;
    transform-origin: center bottom;
    transform: translateY(calc((1 - var(--feature-proximity, 0.45)) * 34px)) scale(calc(0.84 + (var(--feature-proximity, 0.45) * 0.22)));
    opacity: calc(0.48 + (var(--feature-proximity, 0.45) * 0.52));
    filter: saturate(calc(0.72 + (var(--feature-proximity, 0.45) * 0.45))) brightness(calc(0.78 + (var(--feature-proximity, 0.45) * 0.22)));
    box-shadow: 0 16px 35px rgba(15, 23, 42, 0.10);
    will-change: transform, opacity, filter;
}

.soft-feature-card.is-active,
.soft-feature-card-amplified.is-active {
    box-shadow: 0 28px 60px rgba(15, 23, 42, 0.24);
}

.soft-feature-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}

.soft-feature-card:hover .soft-feature-photo,
.soft-feature-card-amplified:hover .soft-feature-photo {
    transform: scale(1.05);
}

.soft-feature-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.78) 0%,
        rgba(0, 0, 0, 0.48) 35%,
        rgba(0, 0, 0, 0.18) 60%,
        rgba(0, 0, 0, 0.03) 100%
    );
    z-index: 1;
}

.soft-feature-title {
    position: absolute;
    left: 1.8rem;
    right: 1.8rem;
    bottom: 2rem;
    z-index: 2;
    margin: 0;
    color: white;
    font-size: 2.15rem;
    line-height: 1.02;
    font-weight: 900;
    letter-spacing: -1px;
    text-shadow: 0 4px 12px rgba(0,0,0,.35);
}

.soft-feature-description {
    margin: 1.5rem 0 0 0;
    padding: 0;
    color: #475569;
    font-size: 1rem;
    line-height: 1.6;
    text-align: left;
}

/* ===== RESPONSIVE SOFT FEATURES ===== */
@media (max-width: 1200px) {
    .soft-features-carousel {
        --soft-feature-width: clamp(15rem, 42vw, 22rem);
    }

    .soft-feature-card,
    .soft-feature-card-amplified {
        height: 420px;
    }

    .soft-feature-description {
        font-size: 0.98rem;
    }
}

@media (max-width: 992px) {
    .soft-features-carousel {
        --soft-feature-width: clamp(14rem, 62vw, 21rem);
        --soft-feature-gap: 1rem;
    }

    .soft-feature-description {
        font-size: 0.95rem;
    }
}

@media (max-width: 768px) {
    .soft-section-title {
        font-size: 1.8rem;
    }

    .soft-features-carousel {
        --soft-feature-width: min(20rem, 78vw);
        --soft-feature-gap: 0.85rem;
    }

    .soft-feature-card,
    .soft-feature-card-amplified {
        height: 340px;
        border-radius: 24px;
    }

    .soft-feature-title {
        font-size: 1.7rem;
        left: 1.4rem;
        right: 1.4rem;
        bottom: 1.5rem;
    }

    .soft-feature-description {
        font-size: 0.95rem;
        margin: 1rem 0 0 0;
    }

    .soft-features-grid {
        padding-top: 1rem;
        padding-bottom: 1.5rem;
    }

    .soft-features-arrow {
        width: 2.75rem;
        height: 2.75rem;
    }
}

@media (max-width: 576px) {
    .soft-section-incluye {
        padding: 50px 15px;
    }

    .soft-feature-card,
    .soft-feature-card-amplified {
        height: 300px;
    }

    .soft-features-carousel {
        --soft-feature-width: min(18rem, calc(100vw - 3.5rem));
        --soft-feature-gap: 0.75rem;
    }

    .soft-feature-title {
        font-size: 1.45rem;
    }

    .soft-feature-description {
        font-size: 0.9rem;
        margin: 0.8rem 0 0 0;
        line-height: 1.5;
    }

    .soft-features-controls {
        gap: 0.55rem;
    }
}
