
        /* Controles de búsqueda y filtros */
        .sph-controls {
            display: flex;
            flex-wrap: wrap;
            gap: 15px;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 30px;
        }
        .sph-search-input {
            flex: 1;
            min-width: 260px;
            padding: 12px 16px;
            font-size: 15px;
            border: 1px solid #d1d5db;
            border-radius: 8px;
            outline: none;
            transition: border-color 0.2s;
        }
        .sph-search-input:focus {
            border-color: #2563eb;
            box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
        }
        .sph-filters {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }
        .sph-filter-btn {
            background: #f3f4f6;
            color: #374151;
            border: none;
            padding: 9px 16px;
            font-size: 13px;
            font-weight: 600;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.2s ease;
        }
        .sph-filter-btn:hover, .sph-filter-btn.active {
            background: #111827;
            color: #ffffff;
        }

        /* Grilla de Proyectos */
        .sph-grid-wrapper {
            display: grid;
            grid-template-columns: repeat(var(--sph-cols, 3), minmax(0, 1fr));
            gap: 28px;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
        }
        @media (max-width: 992px) {
            .sph-grid-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        }
        @media (max-width: 640px) {
            .sph-grid-wrapper { grid-template-columns: 1fr; }
        }
        .sph-card {
            background: #ffffff;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            transition: transform 0.25s ease, box-shadow 0.25s ease;
            box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
        }
        .sph-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 14px 24px -4px rgba(0,0,0,0.12);
        }
        .sph-card-thumb {
            position: relative;
            aspect-ratio: 16 / 10;
            background: #f3f4f6;
            overflow: hidden;
            border-bottom: 1px solid #f0f0f2;
        }
        .sph-card-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: top center;
            transition: transform 0.4s ease;
            display: block;
        }
        .sph-card:hover .sph-card-thumb img { transform: scale(1.04); }
        .sph-card-date {
            position: absolute;
            top: 12px;
            right: 12px;
            background: rgba(17, 24, 39, 0.78);
            backdrop-filter: blur(4px);
            color: #fff;
            font-size: 11px;
            font-weight: 600;
            padding: 4px 10px;
            border-radius: 20px;
        }
        .sph-card-body {
            padding: 20px;
            display: flex;
            flex-direction: column;
            flex-grow: 1;
        }
        .sph-card-client {
            font-size: 12px;
            text-transform: uppercase;
            letter-spacing: 0.6px;
            color: #2563eb;
            font-weight: 700;
            margin-bottom: 4px;
        }
        .sph-card-title {
            font-size: 18px;
            font-weight: 700;
            color: #111827;
            margin: 0 0 8px 0;
            line-height: 1.35;
        }
        .sph-card-title a { color: inherit; text-decoration: none; }
        .sph-card-desc {
            font-size: 14px;
            color: #4b5563;
            line-height: 1.5;
            margin: 0 0 16px 0;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .sph-card-badges {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin-top: auto;
            margin-bottom: 18px;
        }
        .sph-badge {
            background: #f3f4f6;
            color: #374151;
            font-size: 11px;
            font-weight: 600;
            padding: 4px 9px;
            border-radius: 6px;
        }
        .sph-card-footer {
            display: flex;
            gap: 10px;
            padding-top: 14px;
            border-top: 1px solid #f3f4f6;
        }
        .sph-btn {
            flex: 1;
            text-align: center;
            padding: 9px 12px;
            border-radius: 7px;
            font-size: 13px;
            font-weight: 600;
            text-decoration: none !important;
        }
        .sph-btn-primary { background: #111827; color: #ffffff !important; }
        .sph-btn-primary:hover { background: #2563eb; }
        .sph-btn-outline { background: #f9fafb; color: #374151 !important; border: 1px solid #d1d5db; }
        .sph-btn-outline:hover { background: #f3f4f6; }

        /* Vista Individual Automática (Single Proyecto) */
        .sph-single-container {
            max-width: 900px;
            margin: 0 auto;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
        }
        .sph-single-hero {
            margin-bottom: 25px;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1);
            border: 1px solid #e5e7eb;
        }
        .sph-single-hero img {
            width: 100%;
            height: auto;
            display: block;
        }
        .sph-single-meta-box {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
            background: #f9fafb;
            border: 1px solid #e5e7eb;
            border-radius: 10px;
            padding: 20px;
            margin-bottom: 30px;
        }
        .sph-meta-item strong {
            display: block;
            font-size: 11px;
            text-transform: uppercase;
            color: #6b7280;
            margin-bottom: 3px;
            letter-spacing: 0.5px;
        }
        .sph-meta-item span {
            font-size: 16px;
            font-weight: 700;
            color: #111827;
        }
        .sph-single-content {
            font-size: 16px;
            line-height: 1.7;
            color: #374151;
            margin-bottom: 40px;
        }
        .sph-single-actions {
            display: flex;
            gap: 15px;
            padding-top: 25px;
            border-top: 1px solid #e5e7eb;
        }
.sph-controls label {display:flex;flex-direction:column;gap:6px;font-size:14px;}
.sph-controls input,.sph-controls select{max-width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:6px;}
.sph-controls .sph-search-input{min-width:0;}
.sph-controls button{padding:12px;border:0;border-radius:6px;cursor:pointer;background:#111827;color:#fff;}
.sph-pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
.sph-pagination a,.sph-pagination span{padding:8px 12px;border:1px solid #ddd;border-radius:5px;}
.sph-pagination .current{background:#111827;color:#fff;}
.sph-controls :focus-visible,.sph-pagination a:focus-visible,.sph-btn:focus-visible{outline:3px solid #2563eb;outline-offset:3px;}
.sph-summary{font-size:14px;color:#475569;margin:12px 0;}
@media(prefers-reduced-motion:reduce){.sph-card,.sph-card-thumb img{transition:none;transform:none!important;}}
@media(max-width:640px){.sph-controls label{width:100%;}.sph-single-actions{flex-direction:column;}}
