/* =========================================
   SYS.SINGLE (VISTA DE PROYECTO)
========================================= */
#sys-single-main { padding: 4rem 2rem; min-height: 80vh; }
.sys-container-single { max-width: 1000px; margin: 0 auto; }

/* Cabecera */
.sys-single-header { 
    padding-bottom: 0; /* Reseteado a 0 para no sumar espacio extra a la grilla */
    margin-bottom: 0; 
}
.sys-btn-back { display: inline-block; color: var(--sys-fg, #000); text-decoration: none; margin-bottom: 2rem; font-weight: bold; border: 1px solid var(--sys-fg, #000); padding: 5px 10px; }
.sys-btn-back:hover { background: var(--sys-fg, #000); color: var(--sys-bg, #fff); }
.sys-single-title { font-size: clamp(2rem, 4vw, 3.5rem); margin: 0 0 10px 0; text-transform: uppercase; line-height: 1.1; }
.sys-single-meta { font-size: 0.9rem; opacity: 0.7; margin: 0; }

/* Contenido (Grilla Estilo Excel) */
.sys-single-content { 
    margin: 0; 
    padding: 0;
}

.sys-excel-grid { 
    display: flex; 
    flex-direction: column; 
    border: 1px dashed rgba(0, 0, 0, 0.3); 
    /* 3rem exactos arriba y abajo. Sin colisiones con otros paddings. */
    margin: 3rem 0; 
}

.sys-excel-row { 
    display: grid; 
    grid-template-columns: 1fr; 
    border-bottom: 1px dashed rgba(0, 0, 0, 0.3); 
    align-items: stretch;
}

.sys-excel-row:last-child { 
    border-bottom: none; 
}

@media (min-width: 768px) {
    .sys-excel-row { grid-template-columns: 2fr 1fr; gap: 0; }
    .sys-excel-row.sys-full-width { display: block; width: 100%; }
}

.sys-excel-desc, .sys-excel-qty { 
    padding: 1rem 1.5rem; 
    font-size: 1rem; 
    line-height: 1.6; 
    text-transform: uppercase; 
}

.sys-excel-qty { 
    font-weight: bold; 
}

@media (min-width: 768px) {
    .sys-excel-desc { border-right: 1px dashed rgba(0, 0, 0, 0.3); }
    .sys-excel-row.sys-full-width .sys-excel-desc { border-right: none; }
}

/* Blindaje contra etiquetas <p> vacías de WordPress que rompen el margen inferior */
.sys-extra-content { margin: 0; padding: 0; }
.sys-extra-content p { margin: 0; }
.sys-extra-content:empty, .sys-extra-content p:empty { display: none; }

/* Galería Grid */
.sys-single-gallery-section { margin-top: 0; padding-top: 0; }
.sys-single-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 15px; }
.sys-gallery-item { cursor: crosshair; }
.sys-gallery-item img { 
    width: 100%; 
    aspect-ratio: 4/3; 
    object-fit: cover; 
    display: block; 
}

/* Modal Lightbox Encapsulado */
#sys-lightbox-modal { position: fixed; inset: 0; background: rgba(255, 255, 255, 0.95); z-index: 999999; display: flex; justify-content: center; align-items: center; opacity: 0; pointer-events: none; transition: opacity 0.2s ease; }
#sys-lightbox-modal.sys-active { opacity: 1; pointer-events: auto; }
#sys-lightbox-modal img { max-width: 90vw; max-height: 85vh; border: 2px dashed var(--sys-fg, #000); box-shadow: 10px 10px 0px rgba(0,0,0,0.1); }
.sys-lightbox-close { position: absolute; top: 20px; right: 20px; background: var(--sys-bg, #fff); color: var(--sys-fg, #000); border: 2px solid var(--sys-fg, #000); font-family: inherit; font-size: 1.2rem; padding: 5px 15px; cursor: pointer; font-weight: bold; }
.sys-lightbox-close:hover { background: var(--sys-fg, #000); color: var(--sys-bg, #fff); }