:root {
	--wu-ink: #111111;
	--wu-paper: #ffffff;
	--wu-stone: #f4f3f1;
	--wu-line: #d9d7d3;
	--wu-accent: #b5292b;
	--wu-muted: #6f6b66;
	--wu-serif: 'EB Garamond', Georgia, 'Times New Roman', serif;
	--wu-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--wu-max: 1200px;
	--wu-gap: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--wu-sans);
	color: var(--wu-ink);
	background: var(--wu-paper);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 {
	font-family: var(--wu-serif);
	font-weight: 500;
	margin: 0 0 0.5em;
	letter-spacing: -0.01em;
}
.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}
.wu-skip-link {
	position: absolute;
	top: -100px;
	left: 0;
	background: var(--wu-ink);
	color: var(--wu-paper);
	padding: 12px 20px;
	z-index: 1000;
}
.wu-skip-link:focus { top: 0; }
.wu-container {
	max-width: var(--wu-max);
	margin: 0 auto;
	padding: 0 24px;
}
.wu-section { padding-top: 56px; padding-bottom: 56px; }
.wu-narrow { max-width: 560px; }
.wu-prose { max-width: 720px; }

/* ---------- Header ---------- */

.wu-header {
	background: var(--wu-ink);
	color: var(--wu-paper);
	border-bottom: 1px solid rgba(255,255,255,0.12);
	position: sticky;
	top: 0;
	z-index: 100;
}
.wu-header__inner {
	max-width: var(--wu-max);
	margin: 0 auto;
	padding: 18px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	position: relative;
}
.wu-logo {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.1;
	color: var(--wu-paper);
}
.wu-logo__eyebrow {
	font-family: var(--wu-sans);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.28em;
	color: rgba(255,255,255,0.75);
	margin-bottom: 2px;
}
.wu-logo__word {
	font-family: var(--wu-serif);
	font-size: 30px;
	font-weight: 500;
	letter-spacing: 0.01em;
}
.wu-logo__image {
	display: block;
	height: 50px;
	width: auto;
}
.wu-nav {
	order: 1;
	display: flex;
	align-items: center;
	gap: 24px;
}
.wu-nav__list {
	list-style: none;
	display: flex;
	gap: 22px;
	margin: 0;
	padding: 0;
}
.wu-nav__list a {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wu-paper);
	opacity: 0.9;
}
.wu-nav__list a:hover { opacity: 1; }
.wu-header__account {
	order: 3;
	display: flex;
}
.wu-header__account--mobile { display: none; }
.wu-account-nav {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.wu-account-nav a { color: var(--wu-paper); opacity: 0.9; }
.wu-account-nav a:hover { opacity: 1; }
.wu-account-nav__icon-link { display: inline-flex; align-items: center; justify-content: center; }
.wu-account-nav__upload-btn {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--wu-paper);
	padding: 6px 14px;
	font-size: 11px;
	transition: background 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}
.wu-account-nav__upload-btn:hover {
	background: var(--wu-paper);
	color: var(--wu-ink);
	opacity: 1;
}
.wu-account-nav__icon { width: 18px; height: 18px; fill: currentColor; display: block; }
.wu-header .wu-button {
	background: transparent;
	border: 0;
	color: var(--wu-paper);
	padding: 0;
	font-size: 12px;
	letter-spacing: 0.08em;
}
.wu-header .wu-button:hover { background: transparent; color: var(--wu-paper); opacity: 1; }

.wu-nav-toggle {
	order: 0;
	display: none;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 8px;
}
.wu-nav-toggle__bar {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--wu-paper);
	margin: 4px 0;
}

/* ---------- Botones ---------- */

.wu-button {
	display: inline-block;
	background: var(--wu-ink);
	color: var(--wu-paper);
	padding: 14px 28px;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border: 1px solid var(--wu-ink);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}
.wu-button:hover { background: var(--wu-paper); color: var(--wu-ink); }
.wu-button--small { padding: 8px 16px; font-size: 12px; }

.wu-cta {
	display: inline-block;
	background: var(--wu-ink);
	color: var(--wu-paper);
	padding: 14px 32px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	border: 1px solid var(--wu-ink);
	transition: background 0.15s ease, color 0.15s ease;
}
.wu-cta:hover { background: var(--wu-paper); color: var(--wu-ink); }

/* ---------- Hero ---------- */

.wu-hero {
	padding: 88px 0 56px;
	text-align: center;
	background: var(--wu-paper);
}
.wu-hero__title {
	font-family: var(--wu-serif);
	font-weight: 500;
	font-size: clamp(40px, 6vw, 64px);
	margin-bottom: 16px;
}
.wu-hero__subtitle {
	font-size: 17px;
	color: var(--wu-muted);
	max-width: 560px;
	margin: 0 auto;
}

/* ---------- Secciones con heading + CTA ---------- */

.wu-section-heading {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 20px;
	margin-bottom: 32px;
	padding: 32px 0;
	border-top: 1px solid var(--wu-line);
	border-bottom: 1px solid var(--wu-line);
}
.wu-section-heading h2 {
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	margin: 0;
}

/* ---------- Grid de fotos ---------- */

.wu-grid {
	column-count: 4;
	column-gap: var(--wu-gap);
}
.wu-grid--compact { column-count: 6; }

.wu-photo-card {
	position: relative;
	display: inline-block;
	width: 100%;
	break-inside: avoid;
	margin-bottom: var(--wu-gap);
}
.wu-photo-card__link {
	display: block;
	overflow: hidden;
	background: var(--wu-stone);
}
.wu-photo-card__link img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.4s ease;
}
.wu-photo-card:hover .wu-photo-card__link img { transform: scale(1.04); }
.wu-photo-card__meta {
	padding-top: 8px;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wu-muted);
}
.wu-photo-card__date {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	letter-spacing: 0.03em;
	text-transform: none;
	color: var(--wu-muted);
	opacity: 0.8;
}
.wu-badge {
	position: absolute;
	top: 8px; left: 8px;
	background: var(--wu-ink);
	color: var(--wu-paper);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 4px 8px;
}
.wu-badge--pending { background: var(--wu-accent); }
.wu-empty { color: var(--wu-muted); padding: 32px 0; }

/* ---------- Filtros ---------- */

.wu-filters {
	display: flex;
	gap: 24px;
	margin-bottom: 32px;
	border-bottom: 1px solid var(--wu-line);
	padding-bottom: 16px;
	flex-wrap: wrap;
}
.wu-filter {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wu-muted);
	padding-bottom: 4px;
}
.wu-filter.is-active { color: var(--wu-ink); border-bottom: 2px solid var(--wu-ink); }
.wu-pagination {
	display: flex;
	justify-content: space-between;
	margin-top: 40px;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* ---------- Fotografos ---------- */

.wu-photographers-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}
.wu-photographer-card { text-align: center; display: block; }
.wu-photographer-card__avatar {
	width: 120px; height: 120px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 auto 12px;
}
.wu-photographer-card__name {
	display: block;
	font-family: var(--wu-serif);
	font-size: 18px;
}
.wu-photographer-card__country {
	display: block;
	font-size: 13px;
	color: var(--wu-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.wu-photographer-card__award {
	display: inline-block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--wu-accent);
}
.wu-directory-search {
	display: flex;
	gap: 12px;
	margin-bottom: 40px;
	flex-wrap: wrap;
}
.wu-directory-search input,
.wu-directory-search select {
	padding: 12px 14px;
	border: 1px solid var(--wu-line);
	background: var(--wu-paper);
	font-family: var(--wu-sans);
	font-size: 14px;
	line-height: 1.4;
}
.wu-directory-search select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 36px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23111111' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 10px 6px;
	cursor: pointer;
}
.wu-directory-search input { flex: 1; min-width: 200px; }

/* Grid de directorio estilo PhotoVogue: mosaico de fotos cuadradas,
 * nombre y pais superpuestos sobre degradado, sin avatar circular. */
.wu-directory .wu-photographers-grid {
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 3px;
}
.wu-directory .wu-photographer-card {
	position: relative;
	aspect-ratio: 1;
	overflow: hidden;
	text-align: left;
	background: var(--wu-stone);
}
.wu-directory .wu-photographer-card::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.78), rgba(0,0,0,0) 60%);
	pointer-events: none;
}
.wu-directory .wu-photographer-card__avatar {
	width: 100%;
	height: 100%;
	border-radius: 0;
	object-fit: cover;
	margin: 0;
	transition: transform 0.5s ease;
}
.wu-directory .wu-photographer-card:hover .wu-photographer-card__avatar {
	transform: scale(1.06);
}
.wu-directory .wu-photographer-card__name {
	position: absolute;
	z-index: 1;
	left: 16px;
	right: 16px;
	bottom: 32px;
	color: var(--wu-paper);
	font-family: var(--wu-serif);
	font-size: 17px;
}
.wu-directory .wu-photographer-card__country {
	position: absolute;
	z-index: 1;
	left: 16px;
	bottom: 12px;
	color: rgba(255,255,255,0.75);
}
.wu-directory .wu-photographer-card__award {
	position: absolute;
	z-index: 1;
	top: 12px;
	right: 12px;
	margin-top: 0;
	color: var(--wu-paper);
	background: rgba(0,0,0,0.55);
	padding: 4px 8px;
	font-size: 11px;
}

@media ( max-width: 640px ) {
	.wu-directory .wu-photographers-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.wu-directory .wu-photographer-card__name {
		font-size: 14px;
		bottom: 26px;
	}
}

/* ---------- Perfil publico ---------- */

