/* ==========================================================================
   TWS v2 · sitio completo: menú, artículos, listados, páginas y 404
   Usa los mismos tokens de main.css (amarillo, tinta, crema; Anton, Archivo Black, Inter)
   ========================================================================== */

/* Columna de lectura: el texto no pasa de cierto ancho, pero arranca en el mismo
   margen izquierdo que el título y el logo (todo alineado al mismo borde). */
.col--narrow > * { max-width: 800px; }
.col--mid > * { max-width: 1080px; }
.title--md { font-size: clamp(36px, 4.4vw, 64px); }
.tag--sm { font-size: 13px; padding: 6px 10px; text-decoration: none; display: inline-block; }

/* ---------- Menú del encabezado ---------- */
.site-header--menu .site-header__inner { gap: 24px; }
.nav { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.nav__list { display: flex; align-items: center; gap: 4px; }
.nav__list > li { position: relative; }
.nav__list a { display: block; padding: 10px 14px; font-family: var(--f-display); font-weight: 400; font-size: 21px; line-height: 1.1; letter-spacing: .01em; text-transform: uppercase; text-decoration: none; border-radius: 12px; }
.nav__list a:hover, .nav__list .current-menu-item > a, .nav__list .current-menu-ancestor > a { background: var(--ink); color: var(--yellow); }
.nav__list .sub-menu { position: absolute; top: 100%; left: 0; min-width: 240px; padding: 8px; background: var(--cream); border: 1px solid var(--ink); border-radius: 16px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility .2s; z-index: 5; }
.nav__list li:hover > .sub-menu, .nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.nav-toggle { display: none; align-items: center; gap: 10px; min-height: 44px; padding: 8px 12px; margin-left: auto; font-weight: 800; border-radius: 12px; }
.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after { display: block; width: 22px; height: 2px; background: var(--ink); border-radius: 2px; transition: transform .25s var(--ease-out), opacity .2s; }
.nav-toggle__bars { position: relative; }
.nav-toggle__bars::before, .nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bars::before { top: -7px; }
.nav-toggle__bars::after { top: 7px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1080px) {
	.nav-toggle { display: inline-flex; }
	.site-header--menu .site-header__cta { display: none; }
	.nav { position: absolute; top: 100%; left: 0; right: 0; display: none; background: var(--yellow); border-bottom: 1px solid var(--ink); max-height: calc(100vh - var(--header-h)); overflow-y: auto; }
	.nav-open .nav { display: block; }
	.nav-open .site-header { transform: none !important; }
	.nav__list { flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--pad) 24px; }
	.nav__list a { padding: 14px 4px; font-size: 28px; border-radius: 0; border-bottom: 1px solid rgba(29, 29, 27, .2); }
	.nav__list a:hover, .nav__list .current-menu-item > a, .nav__list .current-menu-ancestor > a { background: none; color: var(--ink); text-decoration: underline; }
	.nav__list .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; border: 0; background: none; padding: 0 0 0 16px; min-width: 0; }
	.nav__list .sub-menu a { font-size: 20px; }
}

/* ---------- Cabecera de página y de listado ---------- */
.page-head { background: var(--yellow); border-bottom: 1px solid var(--ink); padding-block: 56px 48px; }
.page-head__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(40px, 5.6vw, 80px); line-height: .95; letter-spacing: -.02em; text-transform: uppercase; text-wrap: balance; }
.page-head__text { margin-top: 16px; max-width: 720px; font-size: 18px; }

