.wu-shared {
    --wu-shared-accent: var(--color-primario, currentColor);
    --wu-shared-surface: var(--color-fondo, #fff);
    --wu-shared-border: color-mix(in srgb, currentColor 15%, transparent);
    --wu-shared-muted: color-mix(in srgb, currentColor 66%, transparent);
    container-type: inline-size;
    inline-size: 100%;
    margin-block: clamp(1.5rem, 4cqi, 4rem);
}

.wu-gallery__grid { display: grid; gap: clamp(.55rem, 1.4cqi, 1rem); }
.wu-gallery__item { position: relative; min-inline-size: 0; margin: 0; overflow: hidden; border-radius: clamp(.45rem, 1cqi, .85rem); background: color-mix(in srgb, currentColor 5%, transparent); }
.wu-gallery__link { display: block; inline-size: 100%; block-size: 100%; overflow: hidden; color: inherit; }
.wu-gallery__image { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform .32s ease; }
.wu-gallery__link:hover .wu-gallery__image,
.wu-gallery__link:focus-visible .wu-gallery__image { transform: scale(1.028); }
.wu-gallery__link:focus-visible { outline: .18rem solid var(--wu-shared-accent); outline-offset: -.25rem; }
.wu-gallery__caption { position: absolute; inset-inline: 0; inset-block-end: 0; padding: 2.5rem 1rem .8rem; color: #fff; font-size: .85rem; background: linear-gradient(transparent, rgba(0,0,0,.68)); pointer-events: none; }
.wu-gallery__caption:empty { display: none; }

.wu-gallery--editorial .wu-gallery__grid { grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(7.5rem, 17cqi, 13rem); }
.wu-gallery--editorial .wu-gallery__item { grid-column: span 4; }
.wu-gallery--editorial .wu-gallery__item--0 { grid-column: span 8; grid-row: span 2; }
.wu-gallery--editorial .wu-gallery__item--1,
.wu-gallery--editorial .wu-gallery__item--2 { grid-column: span 4; }
.wu-gallery--editorial .wu-gallery__item--3,
.wu-gallery--editorial .wu-gallery__item--4 { grid-column: span 6; }

.wu-gallery--mosaic .wu-gallery__grid { grid-template-columns: repeat(6, 1fr); grid-auto-rows: clamp(8rem, 18cqi, 14rem); }
.wu-gallery--mosaic .wu-gallery__item { grid-column: span 2; }
.wu-gallery--mosaic .wu-gallery__item--0 { grid-column: span 2; grid-row: span 2; }
.wu-gallery--mosaic .wu-gallery__item--1 { grid-column: span 4; }
.wu-gallery--mosaic .wu-gallery__item--2 { grid-column: span 2; }
.wu-gallery--mosaic .wu-gallery__item--3,
.wu-gallery--mosaic .wu-gallery__item--4 { grid-column: span 2; }

.wu-gallery--carousel .wu-gallery__carousel { overflow: hidden; border-radius: clamp(.55rem, 1.2cqi, 1rem); }
.wu-gallery--carousel .wu-gallery__item { aspect-ratio: 16 / 9; border-radius: 0; }
.wu-gallery--carousel .wu-gallery__counter { position: absolute; inset-block-start: 1rem; inset-inline-end: 1rem; z-index: 2; padding: .35rem .6rem; border-radius: 2rem; color: #fff; font-size: .78rem; letter-spacing: .08em; background: rgba(0,0,0,.55); }
.wu-gallery--carousel .carousel-control-prev,
.wu-gallery--carousel .carousel-control-next { inset-block: 50% auto; inline-size: 3rem; block-size: 3rem; margin: 0 .8rem; border: 0; border-radius: 50%; transform: translateY(-50%); opacity: 1; background: rgba(255,255,255,.9); }
.wu-gallery--carousel .carousel-control-prev-icon,
.wu-gallery--carousel .carousel-control-next-icon { inline-size: 1rem; filter: invert(1); }

.wu-shared[data-wu-ready="true"] [data-wu-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .55s ease var(--wu-reveal-delay,0ms), transform .55s ease var(--wu-reveal-delay,0ms); }
.wu-shared[data-wu-ready="true"] [data-wu-reveal].is-visible { opacity: 1; transform: none; }

.wu-documents__list,
.wu-documents__grid { margin: 0; padding: 0; list-style: none; }
.wu-documents__list { display: grid; gap: .7rem; }
.wu-document { color: inherit; border: 1px solid var(--wu-shared-border); background: var(--wu-shared-surface); }
.wu-document__link { display: flex; align-items: center; gap: 1rem; inline-size: 100%; min-block-size: 4.5rem; padding: .9rem 1rem; color: inherit; text-decoration: none; }
.wu-document__icon { display: grid; flex: 0 0 auto; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border-radius: .65rem; color: var(--wu-shared-accent); background: color-mix(in srgb, var(--wu-shared-accent) 10%, transparent); font-size: 1.35rem; }
.wu-document__content { min-inline-size: 0; flex: 1; }
.wu-document__title { display: block; font-weight: 650; overflow-wrap: anywhere; }
.wu-document__meta { display: block; margin-block-start: .2rem; color: var(--wu-shared-muted); font-size: .78rem; letter-spacing: .06em; }
.wu-document__action { flex: 0 0 auto; transition: transform .25s ease; }
.wu-documents--list .wu-document { border-radius: .75rem; transition: background-color .25s ease, transform .25s ease; }
.wu-documents--list .wu-document:hover { transform: translateX(4px); background: color-mix(in srgb, var(--wu-shared-accent) 4%, var(--wu-shared-surface)); }
.wu-documents--list .wu-document:hover .wu-document__action { transform: translateY(3px); }

.wu-documents__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1rem; }
.wu-documents--cards .wu-document { display: flex; min-block-size: 14rem; border-radius: .85rem; transition: box-shadow .3s ease, transform .3s ease; }
.wu-documents--cards .wu-document__link { flex-direction: column; align-items: flex-start; }
.wu-documents--cards .wu-document__content { flex: 1; }
.wu-documents--cards .wu-document__action { align-self: stretch; display: flex; justify-content: space-between; padding-block-start: .75rem; border-block-start: 1px solid var(--wu-shared-border); }
.wu-documents--cards .wu-document:hover { transform: translateY(-4px); box-shadow: 0 .9rem 2.2rem rgba(0,0,0,.1); }

.wu-documents--panel { padding: clamp(1.3rem, 4cqi, 3.5rem); border: 1px solid var(--wu-shared-border); border-radius: 1rem; background: color-mix(in srgb, var(--wu-shared-accent) 5%, var(--wu-shared-surface)); }
.wu-documents__eyebrow { margin-block-end: .55rem; color: var(--wu-shared-muted); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.wu-documents__heading { max-inline-size: 18ch; margin: 0 0 2rem; font-size: clamp(1.6rem, 4cqi, 2.8rem); line-height: 1.05; }
.wu-documents--panel .wu-document { border: 0; border-block-end: 1px solid var(--wu-shared-border); background: transparent; }
.wu-documents--panel .wu-document__link { padding-inline: 0; }
.wu-document__number { inline-size: 2rem; color: var(--wu-shared-muted); font-variant-numeric: tabular-nums; }
.wu-documents--panel .wu-document__action { transform: rotate(-45deg); }
.wu-documents--panel .wu-document:hover .wu-document__action { transform: translate(2px,-2px) rotate(-45deg); }

@container (max-width: 620px) {
    .wu-gallery--editorial .wu-gallery__grid,
    .wu-gallery--mosaic .wu-gallery__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: clamp(9rem, 40cqi, 14rem); }
    .wu-gallery--editorial .wu-gallery__item,
    .wu-gallery--mosaic .wu-gallery__item { grid-column: span 1; grid-row: span 1; }
    .wu-gallery--editorial .wu-gallery__item--0,
    .wu-gallery--mosaic .wu-gallery__item--0 { grid-column: 1 / -1; }
    .wu-gallery--carousel .wu-gallery__item { aspect-ratio: 4 / 3; }
}

@container (max-width: 390px) {
    .wu-gallery--editorial .wu-gallery__grid,
    .wu-gallery--mosaic .wu-gallery__grid { grid-template-columns: 1fr; }
    .wu-gallery--editorial .wu-gallery__item,
    .wu-gallery--mosaic .wu-gallery__item { grid-column: 1; }
    .wu-document__link { gap: .7rem; padding-inline: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
    .wu-shared [data-wu-reveal],
    .wu-gallery__image,
    .wu-document,
    .wu-document__action { opacity: 1 !important; transform: none !important; transition: none !important; }
}
