:root {
    --cahices-hormigon: #6b6f73;
    --cahices-oscuro: #1c1f22;
    --cahices-claro: #f4f4f2;
    --cahices-acento: #b8860b;
    --cahices-borde: #e0e0dd;
}

/* ---------- Hero de proyecto ---------- */
.proyecto-hero {
    position: relative;
    min-height: 62vh;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    background-color: var(--cahices-oscuro);
}
.proyecto-hero__velo {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(18,20,22,.88) 0%, rgba(18,20,22,.35) 55%, rgba(18,20,22,.15) 100%);
}
.proyecto-hero__texto {
    position: relative;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px 56px;
    color: #fff;
}
.proyecto-hero__texto h1 {
    color: #fff;
    font-size: clamp(1.9rem, 4vw, 3.2rem);
    line-height: 1.15;
    margin: 0 0 16px;
    max-width: 20ch;
}
.proyecto-hero__migas {
    font-size: .85rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin: 0 0 14px;
    opacity: .85;
}
.proyecto-hero__migas a { color: #fff; text-decoration: none; }
.proyecto-hero__migas a:hover { text-decoration: underline; }
.proyecto-hero__migas span { margin: 0 8px; opacity: .6; }
.proyecto-etiqueta {
    display: inline-block;
    margin: 0 8px 8px 0;
    padding: 6px 14px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 999px;
    font-size: .82rem;
    color: #fff;
    text-decoration: none;
}
.proyecto-etiqueta:hover { background: #fff; color: var(--cahices-oscuro); }

/* ---------- Cuerpo ---------- */
.proyecto-cuerpo {
    max-width: 820px;
    margin: 0 auto;
    padding: 64px 24px 24px;
    font-size: 1.06rem;
    line-height: 1.75;
}
.proyecto-cuerpo .proyecto-resumen {
    font-size: 1.24rem;
    line-height: 1.6;
    padding-left: 20px;
    border-left: 4px solid var(--cahices-acento);
}
.proyecto-cuerpo h2 {
    margin: 48px 0 16px;
    font-size: 1.6rem;
}
.proyecto-cuerpo table {
    width: 100%;
    border-collapse: collapse;
    font-size: .98rem;
}
.proyecto-cuerpo table th,
.proyecto-cuerpo table td {
    text-align: left;
    padding: 12px 14px;
    border-bottom: 1px solid var(--cahices-borde);
    vertical-align: top;
}
.proyecto-cuerpo table th { width: 38%; font-weight: 600; background: var(--cahices-claro); }

/* La galería sale del ancho de lectura para respirar */
.proyecto-cuerpo .wp-block-gallery {
    max-width: 1180px;
    margin-left: calc(50% - min(590px, 46vw));
    transform: translateX(-50%);
    left: 50%;
    position: relative;
    width: min(1180px, 94vw);
    gap: 10px;
}
.proyecto-cuerpo .wp-block-gallery img {
    border-radius: 2px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    width: 100%;
}

/* ---------- Rejilla de tarjetas ---------- */
.proyectos-rejilla {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: 28px;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}
.proyecto-tarjeta {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border: 1px solid var(--cahices-borde);
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}
.proyecto-tarjeta:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0,0,0,.13);
}
.proyecto-tarjeta img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}
.proyecto-tarjeta__texto { padding: 20px 22px 26px; }
.proyecto-tarjeta__familia {
    display: block;
    font-size: .74rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--cahices-acento);
    margin-bottom: 8px;
}
.proyecto-tarjeta h2,
.proyecto-tarjeta h3 {
    font-size: 1.12rem;
    line-height: 1.35;
    margin: 0 0 10px;
}
.proyecto-tarjeta p { margin: 0; font-size: .93rem; color: #5a5f63; line-height: 1.6; }

/* ---------- Cabecera y filtros del archivo ---------- */
.proyectos-cabecera {
    max-width: 1180px;
    margin: 0 auto;
    padding: 64px 24px 20px;
}
.proyectos-cabecera h1 { margin: 0 0 12px; font-size: clamp(1.8rem, 3.6vw, 2.8rem); }
.proyectos-cabecera p { max-width: 62ch; color: #5a5f63; font-size: 1.05rem; margin: 0; }

.proyectos-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    max-width: 1180px;
    margin: 0 auto;
    padding: 28px 24px 36px;
}
.proyecto-filtro {
    padding: 9px 18px;
    border: 1px solid var(--cahices-borde);
    border-radius: 999px;
    font-size: .9rem;
    text-decoration: none;
    color: var(--cahices-oscuro);
    background: #fff;
}
.proyecto-filtro:hover { border-color: var(--cahices-oscuro); }
.proyecto-filtro.es-activo {
    background: var(--cahices-oscuro);
    border-color: var(--cahices-oscuro);
    color: #fff;
}

.proyectos-relacionados {
    max-width: 1180px;
    margin: 72px auto 0;
    padding: 0 24px;
}
.proyectos-relacionados h2 { margin: 0 0 26px; font-size: 1.5rem; }
.proyectos-relacionados .proyectos-rejilla { padding: 0; }
.proyectos-relacionados .proyecto-tarjeta h3 { padding: 18px 20px 22px; margin: 0; }

/* ---------- CTA ---------- */
.proyecto-cta {
    margin: 80px 0 0;
    padding: 64px 24px 72px;
    background: var(--cahices-oscuro);
    color: #fff;
    text-align: center;
}
.proyecto-cta h2 { color: #fff; margin: 0 0 12px; font-size: 1.7rem; }
.proyecto-cta p { margin: 0 0 28px; opacity: .82; }
.boton-cta {
    display: inline-block;
    margin: 0 8px 10px;
    padding: 15px 34px;
    background: var(--cahices-acento);
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    border-radius: 2px;
}
.boton-cta:hover { filter: brightness(1.12); color: #fff; }
.boton-cta--linea { background: transparent; border: 1px solid rgba(255,255,255,.6); }

.proyectos-paginacion { max-width: 1180px; margin: 48px auto 0; padding: 0 24px; }

@media (max-width: 640px) {
    .proyecto-hero { min-height: 48vh; }
    .proyecto-cuerpo { padding-top: 40px; }
    .proyecto-cuerpo .wp-block-gallery { width: 100%; margin-left: 0; left: 0; transform: none; }
}

/* ---------- Cabecera del archivo con foto ---------- */
.proyectos-cabecera {
    position: relative;
    max-width: none;
    padding: 0;
    min-height: 46vh;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    background-color: var(--cahices-oscuro);
}
.proyectos-cabecera__velo {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(4,33,80,.92) 0%, rgba(4,33,80,.55) 60%, rgba(4,33,80,.3) 100%);
}
.proyectos-cabecera__texto {
    position: relative;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px 52px;
}
.proyectos-cabecera__texto h1 {
    color: #fff;
    margin: 0 0 14px;
    font-size: clamp(1.9rem, 4vw, 3rem);
    line-height: 1.14;
}
.proyectos-cabecera__texto p {
    color: #E4E8EC;
    max-width: 62ch;
    font-size: 1.06rem;
    margin: 0;
}
.proyectos-rejilla--archivo { margin-bottom: 8px; }
.proyecto-tarjeta { border-radius: 3px; }

/* ---------- Blog ---------- */
.entradas-rejilla .entrada-enlace { display: block; text-decoration: none; color: inherit; }
.entradas-rejilla .proyecto-tarjeta img { aspect-ratio: 16 / 10; }
.entrada-mas {
    display: inline-block;
    margin-top: 14px;
    font-size: .88rem;
    font-weight: 600;
    color: var(--cahices-acento);
}
.entrada-cuerpo h2 { font-size: 1.55rem; }
.entrada-cuerpo h3 { font-size: 1.2rem; margin: 34px 0 12px; }
.entrada-cuerpo img { max-width: 100%; height: auto; border-radius: 2px; }
.entrada-cuerpo ul, .entrada-cuerpo ol { padding-left: 22px; margin: 18px 0; }
.entrada-cuerpo li { margin-bottom: 8px; }