.wu-profile-header { background: var(--wu-stone); padding: 56px 0; }
.wu-profile-header__inner {
	display: flex;
	gap: 40px;
	align-items: flex-start;
	flex-wrap: wrap;
}
.wu-profile-header__avatar {
	width: 160px; height: 160px;
	border-radius: 50%;
	object-fit: cover;
}
.wu-profile-header__info { flex: 1; min-width: 260px; }
.wu-profile-header__country {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 13px;
	color: var(--wu-muted);
	margin: 0 0 12px;
}
.wu-profile-header__bio { max-width: 560px; }
.wu-profile-header__links { display: flex; gap: 16px; margin: 16px 0; }
.wu-profile-header__links a {
	font-size: 13px;
	text-transform: uppercase;
	border-bottom: 1px solid var(--wu-ink);
}
.wu-profile-header__achievements {
	list-style: none;
	padding: 0;
	margin: 12px 0 0;
	font-size: 14px;
	color: var(--wu-accent);
}

/* ---------- Foto individual ---------- */

.wu-single-photo {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 40px;
	padding: 56px 0;
}
.wu-single-photo__figure { position: relative; background: var(--wu-stone); }
.wu-single-photo__author {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 16px 0;
}
.wu-single-photo__author img { border-radius: 50%; }
.wu-tag {
	display: inline-block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border: 1px solid var(--wu-line);
	padding: 4px 10px;
	margin-right: 8px;
}

/* ---------- Formularios ---------- */

.wu-form { max-width: 480px; }
.wu-field { margin-bottom: 20px; display: flex; flex-direction: column; gap: 6px; }
.wu-field label { font-size: 13px; text-transform: uppercase; letter-spacing: 0.04em; }
.wu-field input,
.wu-field select,
.wu-field textarea {
	padding: 12px 14px;
	border: 1px solid var(--wu-line);
	font-family: var(--wu-sans);
	font-size: 15px;
	line-height: 1.4;
	background: var(--wu-paper);
}
.wu-field select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 36px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23111111' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 10px 6px;
	cursor: pointer;
}
.wu-field small { color: var(--wu-muted); font-size: 12px; }
.wu-notice {
	background: var(--wu-stone);
	padding: 14px 18px;
	margin-bottom: 20px;
	font-size: 14px;
}
.wu-form-error {
	background: #fbeaea;
	color: var(--wu-accent);
	padding: 14px 18px;
	margin-bottom: 20px;
	font-size: 14px;
}
.wu-quota { font-size: 13px; color: var(--wu-muted); }
.wu-form-footnote { margin-top: 24px; font-size: 14px; color: var(--wu-muted); }
.wu-account-section { padding: 32px 0; border-top: 1px solid var(--wu-line); }
.wu-account-section:first-child { border-top: 0; padding-top: 0; }

/* ---------- About / requisitos ---------- */

.wu-requirements { padding-left: 20px; }
.wu-requirements li { margin-bottom: 8px; }

/* ---------- FAQ ---------- */

.wu-faq-item { border-bottom: 1px solid var(--wu-line); }
.wu-faq-question {
	width: 100%;
	text-align: left;
	background: none;
	border: 0;
	padding: 20px 0;
	font-family: var(--wu-serif);
	font-size: 18px;
	cursor: pointer;
	position: relative;
	padding-right: 24px;
}
.wu-faq-question::after {
	content: '+';
	position: absolute;
	right: 0; top: 18px;
	font-size: 20px;
}
.wu-faq-item.is-open .wu-faq-question::after { content: '\2212'; }
.wu-faq-answer { max-height: 0; overflow: hidden; color: var(--wu-muted); }
.wu-faq-item.is-open .wu-faq-answer { max-height: 400px; padding-bottom: 20px; }

/* ---------- Footer ---------- */

.wu-footer { background: var(--wu-ink); color: var(--wu-paper); margin-top: 64px; }
.wu-footer__inner {
	max-width: var(--wu-max);
	margin: 0 auto;
	padding: 48px 24px;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 32px;
}
.wu-logo--footer { color: var(--wu-paper); }
.wu-footer__tagline { color: #b7b4af; margin-top: 8px; }
.wu-footer__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.wu-footer a { opacity: 0.85; }
.wu-footer a:hover { opacity: 1; }

/* ---------- Responsive ---------- */

@media (max-width: 960px) {
	.wu-photographers-grid { grid-template-columns: repeat(2, 1fr); }
	.wu-single-photo { grid-template-columns: 1fr; }
	.wu-footer__inner { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
	.wu-nav-toggle { display: block; }
	.wu-header__inner { flex-wrap: wrap; }
	.wu-logo { order: 1; margin: 0 auto; }
	.wu-header__account--desktop { display: none; }
	.wu-header__account--mobile { display: flex; margin-top: 20px; }
	.wu-nav {
		order: 4;
		display: none;
		width: 100%;
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
		padding-top: 20px;
	}
	.wu-nav.is-open { display: flex; }
	.wu-nav__list { flex-direction: column; gap: 16px; }
	.wu-account-nav { flex-direction: column; align-items: flex-start; gap: 12px; }

	.wu-grid { column-count: 2; }
	.wu-grid--compact { column-count: 3; }
	.wu-photographers-grid { grid-template-columns: 1fr; }
	.wu-profile-header__inner { flex-direction: column; align-items: center; text-align: center; }
}


/* ---------- Footer ---------- */
.wu-footer {
	background: var(--wu-ink);
	color: var(--wu-paper);
	margin-top: 64px;
}
.wu-footer__inner {
	max-width: var(--wu-max);
	margin: 0 auto;
	padding: 64px 24px 40px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 48px;
}
.wu-footer__brand {
	flex: 1 1 280px;
	max-width: 360px;
}
.wu-logo--footer {
	position: static;
	left: auto;
	top: auto;
	transform: none;
	display: inline-flex;
}
.wu-logo--footer .wu-logo__image {
	height: 50px;
	width: auto;
}
.wu-footer__tagline {
	color: #b7b4af;
	margin-top: 14px;
	font-size: 15px;
	max-width: 320px;
}
.wu-footer__social {
	display: flex;
	gap: 16px;
	margin-top: 22px;
	flex-wrap: wrap;
}
.wu-footer__social a {
	color: var(--wu-paper);
	opacity: 0.85;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.wu-footer__social a:hover {
	opacity: 1;
}
.wu-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 18px;
	font-size: 14px;
	color: #b7b4af;
}
.wu-footer__contact a {
	color: #b7b4af;
}
.wu-footer__contact a:hover {
	color: var(--wu-paper);
}
.wu-footer__menus {
	display: flex;
	gap: 64px;
	flex-wrap: wrap;
}
.wu-footer__col h3, .wu-footer__col .wu-footer__heading {
	font-family: var(--wu-sans);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 18px;
	color: var(--wu-paper);
}
.wu-footer__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.wu-footer__list a {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #cfccc7;
}
.wu-footer a:hover {
	opacity: 1;
	color: var(--wu-paper);
}
.wu-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.12);
	padding: 20px 0;
}
.wu-footer__bottom p {
	margin: 0;
	font-size: 12px;
	color: #928f8a;
	text-align: center;
}

@media (max-width: 960px) {
	.wu-footer__menus {
		gap: 40px;
	}
}

@media (max-width: 720px) {
	.wu-footer__inner {
		flex-direction: column;
		gap: 40px;
	}
	.wu-footer__brand {
		max-width: 100%;
	}
	.wu-footer__menus {
		width: 100%;
		justify-content: space-between;
		gap: 32px;
	}
}


/* Task 32: formularios editoriales de registro/perfil (estilo PhotoVogue) */
.wu-form--editorial { max-width: 640px; }
.wu-form__hint {
	font-size: 13px;
	color: var(--wu-muted);
	margin: -8px 0 24px;
}
.wu-form__section {
	padding: 28px 0;
	border-top: 1px solid var(--wu-line);
}
.wu-form__section:first-of-type { border-top: 0; padding-top: 0; }
.wu-form__section-title {
	font-family: var(--wu-serif);
	font-size: 20px;
	font-weight: 400;
	margin: 0 0 20px;
}
.wu-field--wide { max-width: none; }
.wu-field-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px 24px;
}
.wu-tag-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.wu-tag-option {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border: 1px solid var(--wu-line);
	font-size: 13px;
	cursor: pointer;
	background: var(--wu-paper);
	transition: border-color 0.15s ease, background 0.15s ease;
}
.wu-tag-option:has(input:checked) {
	border-color: var(--wu-ink);
	background: var(--wu-stone);
}
.wu-tag-option input { margin: 0; }
@media (max-width: 640px) {
	.wu-field-grid { grid-template-columns: 1fr; }
}


/* Task 43: grid de fotografos en la home, 6 por linea, avatar 30% mas pequeno */
.wu-photographers-grid--home {
	grid-template-columns: repeat(6, 1fr);
	gap: 20px;
}
.wu-photographers-grid--home .wu-photographer-card__avatar {
	width: 84px;
	height: 84px;
}
@media (max-width: 960px) {
	.wu-photographers-grid--home { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
	.wu-photographers-grid--home { grid-template-columns: repeat(2, 1fr); }
}


/* Task 45: perfil público - tags de categorías/temas y contador de portfolio */
.wu-profile-header__tags {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wu-muted);
	max-width: 560px;
	margin: 4px 0 0;
}
.wu-profile-portfolio__count {
	font-size: 13px;
	color: var(--wu-muted);
	margin: -8px 0 24px;
}


