
/* =========================================================
   franVagu — PROJECTS REFINEMENT
   Cargar DESPUÉS de style.css, brand-palette.css,
   hero-refinement.css y services-refinement.css.
   ========================================================= */

.projects-section {
    position: relative;
    overflow: hidden;
}

/* Línea de identidad */
.projects-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 150px;
    height: 1px;
    background: linear-gradient(
        90deg,
        #0D47A1,
        #00B8FF,
        #00E1C6
    );
    box-shadow: 0 0 20px rgba(0,184,255,.22);
}

.projects-section .section-eyebrow {
    color: #00B8FF;
}

/* El título mantiene la sobriedad, con un pequeño acento */
.projects-section .section-heading h2::after {
    content: "";
    display: block;
    width: 58px;
    height: 2px;
    margin-top: 28px;
    background: linear-gradient(
        90deg,
        #1565C0,
        #00B8FF,
        #00E1C6
    );
}

/* =========================================================
   PROJECT LIST
   ========================================================= */

.projects-list {
    position: relative;
}

/* Separadores muy sutiles entre proyectos */
.project-card + .project-card {
    position: relative;
}

.project-card + .project-card::before {
    content: "";
    position: absolute;
    top: -55px;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(0,184,255,.12),
        transparent
    );
}

/* =========================================================
   VISUAL / PROJECT PREVIEW
   ========================================================= */

.project-image {
    border-color: rgba(0,184,255,.14);
    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(0,184,255,.08),
            transparent 48%
        ),
        #0A0F1A;
    transition:
        border-color .35s ease,
        transform .35s ease,
        box-shadow .35s ease;
}

.project-image::before {
    background-image:
        linear-gradient(rgba(0,184,255,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,184,255,.055) 1px, transparent 1px);
    transition: opacity .35s ease;
}

/* Marco interior */
.project-image::after {
    content: "";
    position: absolute;
    inset: 22px;
    border: 1px solid rgba(0,225,198,.09);
    pointer-events: none;
    transition:
        inset .35s ease,
        border-color .35s ease;
}

/* Hover del proyecto */
.project-card:hover .project-image {
    border-color: rgba(0,184,255,.32);
    transform: translateY(-3px);
    box-shadow:
        0 18px 50px rgba(0,71,161,.13),
        0 0 35px rgba(0,184,255,.055);
}

.project-card:hover .project-image::before {
    opacity: 1.35;
}

.project-card:hover .project-image::after {
    inset: 16px;
    border-color: rgba(0,225,198,.17);
}

/* =========================================================
   PLACEHOLDER — no parece una imagen vacía
   ========================================================= */

.project-placeholder span {
    color: #00B8FF;
    opacity: .16;
    text-shadow:
        0 0 35px rgba(0,184,255,.25);
    transition:
        opacity .35s ease,
        transform .35s ease,
        text-shadow .35s ease;
}

.project-card:hover .project-placeholder span {
    opacity: .30;
    transform: scale(1.035);
    text-shadow:
        0 0 45px rgba(0,184,255,.38);
}

/* Diferenciación de las tres piezas */
.project-image-01 {
    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(0,184,255,.10),
            transparent 52%
        ),
        #0A0F1A;
}

.project-image-02 {
    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(21,101,192,.13),
            transparent 52%
        ),
        #0A0F1A;
}

.project-image-03 {
    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(0,225,198,.08),
            transparent 52%
        ),
        #0A0F1A;
}

.project-image-03 .project-placeholder span {
    color: #00E1C6;
}

/* =========================================================
   META / INFO
   ========================================================= */

.project-meta {
    color: rgba(255,255,255,.43);
}

.project-meta span:first-child {
    color: #00B8FF;
}

.project-meta span:last-child {
    color: rgba(255,255,255,.48);
}

.project-info h3 {
    transition:
        color .3s ease,
        transform .3s ease;
}

.project-card:hover .project-info h3 {
    color: #ffffff;
    transform: translateX(3px);
}

.project-info p {
    color: #aeb9c8;
}

/* Tags */
.project-tags span {
    border-color: rgba(0,184,255,.15);
    color: rgba(255,255,255,.48);
    transition:
        border-color .25s ease,
        color .25s ease,
        background .25s ease;
}

.project-card:hover .project-tags span {
    border-color: rgba(0,184,255,.24);
}

.project-tags span:hover {
    border-color: rgba(0,225,198,.50);
    color: #00E1C6;
    background: rgba(0,225,198,.035);
}

/* =========================================================
   CTA FINAL
   ========================================================= */

.projects-cta {
    border-top-color: rgba(0,184,255,.14);
}

.projects-cta p {
    color: #aeb9c8;
}

.projects-cta .hero-button-primary {
    box-shadow:
        0 10px 30px rgba(0,71,161,.16);
}

.projects-cta .hero-button-primary:hover {
    box-shadow:
        0 14px 38px rgba(0,184,255,.20);
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 900px) {
    .project-card:hover .project-image {
        transform: none;
    }
}

@media (max-width: 600px) {
    .projects-section {
        padding-top: 95px;
    }

    .projects-section .section-heading h2::after {
        margin-top: 22px;
    }

    .project-image::after {
        inset: 16px;
    }

    .project-card + .project-card::before {
        top: -32px;
        left: 5%;
        right: 5%;
    }
}
