/*
 * Estilos del bloque «centinela/acordeon» (acordeón de imágenes).
 *
 * WordPress sólo encola esta hoja donde el bloque se pinta. Todo lo que cambia de un sitio a otro
 * va como variable con valor por defecto, para que el tema lo reajuste sin pisar reglas:
 *   --centinela-acordeon-altura         alto de la fila (en móvil, de la columna)
 *   --centinela-acordeon-hueco          separación entre paneles
 *   --centinela-acordeon-crece          cuántas veces más ancho es el panel abierto
 *   --centinela-acordeon-velo           oscurecido de los paneles cerrados
 *   --centinela-acordeon-velo-abierto   oscurecido del abierto
 *   --centinela-acordeon-bajada         cuánto baja el título de un panel cerrado (deja sitio al
 *                                       botón, que sólo sale en el abierto)
 *   --centinela-acordeon-subida         cuánto sube el título del abierto sobre su sitio
 *   --centinela-acordeon-duracion       duración de las transiciones
 */

.centinela-acordeon {
    --centinela-acordeon-altura: 60vh;
    --centinela-acordeon-hueco: 10px;
    --centinela-acordeon-crece: 2;
    --centinela-acordeon-velo: rgba(0, 0, 0, .31);
    --centinela-acordeon-velo-abierto: rgba(0, 0, 0, .64);
    --centinela-acordeon-bajada: 92px;
    --centinela-acordeon-subida: 0px;
    --centinela-acordeon-duracion: .4s;
    position: relative;
}

/* Los controles viajan con `hidden` hasta que el JS los activa (el `display` de la clase ganaría). */
.centinela-acordeon [hidden] {
    display: none;
}

.centinela-acordeon__paneles {
    display: flex;
    gap: var(--centinela-acordeon-hueco);
    height: var(--centinela-acordeon-altura);
}

.centinela-acordeon__panel {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    cursor: pointer;
    transition: flex-grow var(--centinela-acordeon-duracion) ease;
}

.centinela-acordeon__imagen {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

.centinela-acordeon__velo {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 30px 30px 60px;
    background: var(--centinela-acordeon-velo);
    text-align: center;
    transition: background-color var(--centinela-acordeon-duracion) ease;
}

.centinela-acordeon__interior {
    min-width: 0;
}

/* El título es un botón (teclado y lector de pantalla), vestido de texto. */
.centinela-acordeon__titulo {
    display: block;
    margin: 12px auto 0;
    padding: 0;
    border: 0;
    background: none;
    color: #fff;
    font: inherit;
    font-size: 24px;
    line-height: 1.8;
    cursor: pointer;
    transform: translateY(var(--centinela-acordeon-bajada));
    transition: transform var(--centinela-acordeon-duracion) ease;
}

.centinela-acordeon__contenido {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity var(--centinela-acordeon-duracion) ease, transform var(--centinela-acordeon-duracion) ease;
}

.centinela-acordeon__boton {
    display: inline-block;
    margin-top: 21px;
    padding: 10px 30px;
    background: #fff;
    color: #000;
    text-decoration: none;
}

/*
 * Abierto: el que marca `es-abierto` (lo pone el servidor para el de partida y el JS después) y,
 * SIN JS, el que tiene el foco dentro. Con JS las reglas de foco se apagan (`--con-js`): la clase ya
 * sigue al foco, y si no, tras un clic el título conserva el foco y al pasar el ratón por otro panel
 * quedaban dos abiertos. El enlace de un panel cerrado no recibe clics:
 * está invisible, y un toque en ese sitio tiene que abrir el panel, no llevarse al visitante.
 */
.centinela-acordeon__panel.es-abierto,
.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__panel:focus-within {
    flex-grow: var(--centinela-acordeon-crece);
}

.es-abierto > .centinela-acordeon__velo,
.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__panel:focus-within > .centinela-acordeon__velo {
    background: var(--centinela-acordeon-velo-abierto);
}

.es-abierto .centinela-acordeon__titulo,
.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__panel:focus-within .centinela-acordeon__titulo {
    transform: translateY(calc(-1 * var(--centinela-acordeon-subida)));
}

.es-abierto .centinela-acordeon__contenido,
.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__panel:focus-within .centinela-acordeon__contenido {
    opacity: 1;
    transform: none;
}

.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__panel:not(.es-abierto):not(:focus-within) .centinela-acordeon__boton,
.centinela-acordeon--con-js .centinela-acordeon__panel:not(.es-abierto) .centinela-acordeon__boton {
    pointer-events: none;
}

/*
 * Sin JS, el de partida (`es-abierto`, del servidor) y el que tiene el foco estarían abiertos a la
 * vez: si el foco está en OTRO panel, el de partida cede. (Con JS no se da: la clase sigue al foco.)
 */
.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__paneles:has(:focus-within) > .es-abierto:not(:focus-within) {
    flex-grow: 1;
}

.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__paneles:has(:focus-within) > .es-abierto:not(:focus-within) > .centinela-acordeon__velo {
    background: var(--centinela-acordeon-velo);
}

.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__paneles:has(:focus-within) > .es-abierto:not(:focus-within) .centinela-acordeon__titulo {
    transform: translateY(var(--centinela-acordeon-bajada));
}

.centinela-acordeon:not(.centinela-acordeon--con-js) .centinela-acordeon__paneles:has(:focus-within) > .es-abierto:not(:focus-within) .centinela-acordeon__contenido {
    opacity: 0;
    transform: translateY(60px);
}

.centinela-acordeon__flechas {
    display: flex;
    gap: 15px;
}

.centinela-acordeon__anterior,
.centinela-acordeon__siguiente {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: #efefef;
    color: #000;
    cursor: pointer;
}

.centinela-acordeon__anterior:hover,
.centinela-acordeon__siguiente:hover {
    background: #000;
    color: #fff;
}

.centinela-acordeon__titulo:focus-visible,
.centinela-acordeon__boton:focus-visible,
.centinela-acordeon__anterior:focus-visible,
.centinela-acordeon__siguiente:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px #000;
}

/* En un móvil una fila de franjas estrechas no se entiende: los paneles van en columna. */
@media (max-width: 767px) {
    .centinela-acordeon__paneles {
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .centinela-acordeon__panel,
    .centinela-acordeon__velo,
    .centinela-acordeon__titulo,
    .centinela-acordeon__contenido {
        transition: none;
    }
}