/* Task 47: página Mi cuenta - cabecera de cuenta y formulario de datos */
.wu-account-section--account {
	border-bottom: 1px solid var(--wu-line, #e2ddd6);
	padding-bottom: 32px;
	margin-bottom: 32px;
}
.wu-account-header {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
}
.wu-account-header__avatar {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
}
.wu-account-header__name {
	font-size: 18px;
	font-weight: 600;
	margin: 0 0 4px;
}
.wu-account-header__link {
	font-size: 13px;
	text-decoration: underline;
	color: var(--wu-muted);
}
.wu-button--small {
	padding: 6px 14px;
	font-size: 12px;
	cursor: pointer;
	display: inline-block;
}
.wu-field--avatar small {
	display: block;
	width: 100%;
	margin-top: 6px;
	color: var(--wu-muted);
	font-size: 12px;
}


/* Task 48: dashboard Mi perfil - pestañas y grid de fotos con overlay de edición */
.wu-dashboard__nav {
	display: flex;
	gap: 8px;
	border-bottom: 1px solid var(--wu-line);
	margin-bottom: 24px;
}
.wu-dashboard__tab {
	background: none;
	border: none;
	padding: 12px 4px;
	margin-right: 24px;
	font-family: var(--wu-sans);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wu-muted);
	cursor: pointer;
	border-bottom: 2px solid transparent;
}
.wu-dashboard__tab.is-active {
	color: var(--wu-ink);
	border-bottom-color: var(--wu-ink);
}
.wu-dashboard__panel[hidden] {
	display: none;
}
.wu-account-section--photos {
	margin-top: 32px;
}
.wu-photo-card {
	position: relative;
}
.wu-photo-card__media {
	position: relative;
	overflow: hidden;
}
.wu-photo-card__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(17, 17, 17, 0.45);
	opacity: 0;
	transition: opacity 0.15s ease;
}
.wu-photo-card__media:hover .wu-photo-card__overlay {
	opacity: 1;
}
.wu-photo-card__edit-btn {
	background: var(--wu-paper);
	color: var(--wu-ink);
	border: none;
	padding: 8px 20px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	cursor: pointer;
}
.wu-photo-card__edit-panel {
	padding: 10px 0;
}
.wu-photo-card__title-input {
	width: 100%;
	padding: 6px 8px;
	font-family: var(--wu-sans);
	font-size: 13px;
	border: 1px solid var(--wu-line);
	margin-bottom: 6px;
}
.wu-photo-card__edit-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: nowrap;
}
.wu-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	background: var(--wu-stone);
	border: 1px solid var(--wu-line);
	border-radius: 50%;
	cursor: pointer;
	padding: 0;
}
.wu-icon-btn svg { width: 14px; height: 14px; fill: var(--wu-ink); }
.wu-icon-btn:hover { background: var(--wu-ink); }
.wu-icon-btn:hover svg { fill: var(--wu-paper); }
.wu-icon-btn--danger svg { fill: #b3261e; }
.wu-icon-btn--danger:hover { background: #b3261e; border-color: #b3261e; }
.wu-icon-btn--danger:hover svg { fill: var(--wu-paper); }
.wu-link-button {
	background: none;
	border: none;
	padding: 0;
	font-size: 12px;
	text-decoration: underline;
	color: var(--wu-muted);
	cursor: pointer;
}
.wu-link-button--danger {
	color: #b3261e;
}
.wu-photo-card__edit-message {
	font-size: 12px;
	color: #b3261e;
	margin: 6px 0 0;
}
.wu-upload-widget { margin-bottom: 24px; }
.wu-dropzone { border: 2px dashed var(--wu-line); padding: 32px 20px; text-align: center; cursor: pointer; transition: border-color 0.15s ease, background 0.15s ease; margin-bottom: 16px; }
.wu-dropzone.is-dragover { border-color: var(--wu-ink); background: #fafafa; }
.wu-dropzone.is-disabled { opacity: 0.5; cursor: not-allowed; }
.wu-dropzone__text { font-family: var(--wu-sans); font-size: 14px; color: var(--wu-ink); margin: 0 0 6px; }
.wu-dropzone__hint { font-family: var(--wu-sans); font-size: 12px; color: var(--wu-muted); margin: 0; }
.wu-upload-queue { margin-bottom: 16px; }
.wu-upload-queue:empty { display: none; }
.wu-upload-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--wu-line); font-family: var(--wu-sans); font-size: 13px; }
.wu-upload-item__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--wu-ink); }
.wu-upload-item__status { flex-shrink: 0; color: var(--wu-muted); }
.wu-upload-item.is-success .wu-upload-item__status { color: #2e7d32; }
.wu-upload-item.is-error .wu-upload-item__status { color: #b3261e; }
.wu-dropzone__step { font-family: var(--wu-sans); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wu-muted); margin: 0 0 10px; }
.wu-dropzone__step strong { color: var(--wu-ink); font-weight: 600; }
.wu-dropzone.is-uploading { opacity: 0.6; cursor: wait; }
.wu-finish-early { font-family: var(--wu-sans); font-size: 12px; color: var(--wu-muted); text-decoration: underline; margin-left: 12px; }
.wu-finish-early:hover { color: var(--wu-ink); }
.wu-upload-form--hidden { display: none; }
.wu-form-preview { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.wu-form-preview__img { width: 88px; height: 88px; object-fit: cover; border-radius: 4px; background: #eee; }
.wu-form-preview__change { font-family: var(--wu-sans); font-size: 12px; color: var(--wu-muted); text-decoration: underline; background: none; border: none; cursor: pointer; padding: 0; }
.wu-form-preview__change:hover { color: var(--wu-ink); }
.wu-uploaded-strip { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.wu-uploaded-strip:empty { display: none; margin-bottom: 0; }
.wu-uploaded-card { position: relative; width: 72px; height: 72px; border-radius: 4px; overflow: hidden; }
.wu-uploaded-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wu-uploaded-card__status { position: absolute; left: 0; right: 0; bottom: 0; padding: 3px 4px; font-family: var(--wu-sans); font-size: 9px; text-align: center; color: #fff; background: rgba(0,0,0,0.55); }
.wu-uploaded-card.is-success .wu-uploaded-card__status { background: rgba(46,125,50,0.85); }
.wu-uploaded-card.is-error .wu-uploaded-card__status { background: rgba(179,38,30,0.85); }
.wu-review-screen { text-align: center; padding: 24px 0; }
.wu-review-strip { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 16px; }
.wu-review-strip .wu-uploaded-card { width: 88px; height: 88px; }


/* ---------------------------------------------------------------
 * Lightbox de fotos (estilo editorial: panel de autor a la
 * izquierda con flechas/contador, imagen a la derecha, swipe en móvil)
 * ------------------------------------------------------------- */
body.wu-lightbox-open {
	overflow: hidden;
}

.wu-lightbox {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: #000000;
	align-items: stretch;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.wu-lightbox.is-open {
	display: flex;
	opacity: 1;
}

.wu-lightbox__sidebar {
	flex: 0 0 300px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 28px;
	padding: 48px 40px;
}

.wu-lightbox__author {
	color: var(--wu-paper);
	font-family: var(--wu-serif);
	font-size: 28px;
	line-height: 1.25;
}

.wu-lightbox__author::before {
	content: 'by ';
}

.wu-lightbox__author:empty {
	display: none;
}

.wu-lightbox__nav-row {
	display: flex;
	align-items: center;
	gap: 18px;
}

.wu-lightbox__counter {
	color: var(--wu-paper);
	font-family: var(--wu-sans);
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.8;
}

.wu-lightbox__figure {
	margin: 0;
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding: 24px;
	touch-action: pan-y;
}

.wu-lightbox__image {
	display: block;
	max-width: 100%;
	max-height: 88vh;
	width: auto;
	height: auto;
	object-fit: contain;
	transition: opacity 0.15s ease;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-drag: none;
}

.wu-lightbox.is-loading .wu-lightbox__image {
	opacity: 0.35;
}

.wu-lightbox__close {
	position: absolute;
	top: 16px;
	right: 20px;
	background: transparent;
	border: 0;
	color: var(--wu-paper);
	font-size: 36px;
	line-height: 1;
	cursor: pointer;
	padding: 8px;
	z-index: 1;
}

.wu-lightbox__close:hover {
	opacity: 0.7;
}

.wu-lightbox__nav {
	background: transparent;
	border: 0;
	color: var(--wu-paper);
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
	padding: 4px 8px;
}

.wu-lightbox__nav:hover {
	opacity: 0.7;
}

.wu-lightbox__nav:disabled {
	visibility: hidden;
}

@media ( max-width: 768px ) {
	.wu-lightbox {
		flex-direction: column-reverse;
	}
	.wu-lightbox__sidebar {
		flex: 0 0 auto;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 14px 20px;
	}
	.wu-lightbox__author {
		font-size: 15px;
	}
	.wu-lightbox__nav-row {
		display: none;
	}
	.wu-lightbox__figure {
		padding: 0;
	}
	.wu-lightbox__image {
		max-height: 78vh;
	}
	.wu-lightbox__close {
		top: 10px;
		right: 12px;
		font-size: 28px;
	}
}

.wu-radio-inline {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-right: 16px;
	font-weight: 400;
}
.wu-radio-inline input[type="radio"] {
	width: auto;
	height: auto;
}

.wu-lightbox__meta-line {
	font-size: 13px;
	color: rgba(255,255,255,0.7);
	margin: 4px 0 0;
}
.wu-lightbox__meta-story {
	font-size: 13px;
	line-height: 1.5;
	color: rgba(255,255,255,0.85);
	margin: 10px 0 0;
	font-style: italic;
}

.wu-checkbox-inline {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
}
.wu-checkbox-inline input[type="checkbox"] {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	margin-top: 2px;
}
.wu-field--checkbox {
	margin-top: 12px;
}

.wu-field--visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }


.wu-profile-header__upload-btn {
	display: inline-block;
	margin-top: 20px;
}

.wu-account-header__avatar-wrap { position: relative; display: inline-flex; flex-shrink: 0; }
.wu-account-header__avatar-edit {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 26px;
	height: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wu-ink);
	border: 2px solid var(--wu-paper);
	border-radius: 50%;
	cursor: pointer;
}
.wu-account-header__avatar-edit svg { width: 13px; height: 13px; fill: var(--wu-paper); }
.wu-account-header__avatar-edit:hover { background: var(--wu-accent); }


/* ---------- Consistent side padding fix (Task #146) ---------- */
.wu-photo-section .wu-grid,
.wu-photographers-section .wu-photographers-grid {
	padding: 0 24px;
}
@media (max-width: 640px) {
	.wu-photo-section .wu-grid,
	.wu-photographers-section .wu-photographers-grid {
		padding: 0 16px;
	}
}

/* Botones del dueño en el perfil público: misma altura y alineados */
.wu-profile-header__owner-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin-top: 24px; }
.wu-profile-header__owner-actions .wu-button { margin: 0 !important; display: inline-flex; align-items: center; justify-content: center; vertical-align: top; }

/* =====================================================================
 * REDISENO 2026 · Squembri
 * Capa de estilos nueva. Va al final a proposito: sobrescribe lo anterior
 * sin borrarlo, asi se puede revisar o retirar de una vez.
 * =================================================================== */

:root {
  --wu-ink: #302F2F;
  --wu-ground: #E8EAE1;
  --wu-sheet: #FEFFFC;
  --wu-stone: #DFE2D8;
  --wu-line: #CFD2C6;
  --wu-muted: #6B6A64;
  --wu-soft: #4F4D4A;
  --wu-ink-hover: #4A4848;
  --wu-serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  --wu-sans: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --wu-read: 'Newsreader', Georgia, serif;
  --wu-max: 1360px;
}

body { background: var(--wu-ground); color: var(--wu-ink); font-size: 15px; }
h1, h2, h3 { font-weight: 400; }
.wu-container { padding: 0 40px; }

/* ---------- Cabecera ---------- */
.wu-header { background: var(--wu-ground); color: var(--wu-ink); border-bottom: 0; }
.wu-header__inner { max-width: var(--wu-max); padding: 20px 40px; }
.wu-logo { position: static; transform: none; order: 0; color: var(--wu-ink); }
.wu-logo__image { height: 44px; filter: brightness(0); opacity: 0.85; }
.wu-logo__eyebrow { color: var(--wu-muted); }
.wu-logo__word { color: var(--wu-ink); font-weight: 400; }
.wu-nav { order: 1; margin-left: auto; }
.wu-nav__list { gap: 32px; }
.wu-nav__list a { color: var(--wu-ink); font-size: 14px; text-transform: none; letter-spacing: 0; opacity: 1; }
.wu-nav__list a:hover { color: var(--wu-soft); }
.wu-header__account { order: 2; }
.wu-account-nav { gap: 18px; font-size: 14px; text-transform: none; letter-spacing: 0; }
.wu-account-nav a { color: var(--wu-ink); opacity: 1; }
.wu-account-nav a:hover { color: var(--wu-soft); }
.wu-account-nav__upload-btn,
.wu-header .wu-button {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--wu-ink); color: #FFFFFF !important; border: 0; border-radius: 6px;
  padding: 11px 18px; font-size: 14px; line-height: 1; text-transform: none; letter-spacing: 0;
}
.wu-account-nav__upload-btn:hover,
.wu-header .wu-button:hover { background: var(--wu-ink-hover); color: #FFFFFF !important; }
.wu-account-nav__icon { width: 20px; height: 20px; }
.wu-nav-toggle__bar { background: var(--wu-ink); }

/* ---------- Botones generales ---------- */
.wu-button { border-radius: 6px; }

/* ---------- Home: hero con slideshow de Best of ---------- */
.wu-hero--slides {
  position: relative; height: 680px; padding: 0; overflow: hidden;
  background: var(--wu-ink); color: #FFFFFF; text-align: center;
}
.wu-hero__slide {
  position: absolute; inset: 0; width: 100%; height: 100%;
  max-width: none; object-fit: cover; opacity: 0;
}
.wu-hero__slide.is-active { opacity: 1; }
.wu-hero--slides::after {
  content: ''; position: absolute; inset: 0; background: rgba(28, 27, 26, 0.30); pointer-events: none;
}
.wu-hero__content {
  position: relative; z-index: 1; height: 100%; padding: 40px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.wu-hero__logo { margin: 0; line-height: 0; }
.wu-hero__logo img { width: min(560px, 78vw); height: auto; margin: 0 auto; }
.wu-hero__logo .wu-hero__title { line-height: 1; color: #FFFFFF; }
.wu-hero__tagline {
  margin: 22px 0 0; font-family: var(--wu-read); font-style: italic;
  font-size: 22px; line-height: 1.4; color: #FFFFFF;
}
.wu-hero__credit {
  position: absolute; z-index: 1; left: 40px; bottom: 28px; margin: 0;
  font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: #FFFFFF;
}

/* ---------- Home: secciones ---------- */
.wu-home .wu-section-heading {
  flex-direction: row; justify-content: space-between; align-items: baseline;
  text-align: left; gap: 16px; margin: 56px 0 40px; padding: 0 0 20px;
  border-top: 0; border-bottom: 1px solid var(--wu-line);
}
.wu-home .wu-section-heading h2 {
  font-family: var(--wu-serif); font-size: 40px; font-weight: 400;
  text-transform: none; letter-spacing: -0.01em;
}
.wu-home .wu-section-heading h2 { line-height: 1.05; }
.wu-home .wu-section-heading .wu-cta { white-space: nowrap; flex: none; }
.wu-home .wu-section-heading .wu-cta {
  background: none; border: 0; padding: 0; color: var(--wu-ink);
  font-size: 14px; text-transform: none; letter-spacing: 0; border-bottom: 1px solid var(--wu-ink);
}
.wu-home .wu-section-heading .wu-cta:hover { background: none; color: var(--wu-soft); }

/* ---------- Grid de fotos ---------- */
.wu-grid { column-count: 3; column-gap: 32px; }
.wu-photo-section .wu-grid { padding: 0; }
.wu-photo-card { margin-bottom: 40px; }
.wu-photo-card__link { background: transparent; }
.wu-photo-card:hover .wu-photo-card__link img { transform: none; opacity: 0.92; }
.wu-photo-card__link img { transition: opacity 0.2s ease; }
.wu-photo-card__meta {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  padding-top: 12px; font-size: 13px; text-transform: none; letter-spacing: 0; color: var(--wu-ink);
}
.wu-photo-card__author { color: var(--wu-ink); }
.wu-photo-card__date {
  display: inline; margin: 0; font-family: var(--wu-read); font-style: italic;
  font-size: 14px; letter-spacing: 0; color: var(--wu-muted); opacity: 1; white-space: nowrap;
}
.wu-badge {
  top: 12px; left: 12px; z-index: 1; background: var(--wu-sheet); color: var(--wu-ink);
  font-size: 11px; letter-spacing: 0.06em; padding: 5px 10px 4px;
}
.wu-badge--pending { background: var(--wu-ink); color: #FFFFFF; }

/* ---------- Home: fotografos con foto redonda ---------- */
.wu-photographers-section { padding-top: 16px; padding-bottom: 96px; }
.wu-photographers-section .wu-photographers-grid,
.wu-photographers-grid--home {
  grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 40px; padding: 0;
}
.wu-photographers-grid--home .wu-photographer-card {
  display: grid; grid-template-columns: 72px minmax(0, 1fr); column-gap: 18px;
  align-items: center; align-content: center; text-align: left;
}
.wu-photographers-grid--home .wu-photographer-card__avatar {
  grid-row: 1 / span 3; width: 72px; height: 72px; margin: 0;
}
.wu-photographers-grid--home .wu-photographer-card__name { font-size: 28px; line-height: 1.05; }
.wu-photographers-grid--home .wu-photographer-card__country {
  margin-top: 4px; font-size: 12px; letter-spacing: 0.06em; color: var(--wu-muted);
}
.wu-photographers-grid--home .wu-photographer-card__award { margin-top: 2px; color: var(--wu-soft); }

/* ---------- Footer ---------- */
.wu-footer { background: var(--wu-ground); color: var(--wu-ink); margin-top: 0; border-top: 1px solid var(--wu-line); }
.wu-footer a { color: var(--wu-ink); opacity: 1; }
.wu-footer a:hover { color: var(--wu-soft); opacity: 1; }
.wu-footer__inner { max-width: var(--wu-max); padding: 64px 40px 48px; }
.wu-footer .wu-logo--footer { position: static; transform: none; display: inline-block; }
.wu-footer .wu-logo__image { height: 56px; filter: brightness(0); opacity: 0.85; }
.wu-footer__tagline { color: var(--wu-soft); font-family: var(--wu-read); font-style: italic; font-size: 17px; }
.wu-footer__social a { color: var(--wu-ink); font-size: 14px; text-transform: none; letter-spacing: 0; }
.wu-footer__contact,
.wu-footer__contact a { color: var(--wu-ink); font-size: 14px; }
.wu-footer__col h3, .wu-footer__col .wu-footer__heading { color: var(--wu-muted); font-size: 12px; font-weight: 500; letter-spacing: 0.06em; }
.wu-footer__list a { color: var(--wu-ink); font-size: 14px; text-transform: none; letter-spacing: 0; }
.wu-footer__bottom { border-top: 1px solid var(--wu-line); padding: 24px 0 40px; }
.wu-footer__bottom .wu-container {
  max-width: var(--wu-max); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px;
}
.wu-footer__bottom p { margin: 0; text-align: left; font-size: 12px; color: var(--wu-muted); }
.wu-footer__bottom a { color: var(--wu-muted); }
.wu-footer__bottom a:hover { color: var(--wu-ink); }

/* ---------- Perfil publico ---------- */
.wu-profile-hero { padding: 72px 0 56px; }
.wu-profile-hero__inner {
  max-width: var(--wu-max); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 64px; align-items: end;
}
.wu-profile-hero__main { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.wu-profile-hero__id { display: flex; align-items: center; gap: 20px; }
.wu-profile-hero__avatar { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: none; }
.wu-profile-hero__country { font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wu-muted); }
.wu-profile-hero__name {
  margin: 0; font-family: var(--wu-serif); font-weight: 400; font-size: 88px;
  line-height: 0.95; letter-spacing: -0.02em; overflow-wrap: anywhere;
}
.wu-profile-hero__bio { margin: 0; max-width: 560px; font-family: var(--wu-read); font-size: 21px; line-height: 1.5; }
.wu-profile-hero__links { display: flex; flex-wrap: wrap; gap: 12px 24px; font-size: 14px; }
.wu-profile-hero__links a { border-bottom: 1px solid var(--wu-ink); }
.wu-profile-hero__links a:hover { color: var(--wu-soft); }
.wu-profile-hero__tags { margin: 0; font-size: 13px; color: var(--wu-muted); }
.wu-profile-hero__achievements { list-style: none; margin: 0; padding: 0; font-size: 14px; color: var(--wu-soft); }
.wu-profile-hero__empty { margin: 0; font-family: var(--wu-read); font-style: italic; font-size: 18px; color: var(--wu-soft); }
.wu-profile-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.wu-profile-hero__actions .wu-button {
  display: inline-flex; align-items: center; margin: 0; padding: 14px 22px;
  font-size: 14px; text-transform: none; letter-spacing: 0; color: #FFFFFF;
}
.wu-profile-hero__actions .wu-button:hover { background: var(--wu-ink-hover); color: #FFFFFF; border-color: var(--wu-ink-hover); }
.wu-profile-stats {
  margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--wu-line);
}
.wu-profile-stats > div { padding-top: 16px; }
.wu-profile-stats dt { font-size: 12px; color: var(--wu-muted); }
.wu-profile-stats dd { margin: 4px 0 0; font-family: var(--wu-serif); font-size: 44px; line-height: 1; }
.wu-profile-portfolio { padding-bottom: 96px; }
.wu-profile-portfolio__title {
  margin: 0 0 40px; padding-bottom: 20px; border-bottom: 1px solid var(--wu-line);
  font-family: var(--wu-serif); font-size: 40px; font-weight: 400;
}
.wu-profile .wu-photo-card__author { display: none; }
.wu-profile .wu-photo-card__meta { justify-content: flex-end; }

/* ---------- Titulos de pagina ---------- */
.wu-page-title {
  margin: 0 0 40px; font-family: var(--wu-serif); font-weight: 400;
  font-size: 88px; line-height: 0.95; letter-spacing: -0.02em;
}

/* ---------- Directorio de fotografos ---------- */
.wu-directory-search { gap: 12px; margin-bottom: 24px; align-items: stretch; }
.wu-directory-search input,
.wu-directory-search select {
  height: 48px; padding: 0 14px; border: 1px solid #BFC2B5; border-radius: 6px;
  background-color: var(--wu-sheet); color: var(--wu-ink); font-family: var(--wu-sans); font-size: 14px;
}
.wu-directory-search select { padding-right: 36px; }
.wu-directory-search input { flex: 0 1 280px; min-width: 200px; }
.wu-directory-search .wu-button {
  height: 48px; padding: 0 24px; display: inline-flex; align-items: center;
  font-size: 14px; text-transform: none; letter-spacing: 0;
}
.wu-directory-search .wu-button:hover { background: var(--wu-ink-hover); color: #FFFFFF; border-color: var(--wu-ink-hover); }
.wu-directory-list { border-bottom: 1px solid var(--wu-line); margin-bottom: 96px; }
.wu-directory-row {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px;
  align-items: center; padding: 40px 0; border-top: 1px solid var(--wu-line);
}
.wu-directory-row__info { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; min-width: 0; }
.wu-directory-row__id { display: flex; align-items: center; gap: 14px; }
.wu-directory-row__avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; }
.wu-directory-row__country { font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wu-muted); }
.wu-directory-row__name { font-family: var(--wu-serif); font-size: 44px; line-height: 1; overflow-wrap: anywhere; }
.wu-directory-row__award { font-size: 13px; color: var(--wu-soft); }
.wu-directory-row__link { font-size: 13px; border-bottom: 1px solid var(--wu-ink); }
.wu-directory-row__name:hover,
.wu-directory-row__link:hover { color: var(--wu-soft); }
.wu-directory-row__photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.wu-directory-row__photo { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--wu-stone); }
.wu-directory-row__photo img { width: 100%; height: 100%; object-fit: cover; transition: opacity 0.2s ease; }
.wu-directory-row__photo:hover img { opacity: 0.92; }
.wu-directory-row__photo--empty { background: #DFE2D8; }

/* ---------- REDISENO: formularios ---------- */
.wu-narrow { max-width: 760px; }
.wu-prose { max-width: 760px; }
.wu-form--editorial { max-width: 720px; }
.wu-form__hint { margin: 0 0 24px; color: var(--wu-muted); }
.wu-form__section-title { font-family: var(--wu-serif); font-size: 32px; font-weight: 400; margin: 0 0 24px; }
.wu-field { margin-bottom: 20px; gap: 8px; }
.wu-field label { font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wu-soft); }
.wu-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.wu-field select,
.wu-field textarea,
.wu-form input[type="text"],
.wu-form input[type="email"],
.wu-form input[type="password"],
.wu-form input[type="url"],
.wu-form input[type="date"] {
  height: 48px; padding: 0 14px; border: 1px solid #BFC2B5; border-radius: 6px;
  background-color: var(--wu-sheet); color: var(--wu-ink); font-family: var(--wu-sans); font-size: 15px;
}
.wu-field select { padding-right: 36px; }
.wu-field textarea {
  height: auto; padding: 12px 14px; font-family: var(--wu-read); font-size: 17px; line-height: 1.5;
}
.wu-field input:focus, .wu-field select:focus, .wu-field textarea:focus {
  outline: 2px solid var(--wu-ink); outline-offset: 1px; border-color: var(--wu-ink);
}
.wu-field input:disabled { background-color: var(--wu-stone); color: var(--wu-muted); }
.wu-field small, .wu-field__hint { font-size: 12px; color: var(--wu-muted); }
.wu-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wu-field-grid .wu-field { margin-bottom: 0; }
.wu-field--full { grid-column: 1 / -1; }
.wu-form__section { padding: 40px 0; border-top-color: var(--wu-line); }
.wu-field .wu-checkbox-inline,
.wu-checkbox-inline { font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--wu-ink); gap: 12px; }
.wu-checkbox-inline input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--wu-ink); }
.wu-checkbox-inline a { border-bottom: 1px solid var(--wu-ink); }
.wu-field .wu-radio-inline {
  display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 18px; margin-right: 8px;
  border: 1px solid #BFC2B5; border-radius: 6px; background: var(--wu-sheet);
  font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--wu-ink); cursor: pointer;
}
.wu-field .wu-radio-inline:has(input:checked) { border-color: var(--wu-ink); }
.wu-radio-inline input { accent-color: var(--wu-ink); margin: 0; }
.wu-tag-option { border-radius: 6px; border-color: #BFC2B5; background: var(--wu-sheet); font-size: 14px; }
.wu-tag-option:has(input:checked) { background: var(--wu-ink); border-color: var(--wu-ink); color: #FFFFFF; }
.wu-tag-option input { accent-color: var(--wu-ink); }

.wu-button {
  border-radius: 6px; padding: 15px 26px; font-size: 14px; text-transform: none; letter-spacing: 0; line-height: 1.2;
}
.wu-button:hover { background: var(--wu-ink-hover); color: #FFFFFF; border-color: var(--wu-ink-hover); }
.wu-notice {
  background: var(--wu-sheet); border: 1px solid var(--wu-line); border-radius: 6px;
  padding: 16px 20px; font-family: var(--wu-read); font-size: 17px; color: var(--wu-ink);
}
.wu-form-error { background: #F6E7E4; color: #8E2B1F; border-radius: 6px; padding: 16px 20px; }
.wu-quota { font-size: 13px; color: var(--wu-muted); }

/* ---------- REDISENO: Mi cuenta ---------- */
.wu-account-header { gap: 24px; margin-bottom: 40px; }
.wu-account-header__avatar { width: 96px; height: 96px; }
.wu-account-header__avatar-edit { width: 36px; height: 36px; border-color: var(--wu-ground); }
.wu-account-header__avatar-edit svg { width: 15px; height: 15px; fill: #FFFFFF; }
.wu-account-header__avatar-edit:hover { background: var(--wu-ink-hover); }
.wu-account-header__name { font-family: var(--wu-serif); font-weight: 400; font-size: 36px; line-height: 1.05; margin: 0 0 8px; }
.wu-account-header__link { font-size: 14px; color: var(--wu-ink); text-decoration: none; border-bottom: 1px solid var(--wu-ink); }
.wu-account-section { border-top-color: var(--wu-line); }
.wu-account-section--account { border-bottom: 0; margin-bottom: 0; }
.wu-account-section--profile { padding-top: 48px; margin-top: 16px; border-top: 1px solid var(--wu-line); }
.wu-account-section--profile > .wu-form__section-title { font-size: 40px; margin-bottom: 8px; }
.wu-char-count { display: block; text-align: right; }

/* ---------- REDISENO: subir fotos ---------- */
.wu-upload-widget { max-width: 720px; }
.wu-dropzone {
  border: 1px dashed #A9AC9F; border-radius: 6px; background: #F1F2EC; padding: 88px 24px; margin-bottom: 24px;
}
.wu-dropzone:hover, .wu-dropzone.is-dragover { background: var(--wu-sheet); border-color: var(--wu-ink); }
.wu-dropzone__step { font-size: 13px; letter-spacing: 0.04em; color: var(--wu-muted); margin-bottom: 16px; }
.wu-dropzone__step strong { font-weight: 500; color: var(--wu-ink); }
.wu-dropzone__text { font-family: var(--wu-serif); font-size: 28px; line-height: 1.2; margin-bottom: 10px; }
.wu-dropzone__hint { font-size: 12px; color: var(--wu-muted); }
.wu-form-preview { gap: 20px; margin-bottom: 24px; }
.wu-form-preview__img { width: 120px; height: 120px; border-radius: 6px; background: var(--wu-stone); }
.wu-form-preview__change { font-size: 13px; color: var(--wu-ink); }
.wu-uploaded-strip { gap: 10px; margin-bottom: 24px; }
.wu-uploaded-card__status { font-size: 10px; }
.wu-upload-confirm,
.wu-review-screen {
  padding: 48px 40px; border: 1px solid var(--wu-line); border-radius: 6px; background: var(--wu-sheet); text-align: center;
}
.wu-upload-confirm .wu-notice,
.wu-review-screen .wu-notice {
  border: 0; background: none; padding: 0; margin: 0 0 12px;
  font-family: var(--wu-serif); font-size: 32px; line-height: 1.15;
}
.wu-upload-confirm__quota { margin: 0 0 24px; font-size: 13px; color: var(--wu-muted); }
.wu-upload-confirm__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 24px; }
.wu-finish-early { margin: 0; font-size: 14px; color: var(--wu-ink); text-decoration: none; border-bottom: 1px solid var(--wu-ink); }
.wu-finish-early:hover { color: var(--wu-soft); }
.wu-review-strip { gap: 12px; margin-top: 24px; }
.wu-review-strip .wu-uploaded-card { width: 104px; height: 104px; }

/* ---------- REDISENO: FAQ y paginas de texto ---------- */
.wu-faq { max-width: 880px; }
.wu-faq-item { border-bottom-color: var(--wu-line); }
.wu-faq-question { font-size: 24px; padding: 22px 36px 22px 0; color: var(--wu-ink); }
.wu-faq-question::after { top: 22px; font-family: var(--wu-sans); font-size: 22px; font-weight: 300; }
.wu-faq-answer { color: var(--wu-soft); font-family: var(--wu-read); font-size: 18px; line-height: 1.55; }
.wu-faq-item.is-open .wu-faq-answer { max-height: 1200px; padding-bottom: 24px; }
.wu-faq-section-title { color: var(--wu-muted); }
.wu-faq-outro { max-width: 880px; font-family: var(--wu-read); font-style: italic; font-size: 18px; }
.wu-faq-outro a { border-bottom: 1px solid var(--wu-ink); }
.wu-prose p, .wu-prose li { font-family: var(--wu-read); font-size: 19px; line-height: 1.55; }
.wu-prose h2 { font-family: var(--wu-serif); font-size: 40px; font-weight: 400; margin: 56px 0 16px; }
.wu-prose h3 { font-family: var(--wu-serif); font-size: 28px; font-weight: 400; margin: 32px 0 8px; }

/* ---------- REDISENO: visor de fotos ---------- */
.wu-lightbox { background: var(--wu-ground); }
.wu-lightbox.is-open {
  display: grid; grid-template-columns: 96px minmax(0, 1fr) 96px; grid-template-rows: 72px minmax(0, 1fr) auto;
}
.wu-lightbox__figure { grid-column: 2; grid-row: 2; padding: 0; min-height: 0; }
.wu-lightbox__image { max-height: calc(100vh - 200px); }
.wu-lightbox__sidebar {
  grid-column: 1 / -1; grid-row: 3; flex-direction: row; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 12px 40px; width: 100%; max-width: 1080px; margin: 0 auto;
  padding: 24px 32px 32px;
}
.wu-lightbox__author { color: var(--wu-ink); font-family: var(--wu-serif); font-size: 28px; }
.wu-lightbox__author::before { content: none; }
.wu-lightbox__meta { flex: 1 1 320px; max-width: 560px; text-align: right; }
.wu-lightbox__meta-line { margin: 0; font-family: var(--wu-read); font-style: italic; font-size: 15px; color: var(--wu-muted); }
.wu-lightbox__meta-story { margin: 8px 0 0; font-family: var(--wu-read); font-style: normal; font-size: 16px; color: var(--wu-soft); }
.wu-lightbox__counter {
  position: fixed; top: 24px; left: 32px; color: var(--wu-muted); opacity: 1;
  font-family: var(--wu-sans); font-size: 13px; letter-spacing: 0.04em; font-variant-numeric: tabular-nums;
}
.wu-lightbox__nav {
  position: fixed; top: 50%; transform: translateY(-50%); width: 56px; height: 56px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; padding: 0 0 4px;
  color: var(--wu-ink); font-size: 40px; font-weight: 300;
}
.wu-lightbox__nav--prev { left: 20px; }
.wu-lightbox__nav--next { right: 20px; }
.wu-lightbox__nav:hover { background: #DCDFD4; opacity: 1; }
.wu-lightbox__close { color: var(--wu-ink); top: 12px; right: 24px; font-weight: 300; }

/* ---------- Responsive del rediseno ---------- */
@media (max-width: 960px) {
  .wu-grid { column-count: 2; column-gap: 16px; }
  .wu-photo-card { margin-bottom: 28px; }
  .wu-photographers-section .wu-photographers-grid,
  .wu-photographers-grid--home { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .wu-container { padding: 0 20px; }
  .wu-header__inner { flex-wrap: nowrap; padding: 12px 12px 12px 20px; }
  .wu-logo { order: 0; margin: 0; }
  .wu-logo__image { height: 34px; }
  .wu-nav-toggle {
    order: 2; display: flex; flex-direction: column; justify-content: center; align-items: center;
    width: 44px; height: 44px; margin-left: auto; padding: 0;
  }
  .wu-nav-toggle__bar { width: 22px; height: 1.5px; margin: 3px 0; transition: transform 0.2s ease, opacity 0.2s ease; }
  .wu-nav-toggle[aria-expanded="true"] .wu-nav-toggle__bar:nth-child(2) { transform: translateY(4.5px) rotate(45deg); }
  .wu-nav-toggle[aria-expanded="true"] .wu-nav-toggle__bar:nth-child(3) { opacity: 0; }
  .wu-nav-toggle[aria-expanded="true"] .wu-nav-toggle__bar:nth-child(4) { transform: translateY(-4.5px) rotate(-45deg); }
  .wu-nav {
    position: fixed; top: 68px; left: 0; right: 0; bottom: 0; z-index: 99;
    display: none; flex-direction: column; align-items: stretch; gap: 32px;
    margin: 0; padding: 32px 20px; width: auto; overflow-y: auto; background: var(--wu-ground);
  }
  .wu-nav.is-open { display: flex; }
  .wu-nav__list { flex-direction: column; gap: 4px; }
  .wu-nav__list a { font-family: var(--wu-serif); font-size: 44px; line-height: 1.15; }
  .wu-header__account--mobile { display: flex; margin-top: auto; }
  .wu-header__account--mobile .wu-account-nav { flex-direction: row; flex-wrap: wrap; align-items: center; width: 100%; gap: 16px 20px; }
  .wu-header__account--mobile .wu-account-nav__upload-btn { flex: 1 1 100%; height: 52px; font-size: 15px; }
  .wu-header__account--mobile .wu-button { flex: 1 1 100%; height: 52px; }

  .wu-hero--slides { height: 480px; }
  .wu-hero__content { padding: 24px; }
  .wu-hero__tagline { font-size: 18px; max-width: 280px; }
  .wu-hero__credit { left: 20px; bottom: 18px; font-size: 11px; }

  .wu-home .wu-section-heading { margin: 40px 0 28px; }
  .wu-page-title { font-size: 56px; margin-bottom: 28px; }
  .wu-field-grid { grid-template-columns: 1fr; }
  .wu-account-header__name { font-size: 30px; }
  .wu-dropzone { padding: 56px 20px; }
  .wu-upload-confirm, .wu-review-screen { padding: 32px 20px; }
  .wu-faq-question { font-size: 20px; }
  .wu-lightbox.is-open { grid-template-columns: 0 minmax(0, 1fr) 0; grid-template-rows: 56px minmax(0, 1fr) auto; }
  .wu-lightbox__image { max-height: calc(100vh - 180px); }
  .wu-lightbox__sidebar { padding: 16px 20px 24px; }
  .wu-lightbox__author { font-size: 22px; }
  .wu-lightbox__meta { text-align: left; }
  .wu-lightbox__counter { top: 18px; left: 20px; }
  .wu-directory-row { grid-template-columns: 1fr; gap: 20px; padding: 28px 0; }
  .wu-directory-row__name { font-size: 36px; }
  .wu-directory-search input { flex: 1 1 100%; }
  .wu-directory-search select,
  .wu-directory-search .wu-button { flex: 1 1 auto; }
  .wu-profile-hero { padding: 40px 0 40px; }
  .wu-profile-hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .wu-profile-hero__name { font-size: 56px; }
  .wu-profile-hero__bio { font-size: 19px; }
  .wu-profile-stats dd { font-size: 36px; }
  .wu-profile-portfolio__title { font-size: 32px; margin-bottom: 28px; }
  .wu-home .wu-section-heading h2 { font-size: 32px; }
  .wu-footer__inner { padding: 48px 20px 40px; }
  .wu-footer__brand { flex: none; }
}
@media (max-width: 560px) {
  .wu-grid { column-count: 1; }
  .wu-photographers-section .wu-photographers-grid,
  .wu-photographers-grid--home { grid-template-columns: 1fr; gap: 24px; }
}

/* ---------- Home: slideshow enmarcado (altura fija, ancho variable) ---------- */
.wu-hero--slides { height: auto; padding: 32px 40px 0; background: transparent; overflow: visible; }
.wu-hero--slides::after { display: none; }
.wu-hero__stage {
  position: relative; height: min(600px, 40vw); width: 60%; margin: 0 auto;
  display: flex; align-items: center; justify-content: center;
}
.wu-hero__slide {
  inset: auto; top: 0; left: 50%; transform: translateX(-50%);
  width: auto; height: 100%; max-width: 100%; object-fit: contain;
  filter: brightness(0.78);
}
.wu-hero__content { position: absolute; inset: 0; height: auto; padding: 24px; }
.wu-hero__logo img { width: min(340px, 70%); }
.wu-hero__tagline { max-width: 320px; font-size: 20px; }
.wu-hero__credit {
  position: static; margin: 14px 0 0; text-align: center; color: var(--wu-muted);
}
@media (max-width: 960px) {
  .wu-hero__stage { width: 80%; height: min(520px, 53vw); }
}
@media (max-width: 720px) {
  .wu-hero--slides { height: auto; padding: 16px 20px 0; }
  .wu-hero__stage { width: 100%; height: 440px; }
  .wu-hero__slide { height: auto; max-height: 100%; top: 50%; transform: translate(-50%, -50%); }
  .wu-hero__logo img { width: min(240px, 70%); }
  .wu-hero__tagline { font-size: 17px; max-width: 240px; }
  .wu-hero__credit { position: static; margin-top: 12px; }
}

.wu-hero--slides.has-slides .wu-hero__content { opacity: 0; transition: opacity 0.3s ease; }
.wu-hero--slides.has-slides.is-ready .wu-hero__content { opacity: 1; }

/* Ajustes finales rediseno */
.wu-directory-search .wu-button { justify-content: center; }
.wu-field .wu-checkbox-inline,
.wu-checkbox-inline { display: block; position: relative; padding-left: 30px; }
.wu-checkbox-inline input[type="checkbox"] { position: absolute; left: 0; top: 2px; margin: 0; }


/* SEO 2026-10: encabezados semanticos sin cambiar el aspecto */
.wu-directory-row__title, .wu-faq-q { margin: 0; font: inherit; letter-spacing: inherit; }
.wu-breadcrumbs { max-width: var(--wu-max, 1360px); margin: 0 auto; padding: 28px 40px 0; font-family: var(--wu-sans); font-size: 13px; color: var(--wu-muted); }
.wu-breadcrumbs a { color: var(--wu-muted); text-decoration: none; border-bottom: 1px solid transparent; }
.wu-breadcrumbs a:hover { color: var(--wu-ink); border-bottom-color: currentColor; }
.wu-breadcrumbs .breadcrumb_last { color: var(--wu-ink); }
.wu-breadcrumbs + .wu-main-inner, .wu-breadcrumbs ~ .wu-section:first-of-type { padding-top: 32px; }
.wu-404 { text-align: center; padding: 96px 0; }
.wu-404 p { color: var(--wu-soft); }
@media (max-width: 720px) { .wu-breadcrumbs { padding: 20px 20px 0; font-size: 12px; } }


/* ===== 2026-10 · Cursivas, blog On Photography, Eyes on…, avisos ===== */
.wu-page-title em, .wu-section-heading h2 em, .wu-post__title em, .wu-card__title em { font-style: italic; }
.wu-flash { background: var(--wu-ink); color: #fff; text-align: center; padding: 12px 16px; font-family: var(--wu-sans); font-size: 14px; }
.wu-blog__header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 48px; margin-bottom: 32px; }
.wu-blog__intro { margin: 12px 0 0; max-width: 520px; font-family: 'Newsreader', Georgia, serif; font-size: 19px; line-height: 1.5; color: var(--wu-soft); }
.wu-blog__search { display: flex; gap: 8px; }
.wu-blog__search input { height: 44px; min-width: 220px; padding: 0 14px; border: 1px solid var(--wu-line); border-radius: 6px; background: var(--wu-sheet); font: inherit; }
.wu-blog__search .wu-button { height: 44px; }
.wu-blog__cats { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 0 32px; border-bottom: 1px solid var(--wu-line); margin-bottom: 40px; }
.wu-blog__cats a { padding: 8px 14px; border: 1px solid var(--wu-line); border-radius: 999px; font-family: var(--wu-sans); font-size: 13px; color: var(--wu-ink); text-decoration: none; }
.wu-blog__cats a:hover, .wu-blog__cats a.is-active { background: var(--wu-ink); border-color: var(--wu-ink); color: #fff; }
.wu-blog__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; }
.wu-blog__grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.wu-card { display: flex; flex-direction: column; gap: 16px; }
.wu-card__media { display: block; overflow: hidden; background: var(--wu-stone); aspect-ratio: 4 / 5; }
.wu-card__media img, .wu-card__placeholder { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.wu-card:hover .wu-card__media img { transform: scale(1.03); }
.wu-card__body { display: flex; flex-direction: column; gap: 8px; }
.wu-card__cat, .wu-post__cat, .wu-eyebrow { font-family: var(--wu-sans); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--wu-muted); text-decoration: none; margin: 0; }
.wu-card__title { margin: 0; font-family: var(--wu-serif); font-weight: 400; font-size: 30px; line-height: 1.1; }
.wu-card__title a { color: inherit; text-decoration: none; }
.wu-card__title a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.wu-card__excerpt { margin: 0; font-family: 'Newsreader', Georgia, serif; font-size: 17px; line-height: 1.5; color: var(--wu-soft); }
.wu-card__date { margin: 0; font-family: var(--wu-sans); font-size: 13px; color: var(--wu-muted); }
.wu-card--featured { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: center; margin-bottom: 72px; }
.wu-card--featured .wu-card__media { aspect-ratio: 3 / 2; }
.wu-card--featured .wu-card__title { font-size: 56px; line-height: 1; }
.wu-card--small .wu-card__title { font-size: 24px; }
.wu-post { padding-top: 24px; }
.wu-post__header { max-width: 860px; margin: 0 auto; padding: 32px 40px 40px; text-align: center; }
.wu-post__title { margin: 16px 0 0; font-family: var(--wu-serif); font-weight: 400; font-size: 80px; line-height: .98; letter-spacing: -.01em; }
.wu-post__standfirst { margin: 24px auto 0; max-width: 640px; font-family: 'Newsreader', Georgia, serif; font-style: italic; font-size: 22px; line-height: 1.45; color: var(--wu-soft); }
.wu-post__meta { margin: 20px 0 0; font-family: var(--wu-sans); font-size: 13px; color: var(--wu-muted); }
.wu-post__hero { max-width: 1360px; margin: 0 auto 64px; padding: 0 40px; }
.wu-post__hero img { display: block; width: 100%; height: auto; max-height: 86vh; object-fit: cover; }
.wu-post__hero figcaption, .wu-post-content figcaption { margin-top: 10px; font-family: var(--wu-sans); font-size: 13px; line-height: 1.5; color: var(--wu-muted); text-align: left; }
.wu-post-content { max-width: 720px; margin: 0 auto; padding: 0 24px; font-family: 'Newsreader', Georgia, serif; font-size: 20px; line-height: 1.7; color: var(--wu-ink); }
.wu-post-content > * { margin: 0 0 28px; }
.wu-post-content h2, .wu-post-content h3 { font-family: var(--wu-serif); font-weight: 400; line-height: 1.1; margin: 56px 0 20px; }
.wu-post-content h2 { font-size: 44px; }
.wu-post-content h3 { font-size: 32px; }
.wu-post-content a { color: inherit; text-underline-offset: 3px; }
.wu-post-content .is-style-lead { font-size: 25px; line-height: 1.5; }
.wu-post-content figure { margin: 48px 0; }
.wu-post-content img { display: block; max-width: 100%; height: auto; }
.wu-post-content .alignwide { width: min(1200px, calc(100vw - 48px)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.wu-post-content .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.wu-post-content .alignfull figcaption { padding: 0 24px; }
.wu-post-content .is-style-framed img { padding: 14px; background: var(--wu-sheet); border: 1px solid var(--wu-line); }
.wu-post-content .wp-block-gallery, .wu-post-content .wp-block-columns { gap: 16px; }
.wu-post-content .wu-mosaic .wp-block-column { display: flex; flex-direction: column; gap: 16px; }
.wu-post-content .wu-mosaic figure { margin: 0; }
.wu-post-content .wu-mosaic .wp-block-column:first-child img { height: 100%; object-fit: cover; }
.wu-post-content .wp-block-embed__wrapper iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.wu-post-content .wp-block-pullquote, .wu-post-content blockquote.wp-block-quote { margin: 64px 0; padding: 0; border: 0; text-align: left; }
.wu-post-content .wp-block-pullquote blockquote, .wu-post-content blockquote.wp-block-quote { margin: 0; padding: 0 0 0 28px; border-left: 2px solid var(--wu-ink); }
.wu-post-content .wp-block-pullquote p, .wu-post-content blockquote.wp-block-quote p { font-family: 'Newsreader', Georgia, serif; font-weight: 600; font-size: 34px; line-height: 1.25; margin: 0; }
.wu-post-content .wp-block-pullquote p::before, .wu-post-content blockquote.wp-block-quote p:first-child::before { content: '“'; }
.wu-post-content .wp-block-pullquote p::after, .wu-post-content blockquote.wp-block-quote p:last-of-type::after { content: '”'; }
.wu-post-content .wp-block-pullquote cite, .wu-post-content blockquote cite { display: block; margin-top: 18px; font-family: var(--wu-sans); font-style: normal; font-weight: 500; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--wu-muted); }
.wu-post-content .wp-block-pullquote cite::before, .wu-post-content blockquote cite::before { content: '— '; }
.wu-post__next { max-width: 1000px; margin: 96px auto 0; padding: 48px 40px 0; border-top: 1px solid var(--wu-line); }
.wu-post__next-link { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; align-items: center; margin-top: 20px; color: var(--wu-ink); text-decoration: none; }
.wu-post__next-link img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.wu-post__next-text { display: flex; flex-direction: column; gap: 10px; }
.wu-post__next-title { font-family: var(--wu-serif); font-size: 44px; line-height: 1.05; }
.wu-explore { margin-top: 40px; }
.wu-eyes__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.wu-eyes__viewport::-webkit-scrollbar { display: none; }
.wu-eyes__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 72px) / 4); gap: 24px; }
.wu-eyes__item { scroll-snap-align: start; display: flex; flex-direction: column; gap: 14px; color: var(--wu-ink); text-decoration: none; }
.wu-eyes__photo { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--wu-stone); }
.wu-eyes__photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.wu-eyes__item:hover .wu-eyes__photo img { transform: scale(1.03); }
.wu-eyes__who { display: flex; align-items: center; gap: 12px; }
.wu-eyes__avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.wu-eyes__name { display: block; font-family: var(--wu-serif); font-size: 24px; line-height: 1.1; }
.wu-eyes__country { display: block; font-family: var(--wu-sans); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--wu-muted); }
@media (max-width: 1024px) {
	.wu-blog__grid, .wu-blog__grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wu-card--featured { grid-template-columns: 1fr; gap: 24px; }
	.wu-card--featured .wu-card__title { font-size: 44px; }
	.wu-post__title { font-size: 60px; }
	.wu-eyes__track { grid-auto-columns: calc((100% - 24px) / 2); }
}
@media (max-width: 720px) {
	.wu-blog__grid { grid-template-columns: 1fr; }
	.wu-blog__grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
	.wu-card--small .wu-card__title { font-size: 20px; }
	.wu-blog__search { width: 100%; }
	.wu-blog__search input { flex: 1; min-width: 0; }
	.wu-post__header { padding: 16px 20px 32px; }
	.wu-post__title { font-size: 44px; }
	.wu-post__standfirst { font-size: 19px; }
	.wu-post__hero { padding: 0; margin-bottom: 40px; }
	.wu-post__hero figcaption { padding: 0 20px; }
	.wu-post-content { font-size: 18px; padding: 0 20px; }
	.wu-post-content .alignwide { width: calc(100vw - 40px); }
	.wu-post-content .wp-block-pullquote p, .wu-post-content blockquote.wp-block-quote p { font-size: 26px; }
	.wu-post-content .wp-block-gallery.columns-3 figure.wp-block-image { width: calc(50% - 8px) !important; }
	.wu-post__next { padding: 40px 20px 0; margin-top: 64px; }
	.wu-post__next-link { grid-template-columns: 1fr; gap: 20px; }
	.wu-post__next-title { font-size: 32px; }
	.wu-eyes__track { grid-auto-columns: 78%; gap: 16px; }
}

/* Galerias y columnas sin depender de los estilos de bloques */
.wu-post-content .wp-block-gallery.has-nested-images { display: flex; flex-wrap: wrap; gap: 16px; }
.wu-post-content .wp-block-gallery.has-nested-images > figure.wp-block-image { margin: 0; width: 100%; flex-grow: 1; }
.wu-post-content .wp-block-gallery.columns-2 > figure.wp-block-image { width: calc(50% - 8px); flex-grow: 0; }
.wu-post-content .wp-block-gallery.columns-3 > figure.wp-block-image { width: calc(33.333% - 11px); flex-grow: 0; }
.wu-post-content .wp-block-gallery.columns-4 > figure.wp-block-image { width: calc(25% - 12px); flex-grow: 0; }
.wu-post-content .wp-block-gallery.is-cropped > figure.wp-block-image { aspect-ratio: 4 / 5; }
.wu-post-content .wp-block-gallery.is-cropped > figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.wu-post-content .wp-block-gallery > figure figcaption { margin-top: 6px; }
.wu-post-content .wp-block-columns { display: flex; gap: 16px; }
.wu-post-content .wp-block-column { flex: 1 1 0; min-width: 0; }
.wu-post-content .wp-block-column figure { margin: 0; }
@media (max-width: 720px) {
	.wu-post-content .wp-block-columns { flex-direction: column; }
	.wu-post-content .wp-block-column { flex-basis: auto !important; }
	.wu-post-content .wp-block-gallery.columns-2 > figure.wp-block-image, .wu-post-content .wp-block-gallery.columns-4 > figure.wp-block-image { width: calc(50% - 8px); }
}

.wu-post-content .wp-block-gallery.has-nested-images { display: grid; grid-template-columns: repeat(var(--wu-cols, 1), minmax(0, 1fr)); gap: 16px; }
.wu-post-content .wp-block-gallery.has-nested-images > figure.wp-block-image { width: auto !important; }
.wu-post-content .wp-block-gallery.columns-2 { --wu-cols: 2; }
.wu-post-content .wp-block-gallery.columns-3 { --wu-cols: 3; }
.wu-post-content .wp-block-gallery.columns-4 { --wu-cols: 4; }
@media (max-width: 720px) { .wu-post-content .wp-block-gallery.columns-3, .wu-post-content .wp-block-gallery.columns-4 { --wu-cols: 2; } }

/* Perfil: posts de On Photography relacionados con el fotógrafo */
.wu-profile-stories { padding-bottom: 96px; }
.wu-profile-stories .wu-card--featured { margin-bottom: 0; }

/* Galerías del blog: nunca recortar, respetar la proporción de cada foto.
   main.js reparte el ancho de cada fila según la proporción (clase .wu-justified),
   así las fotos de una fila comparten altura sin recortarse. */
.wu-post-content .wp-block-gallery.has-nested-images { align-items: start; }
.wu-post-content .wp-block-gallery.has-nested-images > figure.wp-block-image { aspect-ratio: auto !important; height: auto !important; display: block !important; }
.wu-post-content .wp-block-gallery.has-nested-images > figure.wp-block-image img { display: block; width: 100% !important; height: auto !important; flex: none !important; object-fit: initial !important; }
.wu-post-content .wp-block-gallery.has-nested-images.wu-justified { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; }
.wu-post-content .wp-block-gallery.has-nested-images.wu-justified > figure.wp-block-image { width: var(--wu-w, 100%) !important; flex: none !important; }
.wu-post-content .wu-mosaic .wp-block-column img { height: auto !important; object-fit: initial !important; }

/* Visor de fotos en móvil: primero la foto entera y debajo el texto, con scroll. */
@media (max-width: 768px) {
	.wu-lightbox.is-open {
		display: flex; flex-direction: column; justify-content: flex-start;
		overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
	}
	.wu-lightbox__figure {
		order: 1; flex: none; display: flex; align-items: center; justify-content: center;
		width: 100%; margin: 56px 0 0; padding: 0; min-height: 0; overflow: hidden;
	}
	.wu-lightbox__image {
		width: auto; height: auto; max-width: 100%;
		max-height: calc(100vh - 150px); max-height: calc(100svh - 150px);
	}
	.wu-lightbox__sidebar {
		order: 2; flex: none; flex-direction: column; align-items: flex-start; justify-content: flex-start;
		gap: 12px; width: 100%; max-width: none; margin: 0; padding: 20px 20px 48px;
	}
	.wu-lightbox__meta { flex: none; max-width: none; text-align: left; }
}
/* Zoom con dos dedos en el visor */
.wu-lightbox__image { touch-action: pan-y; }
.wu-lightbox__image.is-zoomed { touch-action: none; transform-origin: 0 0; }


/* Fotos del blog: tamaño elegido en el editor, centrado y alineación */
.wu-post-content::after { content: ''; display: table; clear: both; }
.wu-post-content .wp-block-image.is-resized img { max-width: 100%; height: auto; }
.wu-post-content .wp-block-image.aligncenter { margin-left: auto; margin-right: auto; width: fit-content; max-width: 100%; }
.wu-post-content .wp-block-image.aligncenter img { margin-left: auto; margin-right: auto; }
.wu-post-content .wp-block-image.aligncenter figcaption { text-align: center; }
.wu-post-content .wp-block-image.alignleft { float: left; max-width: 50%; margin: 8px 32px 24px 0; }
.wu-post-content .wp-block-image.alignright { float: right; max-width: 50%; margin: 8px 0 24px 32px; }
/* Dentro de columnas, "ancho" y "completo" no se salen de su columna */
.wu-post-content .wp-block-column .alignwide,
.wu-post-content .wp-block-column .alignfull { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; transform: none; }
.wu-post-content .wp-block-column .wp-block-image.aligncenter { margin-left: auto; margin-right: auto; }
@media (max-width: 720px) {
	.wu-post-content .wp-block-image.alignleft,
	.wu-post-content .wp-block-image.alignright { float: none; max-width: 100%; margin: 32px auto; }
}

/* ---- Sello Best of debajo de la foto (no encima) ---- */
.wu-photo-card__seal {
	margin: 12px 0 0;
	padding: 0;
	background: none;
	font-family: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 11px;
	line-height: 1.3;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wu-ink);
}
.wu-photo-card__seal + .wu-photo-card__meta { padding-top: 4px; }

/* ---- Load more + View all bajo el grid del home ---- */
.wu-grid-more {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	margin: 16px 0 0;
}
.wu-load-more {
	font-family: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wu-ink);
	background: transparent;
	border: 1px solid var(--wu-ink);
	border-radius: 0;
	padding: 14px 44px;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.wu-load-more:hover { background: var(--wu-ink); color: #fff; }
.wu-load-more.is-loading { opacity: 0.45; cursor: wait; }
.wu-load-more[hidden] { display: none; }
.wu-grid-more .wu-view-all,
.wu-grid-more .wu-view-all:hover {
	display: inline;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--wu-ink);
	font-family: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 14px;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
}
.wu-grid-more .wu-view-all:hover { opacity: 0.6; }

/* Visor de fotos en escritorio y tablet: la foto nunca se monta sobre el texto.
   Foto arriba a tamaño de pantalla y el texto debajo; si el texto es largo, el visor hace scroll (igual que en móvil). */
@media (min-width: 769px) {
  .wu-lightbox.is-open {
    grid-template-rows: 72px auto auto;
    align-content: center; align-content: safe center;
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  }
  .wu-lightbox__figure { grid-row: 2; min-height: auto; }
  .wu-lightbox__image { max-height: calc(100vh - 200px); max-height: calc(100svh - 200px); }
  .wu-lightbox__sidebar { grid-row: 3; }
  .wu-lightbox__close { position: fixed; z-index: 2; }
  .wu-lightbox__meta-story { overflow-wrap: anywhere; }
}