/* ---------- Artículo ---------- */
.interna { background: var(--cream); }
.entry { padding-bottom: var(--sec-y); }
.entry__head { padding-top: 56px; }
.entry__meta, .card__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 14px; font-weight: 700; }
.entry__title { margin-top: 16px; font-family: var(--f-display); font-weight: 400; font-size: clamp(34px, 4.4vw, 60px); line-height: 1; letter-spacing: -.01em; text-transform: uppercase; text-wrap: balance; }
.entry__cover { margin-top: 32px; }
.entry__cover img { width: 100%; height: auto; border-radius: 20px; border: 1px solid var(--ink); }
.entry__content { margin-top: 32px; font-size: 18px; line-height: 1.65; overflow-wrap: break-word; }
.entry--page .entry__content { margin-top: 48px; }
.entry__content > * + * { margin-top: 1.1em; }
.entry__content h2, .entry__content h3, .entry__content h4 { font-family: var(--f-heavy); line-height: 1.15; margin-top: 1.6em; }
.entry__content h1 { font-family: var(--f-heavy); font-size: 30px; line-height: 1.15; margin-top: 1.6em; }
.entry__content h2 { font-size: 30px; }
.entry__content h3 { font-size: 24px; }
.entry__content h4 { font-size: 20px; }
.entry__content a { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; text-decoration-color: var(--yellow); font-weight: 700; }
.entry__content a:hover { background: var(--yellow); }
.entry__content ul, .entry__content ol { padding-left: 1.3em; }
.entry__content ul { list-style: disc; }
.entry__content ol { list-style: decimal; }
.entry__content li + li { margin-top: .4em; }
.entry__content img, .entry__content video, .entry__content iframe { max-width: 100%; height: auto; border-radius: 12px; }
.entry__content iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; }
.entry__content figure { margin-inline: 0; }
.entry__content figcaption, .entry__content .wp-caption-text { margin-top: 8px; font-size: 14px; opacity: .75; text-align: center; }
.entry__content .wp-caption { max-width: 100%; }
.entry__content blockquote { margin-inline: 0; padding: 4px 0 4px 20px; border-left: 6px solid var(--yellow); font-size: 20px; font-weight: 700; }
.entry__content hr { margin-block: 2em; opacity: .25; }
.entry__content table { width: 100%; border-collapse: collapse; font-size: 16px; display: block; overflow-x: auto; }
.entry__content th, .entry__content td { padding: 10px 12px; border: 1px solid rgba(29, 29, 27, .35); text-align: left; vertical-align: top; }
.entry__content th, .entry__content thead td { background: var(--yellow); font-weight: 800; }
/* Editor clásico */
.entry__content .alignleft { float: left; margin: 4px 24px 16px 0; max-width: 50%; }
.entry__content .alignright { float: right; margin: 4px 0 16px 24px; max-width: 50%; }
.entry__content .aligncenter { display: block; margin-inline: auto; }
.entry__content::after { content: ""; display: table; clear: both; }
/* Galerías: de bloques y clásicas */
.entry__content .wp-block-gallery { gap: 12px; }
.entry__content .gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.entry__content .gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.entry__content .gallery-columns-4, .entry__content .gallery-columns-5, .entry__content .gallery-columns-6 { grid-template-columns: repeat(4, 1fr); }
.entry__content .gallery-item { margin: 0; }
.entry__content .gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.entry__content .gallery br { display: none; }
/* Archivos PDF y botones de bloques */
.entry__content .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--ink); border-radius: 16px; background: #fff; }
.entry__content .wp-block-file object, .entry__content .wp-block-file embed { width: 100%; min-height: 70vh; border-radius: 8px; }
.entry__content .wp-block-file__button, .entry__content .wp-block-button__link { background: var(--ink); color: var(--yellow); border-radius: var(--radius-btn); padding: 12px 20px; font-weight: 800; text-decoration: none; }
.entry__content .wp-block-button__link:hover, .entry__content .wp-block-file__button:hover { background: var(--ink); }
.entry__content .wp-block-embed__wrapper { position: relative; }
.entry__content .wp-video, .entry__content .wp-video-shortcode { max-width: 100% !important; }
.entry__share { margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(29, 29, 27, .25); }
.entry__pages { margin-top: 24px; font-weight: 700; }

