/* ============================================================
   Green Security — Empleo · Estilos
   Variables de color sincronizadas con el tema
   ============================================================ */

:root {
    --gse-verde:        #89cc36;
    --gse-verde-hover:  #AADD6B;
    --gse-verde-oscuro: #4a8108;
    --gse-negro:        #1f1f1f;
    --gse-negro-oscuro: #131313;
    --gse-blanco:       #ffffff;
    --gse-blanco-gris:  #f5f5f5;
    --gse-gris-fondos:  #383a3d;
    --gse-radio:        8px;
    --gse-gap:          1.5rem;
}

/* ── Listado ──────────────────────────────────────────────── */

.gse-listado {
    width: 100%;
}

/* Filtros */
.gse-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gse-gap);
    margin-bottom: 2.5rem;
    align-items: center;
}

.gse-filtro {
    position: relative;
    flex: 1 1 200px;
}

/* Buscador */
.gse-buscar {
    display: flex;
    align-items: center;
    border: 1px solid #d0d0d0;
    border-radius: var(--gse-radio);
    background: var(--gse-blanco);
    overflow: hidden;
    flex: 2 1 260px;
}

.gse-buscar input[type="text"] {
    flex: 1;
    border: none;
    outline: none;
    padding: .75rem 1rem;
    font-size: .95rem;
    background: transparent;
    color: var(--gse-negro);
}

.gse-buscar button {
    background: transparent;
    border: none;
    padding: .75rem 1rem;
    cursor: pointer;
    color: var(--gse-negro);
    display: flex;
    align-items: center;
}

.gse-buscar button:hover {
    color: var(--gse-verde-oscuro);
}

/* Selects */
.gse-filtro select {
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid #d0d0d0;
    border-radius: var(--gse-radio);
    padding: .75rem 2.5rem .75rem 1rem;
    font-size: .95rem;
    background: var(--gse-blanco);
    color: var(--gse-negro);
    cursor: pointer;
    outline: none;
}

.gse-filtro select:focus {
    border-color: var(--gse-verde);
}

.gse-select-arrow {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: var(--gse-negro);
    font-size: 1.1rem;
}

/* Grid cards */
.gse-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--gse-gap);
    margin-bottom: 2.5rem;
}

@media (max-width: 900px) {
    .gse-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 580px) {
    .gse-grid { grid-template-columns: 1fr; }
    .gse-filtros { flex-direction: column; }
    .gse-filtro { flex: 1 1 100%; }
}

/* Card */
.gse-card {
    background: var(--gse-blanco);
    border: 1px solid #e0e0e0;
    border-radius: var(--gse-radio);
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    transition: box-shadow .2s;
}

.gse-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
}

.gse-card__loc {
    display: flex;
    align-items: center;
    gap: .35rem;
    color: var(--gse-verde-oscuro);
    font-size: .85rem;
    margin: 0;
}

.gse-card__loc svg {
    flex-shrink: 0;
}

.gse-card__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gse-negro);
    margin: .25rem 0 auto;
    line-height: 1.4;
}

.gse-card__title a {
    color: inherit;
    text-decoration: none;
}

.gse-card__title a:hover {
    color: var(--gse-verde-oscuro);
}

.gse-card__link {
    display: inline-block;
    margin-top: 1rem;
    color: var(--gse-verde-oscuro);
    font-size: .9rem;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gse-card__link:hover {
    color: var(--gse-verde);
}

/* Sin resultados */
.gse-sin-resultados {
    padding: 2rem;
    text-align: center;
    color: #666;
}

/* Paginación */
.gse-paginacion {
    display: flex;
    gap: .5rem;
    justify-content: center;
    margin-top: 2rem;
}

.gse-pag__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border: 1px solid #d0d0d0;
    border-radius: 4px;
    color: var(--gse-negro);
    text-decoration: none;
    font-size: .9rem;
    transition: all .15s;
}

.gse-pag__item:hover,
.gse-pag__item.is-active {
    background: var(--gse-verde);
    border-color: var(--gse-verde);
    color: var(--gse-negro-oscuro);
    font-weight: 700;
}

/* ── Ficha ────────────────────────────────────────────────── */

.gse-ficha__hero {
    background: var(--gse-verde);
    padding: 4rem 0 3rem;
}

.gse-ficha__hero-inner,
.gse-ficha__contenido-inner {
    max-width: 860px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.gse-ficha__label {
    color: var(--gse-negro-oscuro);
    font-size: .85rem;
   
    letter-spacing: .08em;
    text-transform: uppercase;
    margin: 0 0 .75rem;
}

.gse-ficha__titulo {
    color: var(--gse-negro);
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 900;
    line-height: 1.15;
    text-transform: uppercase;
    margin: 0 0 1rem;
}

.gse-ficha__sep {
    max-width: 160px;
    border: none;
    border-top: 1px solid var(--gse-negro);
    margin: 1.25rem 0;
}

/* Localización + jornada */
.gse-ficha__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: .5rem;
}

.gse-ficha__meta-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--gse-negro-oscuro);
    font-size: .9rem;   
}

.gse-ficha__meta-item svg {
    flex-shrink: 0;
}

.gse-ficha__contenido {
    padding: 3rem 0 4rem;
    background: var(--gse-blanco);
}

.gse-ficha__h2 {
    color: var(--gse-verde-oscuro);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0 0 1.25rem;
}

.gse-ficha__contenido-inner p {
    margin: 0 0 1rem;
    line-height: 1.7;
    color: var(--gse-negro);
}