/* ---------- Tarjetas y listados ---------- */
.listado { padding-block: 56px var(--sec-y); }
.listado__vacio { font-size: 18px; }
.listado__vacio a { font-weight: 700; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.card { background: #fff; border: 1px solid var(--ink); border-radius: 20px; overflow: hidden; transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out); }
.card:hover { transform: translate(-3px, -4px); box-shadow: 6px 7px 0 var(--ink); }
.card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; }
.card__media { aspect-ratio: 3 / 2; background: var(--yellow); display: grid; place-items: center; overflow: hidden; border-bottom: 1px solid var(--ink); }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__ph { width: 72px; height: 72px; opacity: .5; }
.card__body { padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.card__title { font-family: var(--f-heavy); font-size: 20px; line-height: 1.2; text-wrap: balance; }
.related { padding-bottom: var(--sec-y); }
.related__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(32px, 3.6vw, 48px); line-height: 1; text-transform: uppercase; margin-bottom: 32px; }

.pager { margin-top: 56px; }
.pager__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pager__list a, .pager__list span { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--ink); border-radius: 12px; font-weight: 800; text-decoration: none; background: #fff; }
.pager__list .current, .pager__list a:hover { background: var(--ink); color: var(--yellow); }
.pager__list .dots { border: 0; background: none; }

/* ---------- Buscador ---------- */
.buscar { margin-top: 24px; max-width: 560px; }
.buscar__label { display: block; font-weight: 700; margin-bottom: 8px; }
.buscar__row { display: flex; gap: 8px; }
.buscar__input { flex: 1 1 auto; min-width: 0; min-height: 52px; padding: 12px 16px; font: inherit; color: var(--ink); background: #fff; border: 1px solid var(--ink); border-radius: 16px; }

/* ---------- Franja de cierre ---------- */
.cta-band { padding-block: 64px; }
.cta-band__inner { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.cta-band__title { font-family: var(--f-display); font-size: clamp(30px, 3.6vw, 52px); line-height: 1; text-transform: uppercase; color: var(--yellow); max-width: 760px; text-wrap: balance; }
.cta-band .btn { flex: none; }

/* ---------- 404 ---------- */
.nf { padding-block: var(--sec-y); }
.nf__inner { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.nf__num { font-family: var(--f-display); font-size: clamp(120px, 22vw, 320px); line-height: .8; letter-spacing: -.03em; }
.nf__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(40px, 5.6vw, 80px); line-height: .95; text-transform: uppercase; }
.nf__text { font-size: 18px; }
.nf__links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }

/* ---------- Menú del pie ---------- */
.site-footer__menu { display: flex; flex-wrap: wrap; gap: 10px 32px; }
.site-footer__menu a { color: var(--cream); text-decoration: none; font-family: var(--f-display); font-weight: 400; font-size: 20px; line-height: 1.1; letter-spacing: .01em; text-transform: uppercase; }
.site-footer__menu a:hover { color: var(--yellow); }

/* ---------- Jetpack: solo los botones de compartir ---------- */
.entry__content .sharedaddy { margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(29, 29, 27, .25); }
.entry__content .sharedaddy a { background: none; text-decoration: none; }
.sd-like, .jetpack-likes-widget-wrapper, .sharedaddy.sd-like-enabled, .sharedaddy a[href*="wp-admin"], .sharing-edit, .share-customize-link, #jp-relatedposts { display: none !important; }

/* ---------- Internas hechas con secciones de la portada ---------- */
.interna--secciones .section:first-child { padding-top: 72px; }
.pillars--texto { grid-template-columns: repeat(2, 1fr); }
.pillar__title { font-family: var(--f-heavy); font-size: 24px; line-height: 1.15; }
.pillars--texto .pillar { min-height: 0; gap: 16px; }
.pillars--texto .pillar__text { font-weight: 400; font-size: 17px; }
.nota-legal { background: var(--cream); padding-block: 40px 56px; font-size: 14px; line-height: 1.5; color: rgba(29, 29, 27, .75); }
.nota-legal .wrap > * { max-width: 800px; }
.nota-legal p + p { margin-top: 10px; }
.nota-legal a { font-weight: 700; }

/* ---------- Sponsors y aliados: grilla de logos ---------- */
.logos-sec { padding-block: 72px; }
.logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; }
.logo-card { background: #fff; border: 1px solid var(--ink); border-radius: 20px; overflow: hidden; transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out); }
.logo-card:hover { transform: translate(-3px, -4px); box-shadow: 6px 7px 0 var(--ink); }
.logo-card__in { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; height: 100%; padding: 28px 24px 20px; text-decoration: none; }
.logo-card img { width: 100%; height: 120px; object-fit: contain; }
.logo-card__name { font-family: var(--f-heavy); font-size: 16px; line-height: 1.2; text-align: center; }

/* ---------- Aviso (Paga aquí) ---------- */
.aviso { display: flex; align-items: flex-start; gap: 20px; max-width: 1080px; margin-top: 48px; padding: 28px; background: var(--yellow); border: 1px solid var(--ink); border-radius: 20px; }
.aviso__title { font-family: var(--f-display); font-size: clamp(28px, 3.2vw, 44px); line-height: 1; text-transform: uppercase; margin-bottom: 8px; }
.aviso p { font-size: 18px; }

/* ---------- WhatsApp flotante (páginas internas) ---------- */
.wa-float { position: fixed; right: var(--pad); bottom: 20px; z-index: 55; box-shadow: 0 10px 30px rgba(29, 29, 27, .3); }
.es-interna .site-footer { padding-bottom: 96px; }

@media (max-width: 960px) {
	.cards { grid-template-columns: repeat(2, 1fr); gap: 20px; }
	.cta-band__inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767px) {
	.page-head { padding-block: 40px 32px; }
	.entry__head { padding-top: 40px; }
	.entry__content { font-size: 17px; }
	.entry__content h2 { font-size: 26px; }
	.entry__content .alignleft, .entry__content .alignright { float: none; margin: 0 0 16px; max-width: 100%; }
	.entry__content .gallery, .entry__content .gallery-columns-4, .entry__content .gallery-columns-5, .entry__content .gallery-columns-6 { grid-template-columns: repeat(2, 1fr); }
	.cards { grid-template-columns: 1fr; }
	.card__link { flex-direction: row; }
	.card__media { flex: 0 0 38%; aspect-ratio: auto; border-bottom: 0; border-right: 1px solid var(--ink); }
	.card__body { padding: 14px; gap: 8px; }
	.card__title { font-size: 17px; }
	.buscar__row { flex-direction: column; }
	.wa-float { left: var(--pad); right: var(--pad); bottom: 12px; }
	.pillars--texto { grid-template-columns: 1fr; }
	.logos { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.logo-card__in { padding: 18px 12px 14px; }
	.logo-card img { height: 84px; }
	.aviso { flex-direction: column; padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
	.card, .nav__list .sub-menu, .nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after { transition: none; }
}