.gse-ficha__lista {
    margin: 0 0 1.5rem 1.25rem;
    padding: 0;
    line-height: 1.7;
    color: var(--gse-negro);
}

.gse-ficha__lista li {
    margin-bottom: .35rem;
}

/* Formulario CF7 dentro de la ficha */
.gse-ficha__formulario {
    margin-top: 2.5rem;
    padding: 2rem;
    border: 1px solid #e0e0e0;
    border-radius: var(--gse-radio);
    background: var(--gse-blanco-gris);
}

.gse-ficha__formulario .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* Label "Subir Curriculum" */
.gse-ficha__formulario .wpcf7-form label {
    display: block;
    font-size: .9rem;
    font-weight: 600;
    color: var(--gse-negro);
    margin-bottom: .5rem;
}

/* Fila del input file: botón + texto separados */
.gse-ficha__formulario .wpcf7-form-control-wrap {
    display: block;
}

.gse-ficha__formulario input[type="file"] {
    display: none; /* oculto — usamos el label como botón */
}

/* Botón "Seleccionar archivo" + texto de nombre de fichero */
.gse-ficha__formulario .wpcf7-file-wrap,
.gse-ficha__formulario span:has(> input[type="file"]) {
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
    flex-wrap: wrap !important;
}

/* Fallback: si el navegador no soporta :has(), mostramos el input nativo */
@supports not (selector(:has(> input))) {
    .gse-ficha__formulario input[type="file"] {
        display: block;
        width: auto;
        padding: .5rem .75rem;
        border: 1px solid #c0c0c0;
        border-radius: var(--gse-radio);
        background: var(--gse-blanco);
        font-size: .9rem;
        cursor: pointer;
    }
}

.wpcf7{
   max-width: inherit !important;
}
.wpcf7 input[type=file]{
   height: inherit !important;
   font-size: .7rem !important;
   margin-top: .4rem;
   background: transparent !important;
   border-color: transparent !important;
   padding-left: 0 !important;
}

.wpcf7 br{
   display: none;
}
/* Botón estilo "Seleccionar archivo" */
.gse-ficha__formulario .wpcf7-file-button,
.gse-ficha__formulario label[for="cv"] + span input[type="file"]::file-selector-button,
.gse-ficha__formulario input[type="file"]::file-selector-button {
    display: inline-block !important;
    padding: .6rem 1.25rem !important;
    border: 1.5px solid var(--gse-negro) !important;
    border-radius: var(--gse-radio) !important;
    background: var(--gse-blanco) !important;
    color: var(--gse-negro) !important;
    font-size: .9rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: background .15s, color .15s !important;
    
}

.gse-ficha__formulario input[type="file"]::file-selector-button:hover {
    background: var(--gse-negro);
    color: var(--gse-blanco);
}

/* Texto de ayuda: tipos permitidos */
.gse-ficha__formulario small {
    display: block;
    font-size: .78rem;
    color: #666;
    margin-top: .35rem;
}

/* Separador verde */
.gse-ficha__formulario hr.verde {
    border: none;
    border-top: 1.5px solid var(--gse-verde);
    margin: .5rem 0;
}

/* Bloque RGPD */
.gse-ficha__formulario .wpcf7-acceptance {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
}

.gse-ficha__formulario .wpcf7-acceptance input[type="checkbox"] {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    margin-top: .2rem;
    accent-color: var(--gse-verde);
    cursor: pointer;
}

.gse-ficha__formulario .wpcf7-acceptance .wpcf7-list-item-label {
    font-size: .78rem;
    color: #444;
    line-height: 1.6;
}

/* Botón submit */
.gse-ficha__formulario input[type="submit"],
.gse-ficha__formulario .wpcf7-submit {
   align-self: flex-start !important;
 background: var(--gse-verde) !important;
 color: var(--gse-negro-oscuro) !important;
 border: none !important;
 border-radius: 50px !important;
 padding: .75rem 2rem !important;
 font-weight: 700 !important;
 font-size: .95rem !important;
 cursor: pointer !important;
 transition: background .2s, color .2s !important;
 letter-spacing: .01em !important;
 width: fit-content !important;
 height: inherit !important;
 &:hover{
    background: var(--gse-verde-hover) !important;
 }
}

.gse-ficha__formulario input[type="submit"]:hover,
.gse-ficha__formulario .wpcf7-submit:hover {
    background: var(--gse-verde-oscuro);
    color: var(--gse-blanco);
}

/* Mensajes de error CF7 */
.gse-ficha__formulario .wpcf7-not-valid-tip {
    font-size: .78rem;
    color: #c0392b;
    margin-top: .25rem;
    display: block;
}

.gse-ficha__formulario .wpcf7-response-output {
    font-size: .85rem;
    padding: .75rem 1rem;
    border-radius: var(--gse-radio);
    border: 1px solid #c0392b;
    color: #c0392b;
    margin-top: .5rem;
}

.gse-ficha__formulario .wpcf7-mail-sent-ok {
    border-color: var(--gse-verde-oscuro);
    color: var(--gse-verde-oscuro);
}

/* Botón volver */
.gse-ficha__volver {
    margin-top: 2.5rem;
}

.gse-btn-volver {
    display: inline-block;
    border: 2px solid var(--gse-negro);
    border-radius: 50px;
    padding: .65rem 1.5rem;
    color: var(--gse-negro);
    text-decoration: none;
    font-size: .9rem;
    font-weight: 600;
    transition: all .2s;
}

.gse-btn-volver:hover {
    background: var(--gse-negro);
    color: var(--gse-blanco);
}

/* Aviso */
.gse-aviso {
    color: #888;
    font-style: italic;
}
