@layer creceweb-base, creceweb-customizer;

@layer creceweb-base {
:root {
	--cw-color-primary: var(--wp--preset--color--primary, #0f172a);
	--cw-color-accent: var(--wp--preset--color--accent, #10b981);
	--cw-color-accent-strong: var(--wp--preset--color--accent-strong, #059669);
	--cw-color-text: var(--wp--preset--color--lumen-text, var(--wp--preset--color--text, #111827));
	--cw-color-text-muted: var(--wp--preset--color--text-muted, #64748b);
	--cw-color-surface: var(--wp--preset--color--surface, #ffffff);
	--cw-color-background: var(--wp--preset--color--background, #f8fafc);
	--cw-color-border: var(--wp--preset--color--lumen-border, var(--wp--preset--color--border, #cbd5e1));
	--cw-space-3: var(--wp--preset--spacing--3, .75rem);
	--cw-space-4: var(--wp--preset--spacing--4, 1rem);
	--cw-space-5: var(--wp--preset--spacing--5, 1.5rem);
	--cw-space-6: var(--wp--preset--spacing--6, 2rem);
	--cw-space-7: var(--wp--preset--spacing--7, 3rem);
	--cw-space-8: var(--wp--preset--spacing--8, 4rem);
	--cw-space-9: var(--wp--preset--spacing--9, 5rem);
	--cw-radius-sm: .5rem;
	--cw-radius-md: .75rem;
	--cw-radius-lg: 1rem;
	--cw-motion-fast: 150ms;
	--cw-ease-standard: cubic-bezier(.2, .8, .2, 1);
	--cw-header-action-min-height: 2.55rem;
	--cw-header-action-padding-block: .58rem;
	--cw-header-action-padding-inline: 1rem;
	--cw-header-action-radius: .7rem;
	--cw-header-action-font-weight: 700;
	--cw-header-action-line-height: 1.2;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cw-color-background); color: var(--cw-color-text); }
img { max-width: 100%; height: auto; }
.cw-site-shell { min-height: calc(100dvh - 1px); display: flex; flex-direction: column; }
.cw-template-main { flex: 1 0 auto; padding-block: var(--cw-template-space, clamp(3rem, 7vw, 6rem)); }
.cw-content-wrap { width: min(calc(100% - 2rem), var(--cw-layout-content, 760px)); margin-inline: auto; }
.cw-screen-layout--left, .cw-screen-layout--right { width:min(calc(100% - 2rem), var(--cw-layout-wide,1120px)); display:grid; grid-template-columns:minmax(0,1fr) var(--cw-sidebar-width,320px); grid-template-areas:"content sidebar"; gap:clamp(1.75rem,4vw,4rem); align-items:start; }
.cw-screen-layout--left { grid-template-columns:var(--cw-sidebar-width,320px) minmax(0,1fr); grid-template-areas:"sidebar content"; }
.cw-screen-layout__content { grid-area:content; min-width:0; }
.cw-sidebar { grid-area:sidebar; min-width:0; }
.cw-sidebar .cw-widget { padding:var(--cw-space-5); border:1px solid var(--cw-color-border); border-radius:var(--cw-radius-md); background:var(--cw-color-surface); }
.cw-sidebar .cw-widget + .cw-widget { margin-top:var(--cw-space-5); }
.cw-sidebar :where(ul,ol) { padding-left:1.15rem; }
.cw-sidebar :where(.wp-block-search__inside-wrapper) { display:flex; gap:.5rem; }
.cw-sidebar :where(.wp-block-search__input) { min-width:0; width:100%; }
.cw-sidebar :where(.wp-block-search__button) { white-space:nowrap; }
.cw-template-main--full, .cw-entry--full { width: 100%; max-width: none; }
.cw-entry--full:not(.cw-entry--full-canvas) { padding-inline: max(1rem, calc((100vw - var(--cw-layout-wide, 1120px))/2)); }
/* The full-width page template is a canvas for Gutenberg and Elementor:
 * full-width roots reach the viewport edge while normal blocks remain readable
 * and centered. */
.cw-template-main--full-canvas { padding-block: 0; }
.cw-entry--full-canvas { padding-inline: 0; }
.cw-entry--full-canvas > .entry-title { width: min(calc(100% - 2rem), var(--cw-layout-wide, 1120px)); margin: var(--cw-template-space, clamp(3rem, 7vw, 6rem)) auto var(--cw-space-6); }
.cw-entry--full-canvas > .entry-content { width: 100%; max-width: none; }
/* Elementor keeps control of its own inner container widths; Lumen only
 * removes the outer template restriction so a full-width section can reach
 * the viewport while header and footer remain active. */
.cw-entry--full-canvas > .entry-content > :where(:not(.alignfull):not(.alignwide):not(.elementor)) { width: min(calc(100% - 2rem), var(--cw-layout-wide, 1120px)); margin-inline: auto; }
.cw-entry--full-canvas > .entry-content > .alignwide { width: min(calc(100% - 2rem), var(--cw-layout-wide, 1120px)); max-width: none; margin-inline: auto; }
.cw-entry--full-canvas > .entry-content > :is(.alignfull, .elementor) { width: 100%; max-width: none; margin-inline: 0; }
.cw-entry--full-canvas > .entry-content > :is(.alignfull, .elementor):first-child { margin-top: 0; }
.cw-entry > * + * { margin-block-start: var(--cw-space-5); }
.entry-thumbnail, .cw-card__media { display: block; overflow: hidden; border-radius: var(--cw-radius-md); }
.entry-thumbnail img, .cw-card__media img { display:block; width:100%; }
.entry-meta, .cw-card__meta { color: var(--cw-color-text-muted); font-size: .875em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.cw-site-header, .cw-site-footer { background: var(--cw-color-surface); border-color: var(--cw-color-border); }
.cw-site-header { border-bottom: 1px solid var(--cw-color-border); }
.cw-site-header__inner, .cw-site-footer__inner { display: flex; align-items: center; gap: var(--cw-space-5); }
.cw-site-identity { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.wp-block-site-logo, .custom-logo-link { display:block; flex:0 0 auto; line-height:0; }
.wp-block-site-logo img, .custom-logo-link img { display:block; width:var(--cw-logo-width, 40px); max-width:min(var(--cw-logo-width, 40px), 45vw); height:auto; object-fit:contain; }
.cw-site-identity__text { min-width:0; }
.wp-block-site-title { margin:0; font-weight:700; line-height:1.15; }
.wp-block-site-title a { color:inherit; text-decoration:none; }
.wp-block-site-tagline { margin:.16rem 0 0; color:var(--cw-color-text-muted); line-height:1.35; }
.cw-hide-site-title--1 .wp-block-site-title, .cw-hide-site-tagline--1 .wp-block-site-tagline { display:none; }

.cw-classic-navigation { margin-left:auto; position:relative; }
.cw-classic-navigation__menu, .cw-classic-navigation__menu ul { list-style:none; padding:0; margin:0; }
.cw-classic-navigation__menu { display:flex; align-items:center; }
.cw-classic-navigation__menu > li { position:relative; }
.cw-classic-navigation__menu a { display:block; text-decoration:none; transition:color var(--cw-motion-fast) var(--cw-ease-standard), background-color var(--cw-motion-fast) var(--cw-ease-standard); }
.cw-classic-navigation__menu .sub-menu { display:none; min-width:13rem; padding:.5rem; border:1px solid var(--cw-color-border); border-radius:var(--cw-radius-sm); box-shadow:0 16px 32px rgb(15 23 42 / 12%); position:absolute; z-index:100; top:100%; left:0; }
.cw-classic-navigation__menu li:hover > .sub-menu, .cw-classic-navigation__menu li:focus-within > .sub-menu { display:block; }
.cw-classic-navigation__menu .sub-menu a { padding:.55rem .75rem; border-radius:.35rem; }
.cw-classic-navigation__menu .sub-menu a:hover { background:color-mix(in srgb, var(--cw-color-accent) 10%, transparent); }
.cw-classic-navigation__toggle { display:none; border:1px solid var(--cw-color-border); border-radius:var(--cw-radius-sm); background:transparent; color:currentColor; cursor:pointer; font-size:1.25rem; line-height:1; padding:.55rem .65rem; }
.cw-classic-navigation__submenu-toggle { display:none; border:1px solid transparent; border-radius:.45rem; background:transparent; color:currentColor; cursor:pointer; font:inherit; line-height:1; }
.cw-classic-navigation__submenu-toggle:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.cw-classic-navigation__submenu-icon { display:block; transition:transform var(--cw-motion-fast) var(--cw-ease-standard); }

.cw-top-bar-widgets { border-bottom:1px solid var(--cw-color-border); }
.cw-top-bar-widgets__inner, .cw-footer-widgets__inner { margin-inline:auto; display:flex; flex-wrap:wrap; align-items:center; }
/* One semantic footer with optional widget regions and a copyright band. */
.cw-site-footer { margin-top:var(--cw-space-9); }
.cw-footer-widgets { border-bottom:1px solid var(--cw-color-border); }
.cw-footer-widgets__section + .cw-footer-widgets__section { border-top:1px solid var(--cw-color-border); }
.cw-footer-widgets__inner--single { width:min(calc(100% - 2rem), var(--cw-layout-wide, 1120px)); }
.cw-footer-widgets__inner--columns { width:min(calc(100% - 2rem), var(--cw-layout-wide, 1120px)); display:grid; grid-template-columns:repeat(auto-fit,minmax(11rem,1fr)); align-items:start; }
/* Compact columns are set by the Customizer variable; the dynamic CSS applies the selected breakpoint. */
.cw-widget > :last-child { margin-bottom:0; }
.cw-widget__title { margin-top:0; font-size:1rem; }
.cw-site-copyright { background:#020914; color:#fff; }
.cw-site-copyright__inner { width:min(calc(100% - 2rem), var(--cw-layout-wide,1120px)); margin-inline:auto; padding-block:1rem; text-align:center; }
.cw-site-copyright__text { margin:0; font-size:.875rem; text-align:center; }

.cw-card { border:1px solid var(--cw-color-border); border-radius:var(--cw-radius-md); background:var(--cw-color-surface); overflow:hidden; }
.cw-card__body { padding:var(--cw-space-6); }
.cw-card__body > * + * { margin-top:var(--cw-space-4); }
.cw-card__body .entry-title { margin:0; font-size:clamp(1.25rem,2vw,1.6rem); }
.cw-card__more { font-weight:700; }
.cw-loop > .wp-block-post-template { display:grid; gap:var(--cw-space-5); padding:0; list-style:none; }
.cw-archive-header { margin-bottom:var(--cw-space-7); }
.cw-archive-header > :first-child { margin-top:0; }
/* The archive defaults stay intentionally simple. Settings add body classes for
 * image ratio and list composition while the template controls content visibility. */
.cw-blog-image-ratio--landscape .cw-card__media { aspect-ratio: 16 / 9; }
.cw-blog-image-ratio--square .cw-card__media { aspect-ratio: 1; }
.cw-blog-image-ratio--landscape .cw-card__media img,
.cw-blog-image-ratio--square .cw-card__media img { height: 100%; object-fit: cover; }
.cw-single-header-align--center .entry-header { text-align: center; }
.cw-entry--single.cw-single-layout--narrow { max-width: min(680px, 100%); }
.cw-content-wrap.cw-entry--single.cw-single-layout--wide { width: min(calc(100% - 2rem), var(--cw-layout-wide, 1120px)); }
/* Entry composition belongs to the list only. Grid cards intentionally stay vertical. */
@media (min-width: 782px) {
	.cw-loop--list .cw-card--layout-media-left,
	.cw-loop--list .cw-card--layout-compact {
		display: grid;
		grid-template-columns: minmax(11rem, 36%) minmax(0, 1fr);
		align-items: stretch;
	}

	.cw-loop--list .cw-card--layout-compact {
		grid-template-columns: minmax(9rem, 28%) minmax(0, 1fr);
	}

	.cw-loop--list .cw-card--layout-media-left .cw-card__media,
	.cw-loop--list .cw-card--layout-compact .cw-card__media {
		height: 100%;
		aspect-ratio: auto;
	}

	.cw-loop--list .cw-card--layout-media-left .cw-card__media img,
	.cw-loop--list .cw-card--layout-compact .cw-card__media img {
		height: 100%;
		object-fit: cover;
	}

	.cw-loop--list .cw-card--layout-compact .cw-card__body {
		padding: var(--cw-space-5);
	}

	/* Without an image, composition stays a clean single-column card. */
	.cw-loop--list .cw-card--without-media {
		display: block;
	}
}
.navigation.pagination { margin-top:var(--cw-space-7); }
.nav-links { display:flex; flex-wrap:wrap; gap:.5rem; }
.nav-links a, .nav-links span { padding:.5rem .75rem; border:1px solid var(--cw-color-border); border-radius:.4rem; }

.cw-empty-state { min-height:40vh; text-align:center; display:grid; place-content:center; gap:1rem; }
.cw-empty-state .search-form { margin-inline:auto; }
.search-form { display:flex; gap:.5rem; }
.search-field { min-width:0; padding:.7rem .85rem; }
.search-submit { padding:.7rem 1rem; }

.wp-block-button__link, .wp-block-search__button, .search-submit { transition:background-color var(--cw-motion-fast) var(--cw-ease-standard), transform var(--cw-motion-fast) var(--cw-ease-standard), box-shadow var(--cw-motion-fast) var(--cw-ease-standard); }
.wp-block-button__link:hover, .wp-block-search__button:hover, .search-submit:hover { transform:translateY(-1px); }
:where(a, button, input, select, textarea, summary):focus-visible { outline:3px solid var(--cw-color-accent-strong); outline-offset:3px; }
.cw-skip-link { background:var(--cw-color-primary); border-radius:0 0 var(--cw-radius-sm) var(--cw-radius-sm); color:#fff; left:50%; padding:var(--cw-space-3) var(--cw-space-4); position:fixed; top:0; transform:translate(-50%,-150%); transition:transform var(--cw-motion-fast) var(--cw-ease-standard); z-index:100000; }
.cw-skip-link:focus { clip:auto; height:auto; margin:0; overflow:visible; width:auto; transform:translate(-50%,0); }
.cw-floating-action { position:fixed; right:max(1rem, env(safe-area-inset-right)); bottom:max(1rem, env(safe-area-inset-bottom)); display:grid; place-items:center; width:2.875rem; height:2.875rem; border:0; border-radius:999px; color:#fff; text-decoration:none; box-shadow:0 8px 22px rgb(15 23 42 / 20%); z-index:99; }
.cw-floating-action svg { display:block; flex:0 0 auto; width:46%; height:46%; }
.cw-floating-action:focus-visible { outline:3px solid var(--cw-color-focus); outline-offset:3px; }
.cw-back-to-top { line-height:1; }


/* Pro may mark a Normal + Transparente header as an overlay. The static
 * global behavior remains in flow for every other page. */
.cw-header-behavior--static .cw-site-header.cw-lumen-pro-header--overlay { position:absolute; top:0; left:0; right:0; width:100%; max-width:none; margin:0; box-sizing:border-box; z-index:9990; }
.cw-header-behavior--sticky .cw-site-header, .cw-header-behavior--fixed .cw-site-header { position:relative; z-index:9990; }
.cw-header-behavior--sticky .cw-site-header.cw-header-is-fixed, .cw-header-behavior--fixed .cw-site-header.cw-header-is-fixed { position:fixed; top:0; left:0; right:0; width:100%; max-width:none; margin:0; box-sizing:border-box; z-index:99990; }
.admin-bar.cw-header-behavior--sticky .cw-site-header.cw-header-is-fixed, .admin-bar.cw-header-behavior--fixed .cw-site-header.cw-header-is-fixed { top:32px; }
.cw-header-tone--primary .cw-site-header, .cw-footer-tone--primary .cw-site-footer, .cw-footer-tone--primary .cw-footer-widgets { background:var(--cw-color-primary); border-color:var(--cw-color-primary); color:#fff; }
.cw-header-tone--primary .cw-site-header :is(a,.wp-block-site-title,.wp-block-site-tagline), .cw-footer-tone--primary :is(a,.wp-block-site-title,.wp-block-site-tagline,.widget-title,.cw-widget__title) { color:#fff; }
.cw-blog-surface--minimal .cw-card { border-color:transparent; box-shadow:none; }
.cw-blog-surface--elevated .cw-card { border-color:transparent; box-shadow:0 10px 30px rgb(15 23 42 / 10%); }

@media (max-width:1024px) { .cw-site-header__inner { width:min(calc(100% - var(--cw-tablet-gutter, 32px) - var(--cw-tablet-gutter, 32px)), var(--cw-header-width,1120px)); } }
@media (max-width:960px) { .cw-screen-layout--left, .cw-screen-layout--right { display:block; width:min(calc(100% - var(--cw-tablet-gutter,32px) - var(--cw-tablet-gutter,32px)), var(--cw-layout-content,760px)); } .cw-sidebar { margin-top:var(--cw-space-7); } }
@media (max-width:782px) { .admin-bar.cw-header-behavior--sticky .cw-site-header.cw-header-is-fixed, .admin-bar.cw-header-behavior--fixed .cw-site-header.cw-header-is-fixed { top:46px; } .cw-site-footer { margin-top:var(--cw-space-7); } .cw-site-footer__inner { align-items:flex-start; } }
@media (max-width:781px) { .cw-content-wrap { width:min(calc(100% - var(--cw-mobile-gutter,16px) - var(--cw-mobile-gutter,16px)),var(--cw-layout-content,760px)); } .cw-site-header__inner { width:min(calc(100% - var(--cw-mobile-gutter,16px) - var(--cw-mobile-gutter,16px)), var(--cw-header-width,1120px)); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; } }



/* Navegación móvil: overlay de pantalla completa y drawer lateral reales.
 * El script agrega .cw-compact-navigation-active solo debajo del breakpoint elegido.
 */
/* Antes de que el script del pie agregue su clase de estado, el navegador ya
 * conoce el breakpoint elegido desde body. El marcador temprano de JS evita
 * que la lista horizontal llegue a pintarse en celular. Sin JavaScript, el
 * marcador no existe y la lista sigue disponible como fallback. */
@media (max-width: 781px) {
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--781 .cw-classic-navigation--primary { display: block; margin-left: auto; position: relative; }
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--781 .cw-classic-navigation__toggle { display: inline-flex; align-items: center; justify-content: center; }
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--781 .cw-classic-navigation__menu-container { display: none; }
}

@media (max-width: 960px) {
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--960 .cw-classic-navigation--primary { display: block; margin-left: auto; position: relative; }
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--960 .cw-classic-navigation__toggle { display: inline-flex; align-items: center; justify-content: center; }
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--960 .cw-classic-navigation__menu-container { display: none; }
}

@media (max-width: 1024px) {
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--1024 .cw-classic-navigation--primary { display: block; margin-left: auto; position: relative; }
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--1024 .cw-classic-navigation__toggle { display: inline-flex; align-items: center; justify-content: center; }
	html.cw-navigation-js body.cw-mobile-menu-breakpoint--1024 .cw-classic-navigation__menu-container { display: none; }
}

html.cw-classic-menu-open,
body.cw-classic-menu-open { overflow: hidden; }

.cw-classic-navigation__backdrop,
.cw-classic-navigation__close { display: none; }

@media (max-width:1024px) {
	.cw-classic-navigation--primary.cw-compact-navigation-active {
		display: block;
		margin-left: auto;
		position: relative;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active .cw-classic-navigation__toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active .cw-classic-navigation__menu-container {
		display: none;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 100000;
		border: 0;
		background: rgb(15 23 42 / 58%);
		cursor: default;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu {
		display: block;
		margin: 0;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu a {
		display: flex;
		align-items: center;
		min-height: 44px;
		padding: .8rem .25rem;
		font-size: var(--cw-mobile-navigation-font-size, 16px);
	}

	/* Sin JavaScript los submenús siguen visibles como fallback. Con JS, cada
	 * flecha controla solo su propio nivel y el enlace padre conserva navegación. */
	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu {
		display: block;
		position: static;
		min-width: 0;
		padding: .25rem 0 .25rem 1rem;
		border: 0;
		box-shadow: none;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children > a {
		grid-column: 1;
		min-width: 0;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__submenu-toggle {
		display: inline-grid;
		grid-column: 2;
		width: 2.75rem;
		height: 2.75rem;
		place-items: center;
		margin-inline-start: .35rem;
		border-color: color-mix(in srgb, currentColor 22%, transparent);
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children > .sub-menu {
		display: none;
		grid-column: 1 / -1;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children.is-submenu-open > .sub-menu {
		display: block;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children.is-submenu-open > .cw-classic-navigation__submenu-toggle .cw-classic-navigation__submenu-icon {
		transform: rotate(180deg);
	}

	/* Submenús móviles: patrón simple de GeneratePress. La rama no crea
	 * tarjetas ni una guía ornamental: es una lista de filas, con el enlace
	 * padre navegable y una flecha discreta que controla únicamente los hijos. */
	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu {
		gap: 0;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu > li {
		border: 0;
		border-radius: 0;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu > li:not(.menu-item-has-children) > a {
		min-height: 3.125rem;
		padding: .82rem 0;
		border-radius: 0;
		box-shadow: inset 0 -1px color-mix(in srgb, var(--cw-color-text) 12%, transparent);
		font-weight: 600;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children {
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		transition: none;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children > a {
		min-height: 3.125rem;
		padding: .82rem 0;
		border-radius: 0;
		box-shadow: inset 0 -1px color-mix(in srgb, var(--cw-color-text) 12%, transparent);
		font-weight: 600;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children.is-submenu-open {
		background: transparent;
		border-color: transparent;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__submenu-toggle {
		width: 3.125rem;
		height: 3.125rem;
		margin-inline-start: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: inset 0 -1px color-mix(in srgb, var(--cw-color-text) 12%, transparent);
		transition: color var(--cw-motion-fast) var(--cw-ease-standard), transform var(--cw-motion-fast) var(--cw-ease-standard);
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__submenu-toggle:hover,
	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__submenu-toggle:focus-visible {
		color: var(--cw-color-accent);
		background: transparent;
		border-color: transparent;
	}

	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children.is-submenu-open > .cw-classic-navigation__submenu-toggle {
		color: currentColor;
		background: transparent;
		border-color: transparent;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu {
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu > li {
		margin: 0;
		border-top: 0;
		border-bottom: 1px solid color-mix(in srgb, var(--cw-color-text) 8%, transparent);
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu > li + li {
		margin-top: 0;
		border-top: 0;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu a {
		min-height: 2.875rem;
		padding: .72rem 0 .72rem 1.65rem;
		border-radius: 0;
		font-size: 1em;
		font-weight: 400;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu .sub-menu a {
		padding-inline-start: 3rem;
	}

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu a:hover,
	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu a:focus-visible {
		color: var(--cw-color-accent);
		background: transparent;
	}

	/* Pantalla completa. */
	body.cw-mobile-menu-style--overlay .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu-container {
		display: grid;
		position: fixed;
		inset: 0;
		z-index: 100001;
		align-content: center;
		overflow-y: auto;
		padding: max(5.75rem, calc(env(safe-area-inset-top) + 4.5rem)) clamp(1.5rem, 8vw, 4rem) max(2rem, env(safe-area-inset-bottom));
		border: 0;
		border-radius: 0;
		background: color-mix(in srgb, var(--cw-color-surface) 96%, transparent);
		box-shadow: none;
		backdrop-filter: blur(10px);
	}

	body.cw-mobile-menu-style--overlay .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: min(100%, 34rem);
		margin-inline: auto;
		text-align: left;
	}

	body.cw-mobile-menu-style--overlay .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu > li { width: 100%; }
	body.cw-mobile-menu-style--overlay .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu a { justify-content: flex-start; }
	body.cw-mobile-menu-style--overlay .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .sub-menu { padding-inline-left: .85rem; }

	/* Panel lateral. Este panel permanece montado fuera de pantalla para que
	 * la transición y la diferencia visual respecto del overlay sean inequívocas. */
	body.cw-mobile-menu-style--drawer .cw-classic-navigation--primary.cw-compact-navigation-active .cw-classic-navigation__menu-container {
		display: block;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		z-index: 100001;
		width: min(24rem, 88vw);
		overflow-y: auto;
		padding: max(5.75rem, calc(env(safe-area-inset-top) + 4.5rem)) 1.5rem max(2rem, env(safe-area-inset-bottom));
		border: 0;
		border-radius: 0;
		background: var(--cw-color-surface);
		box-shadow: -18px 0 42px rgb(15 23 42 / 26%);
		transform: translateX(104%);
		visibility: hidden;
		pointer-events: none;
		transition: transform 220ms var(--cw-ease-standard), visibility 0s linear 220ms;
		will-change: transform;
	}

	body.cw-mobile-menu-style--drawer .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu-container {
		transform: translateX(0);
		visibility: visible;
		pointer-events: auto;
		transition-delay: 0s;
	}

	body.cw-mobile-menu-style--drawer .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
		text-align: left;
	}
	body.cw-mobile-menu-style--drawer .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__menu a { justify-content: flex-start; }

	.cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__close {
		display: inline-grid;
		position: absolute;
		top: max(1rem, env(safe-area-inset-top));
		right: 1rem;
		z-index: 1;
		width: 2.75rem;
		height: 2.75rem;
		place-items: center;
		border: 1px solid var(--cw-color-border);
		border-radius: 999px;
		background: var(--cw-color-surface);
		color: var(--cw-color-text);
		font-size: 1.7rem;
		line-height: 1;
		cursor: pointer;
	}
}



}


/* Blog editorial: estética sobria y nórdica, con planos claros y jerarquía simple. */
.cw-template-main--posts {
	background: var(--cw-color-background);
	padding-top: clamp(2rem, 4vw, 3.75rem);
}

.cw-template-main--posts .cw-screen-layout__content,
.cw-entry--single .cw-screen-layout__content { min-width: 0; }

/* Blog index: a light, generic editorial introduction. */
.cw-blog-intro {
	width: min(calc(100% - 2rem), var(--cw-layout-wide, 1120px));
	margin: 0 auto clamp(3.25rem, 7vw, 6rem);
	padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2.75rem, 6vw, 5rem);
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(18rem, .82fr);
	gap: clamp(2.5rem, 8vw, 7rem);
	align-items: center;
	border-bottom: 1px solid color-mix(in srgb, var(--cw-color-border) 72%, transparent);
}

.cw-blog-intro--visual-none { grid-template-columns: minmax(0, 1fr); }
.cw-blog-intro--visual-none .cw-blog-intro__copy { max-width: 48rem; }
.cw-blog-intro--align-center { grid-template-columns: minmax(0, 1fr); }
.cw-blog-intro--align-center .cw-blog-intro__copy { max-width: 48rem; margin-inline: auto; text-align: center; }
.cw-blog-intro--align-center .cw-blog-intro__eyebrow { justify-content: center; }
.cw-blog-intro--align-center .cw-blog-intro__cta { margin-inline: auto; }

.cw-blog-intro__copy { max-width: 42rem; }
.cw-blog-intro__eyebrow,
.cw-card__eyebrow,
.cw-entry__eyebrow,
.cw-post-navigation__label {
	margin: 0;
	color: color-mix(in srgb, var(--cw-color-accent-strong) 78%, var(--cw-color-heading));
	font-size: .72rem;
	font-weight: 760;
	letter-spacing: .14em;
	line-height: 1.35;
	text-transform: uppercase;
}

.cw-blog-intro__title {
	max-width: 15ch;
	/* Preserve the editorial scale while giving the eyebrow and the two-line title more breathing room. */
	margin: 1.6rem 0 0;
	color: var(--cw-color-heading);
	font-size: clamp(2.6rem, 5.4vw, 5rem);
	line-height: 1.04;
	letter-spacing: -.048em;
	text-wrap: balance;
}

.cw-blog-intro__description {
	max-width: 35rem;
	margin: clamp(2rem, 3vw, 2.75rem) 0 0;
	color: var(--cw-color-text-muted);
	font-size: clamp(1rem, 1.35vw, 1.2rem);
	line-height: 1.7;
}

.cw-blog-intro__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: 3rem;
	margin-top: 1.8rem;
	padding: .78rem 1.25rem .78rem 1.4rem;
	border: 1px solid color-mix(in srgb, var(--cw-color-primary) 88%, transparent);
	border-radius: 999px;
	background: var(--cw-color-primary);
	box-shadow: 0 .28rem 0 color-mix(in srgb, var(--cw-color-accent) 32%, transparent);
	color: #fff;
	font-size: .88rem;
	font-weight: 760;
	letter-spacing: .01em;
	text-decoration: none;
	transition: transform var(--cw-motion-fast) var(--cw-ease-standard), box-shadow var(--cw-motion-fast) var(--cw-ease-standard), background-color var(--cw-motion-fast) var(--cw-ease-standard);
}

.cw-blog-intro__cta > span { font-size: 1.12em; line-height: 1; transition: transform var(--cw-motion-fast) var(--cw-ease-standard); }
.cw-blog-intro__cta:hover,
.cw-blog-intro__cta:focus-visible { background: var(--cw-color-accent-strong); box-shadow: 0 .16rem 0 color-mix(in srgb, var(--cw-color-accent) 36%, transparent); color: #fff; transform: translateY(1px); }
.cw-blog-intro__cta:hover > span,
.cw-blog-intro__cta:focus-visible > span { transform: translateX(.15rem); }

.cw-blog-intro__visual {
	position: relative;
	isolation: isolate;
	min-height: clamp(16rem, 28vw, 22rem);
	overflow: hidden;
	border-radius: min(2rem, var(--cw-radius-xl, 2rem));
	background: color-mix(in srgb, var(--cw-color-accent) 10%, var(--cw-color-surface));
}

.cw-blog-intro__visual--image { background: color-mix(in srgb, var(--cw-color-accent) 10%, var(--cw-color-surface)); }
.cw-blog-intro__visual--image::before { display: none; }
.cw-blog-intro__image { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: cover; }

.cw-blog-intro__visual::before {
	content: '';
	position: absolute;
	top: 13%;
	right: 13%;
	width: clamp(4rem, 8vw, 6.25rem);
	aspect-ratio: 1;
	border-radius: 50%;
	background: color-mix(in srgb, var(--cw-color-surface) 84%, var(--cw-color-background));
}

.cw-blog-intro__visual-label {
	position: absolute;
	z-index: 3;
	top: 1.75rem;
	left: 1.75rem;
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	padding: .28rem .85rem;
	border-radius: 999px;
	background: var(--cw-color-primary);
	color: #fff;
	font-size: .68rem;
	font-weight: 760;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.cw-blog-intro__visual-line {
	position: absolute;
	z-index: 2;
	top: 17%;
	left: 27%;
	width: 1.05rem;
	height: 68%;
	border-radius: 999px;
	background: color-mix(in srgb, var(--cw-color-accent-strong) 55%, var(--cw-color-primary));
	transform: rotate(43deg);
	transform-origin: top center;
}

.cw-blog-intro__visual-hill {
	position: absolute;
	z-index: 1;
	right: -14%;
	bottom: -20%;
	width: 90%;
	height: 64%;
	border-radius: 58% 42% 0 0 / 54% 42% 0 0;
	background: color-mix(in srgb, var(--cw-color-accent) 26%, var(--cw-color-surface));
	transform: rotate(-6deg);
}

.cw-blog-intro__visual-hill::before {
	content: '';
	position: absolute;
	left: -60%;
	bottom: -10%;
	width: 88%;
	height: 70%;
	border-radius: 58% 42% 0 0 / 62% 38% 0 0;
	background: color-mix(in srgb, var(--cw-color-accent) 17%, var(--cw-color-surface));
	transform: rotate(11deg);
}

.cw-blog-feed__header {
	margin-bottom: clamp(1.55rem, 3vw, 2.4rem);
}

.cw-blog-feed__header h2 {
	margin: 0;
	color: var(--cw-color-heading);
	font-size: clamp(1.55rem, 2.5vw, 2.2rem);
	letter-spacing: -.035em;
	line-height: 1.08;
}

.cw-blog-feed__header p {
	margin: .65rem 0 0;
	color: var(--cw-color-text-muted);
	font-size: .96rem;
}

.cw-template-main--posts .cw-screen-layout--none { width: min(calc(100% - 2rem), var(--cw-layout-wide, 1120px)); }

.cw-archive-header {
	max-width: 48rem;
	margin-bottom: clamp(2.5rem, 6vw, 4.75rem);
	padding-bottom: clamp(1.2rem, 2.5vw, 2rem);
	border-bottom: 1px solid color-mix(in srgb, var(--cw-color-border) 72%, transparent);
}

.cw-archive-header h1 {
	max-width: 16ch;
	margin: 0;
	color: var(--cw-color-heading);
	font-size: clamp(2.25rem, 5vw, 4.35rem);
	line-height: .98;
	letter-spacing: -.05em;
	text-wrap: balance;
}

/* Category and search headers retain a concise single-line presentation. */
.cw-archive-header--single-line {
	max-width: none;
}

.cw-archive-header--single-line h1 {
	max-width: none;
	font-size: clamp(1.55rem, 4.6vw, 4.35rem);
	line-height: 1.18;
	padding-block: .04em .12em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-wrap: nowrap;
}

.cw-archive-header__query {
	margin: 1.15rem 0 0;
	color: var(--cw-color-text-muted);
	font-size: .98rem;
	line-height: 1.6;
}

.cw-archive-header__query strong {
	color: var(--cw-color-heading);
	font-weight: 700;
}

.cw-archive-header .archive-description {
	max-width: 42rem;
	margin-top: 1.25rem;
	color: var(--cw-color-text-muted);
	font-size: 1.06rem;
	line-height: 1.7;
}

.cw-loop > .wp-block-post-template { gap: clamp(1.25rem, 2.8vw, 2rem); }

.cw-card {
	position: relative;
	isolation: isolate;
	border: 1px solid color-mix(in srgb, var(--cw-color-border) 68%, transparent);
	border-radius: min(1.25rem, var(--cw-radius-lg));
	background: var(--cw-color-surface);
	box-shadow: 0 1px 0 rgb(15 23 42 / 2%);
	transition: border-color var(--cw-motion-fast) var(--cw-ease-standard), box-shadow var(--cw-motion-fast) var(--cw-ease-standard), transform var(--cw-motion-fast) var(--cw-ease-standard);
}

.cw-card:focus-within {
	border-color: color-mix(in srgb, var(--cw-color-accent) 58%, var(--cw-color-border));
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cw-color-accent) 14%, transparent);
}

@media (hover: hover) and (pointer: fine) {
	.cw-card:hover {
		border-color: color-mix(in srgb, var(--cw-color-accent) 36%, var(--cw-color-border));
		transform: translateY(-2px);
	}
}

.cw-card__media {
	margin: 1rem 1rem 0;
	overflow: hidden;
	border-radius: min(.9rem, var(--cw-radius-md));
	background: color-mix(in srgb, var(--cw-color-accent) 10%, var(--cw-color-surface));
}

.cw-card__media img { transition: transform 420ms var(--cw-ease-standard); }
@media (hover: hover) and (pointer: fine) { .cw-card:hover .cw-card__media img { transform: scale(1.025); } }

.cw-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(1.25rem, 2.5vw, 2rem);
}

.cw-card__body > * + * { margin-top: .78rem; }
.cw-card__eyebrow { color: color-mix(in srgb, var(--cw-color-accent-strong) 78%, var(--cw-color-heading)); font-size: .68rem; }
.cw-card__eyebrow a,
.cw-entry__eyebrow a { color: inherit; text-decoration: none; }
.cw-card__eyebrow a:hover,
.cw-entry__eyebrow a:hover { text-decoration: underline; text-underline-offset: .18em; }

.cw-card__body .entry-title {
	max-width: 24ch;
	font-size: clamp(1.28rem, 2vw, 1.75rem);
	line-height: 1.13;
	letter-spacing: -.033em;
	text-wrap: balance;
}

.cw-card__body .entry-title a { color: var(--cw-color-heading); text-decoration: none; }
.cw-card__body .entry-title a:hover { color: var(--cw-color-accent-strong); }

.cw-card__meta {
	font-size: .7rem;
	font-weight: 680;
	letter-spacing: .09em;
	line-height: 1.3;
	text-transform: uppercase;
}

.cw-card__excerpt {
	max-width: 60ch;
	color: color-mix(in srgb, var(--cw-color-text) 74%, var(--cw-color-text-muted));
	font-size: .97rem;
	line-height: 1.7;
}
.cw-card__excerpt > :first-child { margin-top: 0; }
.cw-card__excerpt > :last-child { margin-bottom: 0; }

.cw-card__more {
	display: inline-flex;
	align-items: center;
	gap: .52rem;
	min-height: 2.55rem;
	/* Keep a clear editorial pause after the excerpt before the reading action. */
	margin-top: clamp(1.25rem, 2.1vw, 1.7rem);
	padding: .48rem .82rem .48rem .95rem;
	border: 1px solid color-mix(in srgb, var(--cw-color-primary) 16%, var(--cw-color-border));
	border-radius: 999px;
	background: color-mix(in srgb, var(--cw-color-primary) 3%, var(--cw-color-surface));
	color: var(--cw-color-heading);
	font-size: .82rem;
	font-weight: 760;
	line-height: 1;
	text-decoration: none;
	transition: transform var(--cw-motion-fast) var(--cw-ease-standard), border-color var(--cw-motion-fast) var(--cw-ease-standard), background-color var(--cw-motion-fast) var(--cw-ease-standard), color var(--cw-motion-fast) var(--cw-ease-standard);
}
.cw-card__more::after { content: '→'; font-size: 1.16em; transition: transform var(--cw-motion-fast) var(--cw-ease-standard); }
.cw-card__more:hover,
.cw-card__more:focus-visible { border-color: var(--cw-color-primary); background: var(--cw-color-primary); color: #fff; transform: translateY(-1px); }
.cw-card__more:hover::after,
.cw-card__more:focus-visible::after { transform: translateX(.2rem); }

.cw-blog-surface--minimal .cw-card { border-color: transparent; background: transparent; box-shadow: none; }
.cw-blog-surface--minimal .cw-card__media { margin-inline: 0; }
.cw-blog-surface--bordered .cw-card { box-shadow: none; }
.cw-blog-surface--elevated .cw-card { border-color: color-mix(in srgb, var(--cw-color-border) 55%, transparent); box-shadow: .5rem .5rem 0 color-mix(in srgb, var(--cw-color-accent) 9%, var(--cw-color-background)); }
@media (hover: hover) and (pointer: fine) { .cw-blog-surface--elevated .cw-card:hover { box-shadow: .6rem .75rem 0 color-mix(in srgb, var(--cw-color-accent) 13%, var(--cw-color-background)); } }

.cw-sidebar .cw-widget {
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border-color: color-mix(in srgb, var(--cw-color-border) 66%, transparent);
	border-radius: min(1rem, var(--cw-radius-md));
	background: var(--cw-color-surface);
	box-shadow: 0 1px 0 rgb(15 23 42 / 2%);
}

.cw-sidebar .cw-widget__title,
.cw-sidebar .widget-title {
	margin: 0 0 .8rem;
	color: var(--cw-color-heading);
	/* Sidebar headings support the page hierarchy instead of competing with the blog title. */
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -.022em;
	line-height: 1.18;
	text-transform: none;
}

.cw-sidebar .cw-widget :where(a) { text-underline-offset: .18em; }
.cw-sidebar .cw-widget :where(ul) { margin: 0; padding-left: 1.05rem; }
.cw-sidebar .cw-widget :where(li + li) { margin-top: .55rem; }
/* Categorías y archivos: navegación limpia, sin viñetas heredadas. */
.cw-sidebar :is(.widget_categories, .widget_archive) > ul,
.cw-sidebar :is(.wp-block-categories-list, .wp-block-archives-list) { list-style: none; padding-left: 0; }
.cw-sidebar :is(.widget_categories, .widget_archive) > ul > li,
.cw-sidebar :is(.wp-block-categories-list, .wp-block-archives-list) > li { padding-left: 0; }
.cw-sidebar :is(.widget_categories, .widget_archive) > ul > li::marker,
.cw-sidebar :is(.wp-block-categories-list, .wp-block-archives-list) > li::marker { content: ''; }
.cw-sidebar :is(.widget_categories, .widget_archive) > ul > li > a,
.cw-sidebar :is(.wp-block-categories-list, .wp-block-archives-list) > li > a { display: inline-flex; align-items: center; min-height: 2rem; }
.cw-sidebar .wp-block-search__button,
.cw-sidebar .search-submit { min-height: 2.75rem; border-radius: .7rem; background: var(--cw-color-primary); color: #fff; font-weight: 720; }
.cw-sidebar .wp-block-search__button:hover,
.cw-sidebar .search-submit:hover { background: var(--cw-color-accent-strong); color: #fff; }

.cw-entry--single .cw-single-post { max-width: 50rem; margin-inline: auto; }
.cw-entry--single .entry-header { max-width: 48rem; margin-inline: auto; margin-bottom: clamp(1.75rem, 4vw, 3.15rem); }
.cw-entry--single .entry-header .entry-title {
	margin: .78rem 0 0;
	font-size: clamp(2.35rem, 5.2vw, 4.65rem);
	line-height: .98;
	letter-spacing: -.055em;
	text-wrap: balance;
}
.cw-entry--single .entry-meta { margin-top: 1.15rem; font-size: .73rem; font-weight: 650; letter-spacing: .08em; line-height: 1.45; text-transform: uppercase; }
.cw-entry--single .entry-thumbnail { margin: 0 auto clamp(2rem, 5vw, 4rem); border-radius: min(1.25rem, var(--cw-radius-lg)); background: color-mix(in srgb, var(--cw-color-accent) 9%, var(--cw-color-surface)); }
.cw-entry--single .entry-thumbnail img { width: 100%; max-height: min(62vw, 38rem); object-fit: cover; }
.cw-entry--single .entry-content { max-width: 44rem; margin-inline: auto; font-size: clamp(1.03rem, 1.25vw, 1.16rem); line-height: 1.82; }
.cw-entry--single .entry-content > :where(p,ul,ol) { max-width: 42rem; }
.cw-entry--single .entry-content > :where(h2,h3,h4) { margin-top: 2.15em; letter-spacing: -.025em; }
.cw-entry--single .entry-content > blockquote { margin: 2.2em 0; padding: .2rem 0 .2rem clamp(1.2rem, 3vw, 2rem); border-left: 2px solid var(--cw-color-accent); color: var(--cw-color-heading); font-size: 1.18em; font-style: normal; line-height: 1.55; }
.cw-entry--single .entry-content > blockquote > :last-child { margin-bottom: 0; }
.cw-single-header-align--center .entry-header { text-align: center; }
.cw-single-header-align--center .cw-entry__eyebrow { justify-content: center; }

/* Single-post navigation is structurally separate from pagination.
 * Previous/next destinations are full, readable cards rather than tiny stacked
 * pills. The generic .nav-links styles below also serve archive pagination, so
 * the post-navigation spans explicitly reset those pagination treatments. */
.post-navigation { max-width: 50rem; margin: clamp(3rem, 7vw, 5rem) auto 0; padding-top: 1.25rem; border-top: 1px solid color-mix(in srgb, var(--cw-color-border) 72%, transparent); }
.post-navigation .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; width: 100%; }
.post-navigation .nav-previous, .post-navigation .nav-next { min-width: 0; }
.post-navigation .nav-links > :only-child { width: min(100%, 27rem); }
/* When WordPress has only one destination, keep its semantic direction in the
 * two-column desktop grid. A next post belongs on the right; a previous post
 * remains on the left. */
.post-navigation .nav-previous:only-child { grid-column: 1; justify-self: start; }
.post-navigation .nav-next:only-child { grid-column: 2; justify-self: end; }
.post-navigation .nav-links a {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	min-height: 7.2rem;
	gap: .55rem;
	width: 100%;
	padding: 1.2rem 4.25rem 1.2rem 1.3rem;
	border: 1px solid color-mix(in srgb, var(--cw-color-border) 78%, transparent);
	border-radius: var(--cw-radius-md);
	background: var(--cw-color-surface);
	box-shadow: 0 1px 0 rgb(15 23 42 / 2%);
	color: var(--cw-color-heading);
	text-decoration: none;
	transition: border-color var(--cw-motion-fast) var(--cw-ease-standard), background-color var(--cw-motion-fast) var(--cw-ease-standard), box-shadow var(--cw-motion-fast) var(--cw-ease-standard), transform var(--cw-motion-fast) var(--cw-ease-standard);
}
.post-navigation .nav-links span {
	display: block;
	min-width: 0;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.post-navigation .nav-next a::after,
.post-navigation .nav-previous a::before {
	position: absolute;
	top: 50%;
	display: grid;
	place-items: center;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--cw-color-accent) 10%, var(--cw-color-surface));
	color: var(--cw-color-accent-strong);
	font-size: 1.2rem;
	font-weight: 720;
	line-height: 1;
	transform: translateY(-50%);
	transition: background-color var(--cw-motion-fast) var(--cw-ease-standard), color var(--cw-motion-fast) var(--cw-ease-standard), transform var(--cw-motion-fast) var(--cw-ease-standard);
}
.post-navigation .nav-next a::after { content: '→'; right: 1.25rem; }
.post-navigation .nav-previous a { align-items: flex-end; padding: 1.2rem 1.3rem 1.2rem 4.25rem; text-align: right; }
.post-navigation .nav-previous a::before { content: '←'; left: 1.25rem; }
.post-navigation .nav-links a:hover,
.post-navigation .nav-links a:focus-visible { border-color: color-mix(in srgb, var(--cw-color-accent) 72%, var(--cw-color-border)); background: color-mix(in srgb, var(--cw-color-accent) 5%, var(--cw-color-surface)); color: var(--cw-color-accent-strong); box-shadow: 0 .35rem .9rem rgb(15 23 42 / 7%); transform: translateY(-1px); }
.post-navigation .nav-links a:hover::after,
.post-navigation .nav-links a:focus-visible::after { transform: translate(.18rem, -50%); }
.post-navigation .nav-links a:hover::before,
.post-navigation .nav-links a:focus-visible::before { transform: translate(-.18rem, -50%); }
.cw-post-navigation__label { color: var(--cw-color-text-muted); font-size: .68rem; letter-spacing: .13em; }
.cw-post-navigation__title { max-width: 24ch; color: var(--cw-color-heading); font-size: clamp(1.05rem, 1.7vw, 1.3rem); font-weight: 760; line-height: 1.2; letter-spacing: -.02em; text-wrap: balance; }

/* A sidebarless wide/full post uses a broad utility canvas while the article
 * body keeps its own readable measure. Navigation, comments and the form no
 * longer inherit the narrow editorial column in those profiles. */
body.cw-lumen-pro-width--wide .cw-entry--single.cw-screen-layout--none .post-navigation,
body.cw-lumen-pro-width--wide .cw-entry--single.cw-screen-layout--none .cw-comments,
body.cw-lumen-pro-width--full .cw-entry--single.cw-screen-layout--none .post-navigation,
body.cw-lumen-pro-width--full .cw-entry--single.cw-screen-layout--none .cw-comments {
	width: min(calc(100% - 2rem), var(--cw-layout-wide, 1120px));
	max-width: none;
}


.navigation.pagination { margin-top: clamp(2.5rem, 6vw, 4.5rem); padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--cw-color-border) 72%, transparent); }
.nav-links { gap: .42rem; }
.nav-links a, .nav-links span { min-width: 2.6rem; min-height: 2.6rem; display: inline-grid; place-items: center; padding: .45rem .7rem; border-color: color-mix(in srgb, var(--cw-color-border) 70%, transparent); border-radius: .55rem; background: var(--cw-color-surface); text-decoration: none; }
.nav-links a:hover { border-color: var(--cw-color-accent); color: var(--cw-color-accent-strong); }
.nav-links .current { border-color: var(--cw-color-primary); background: var(--cw-color-primary); color: #fff; }

@media (min-width: 782px) {
	.cw-loop--list .cw-card--layout-media-left,
	.cw-loop--list .cw-card--layout-compact { display: grid; grid-template-columns: minmax(11rem, 36%) minmax(0, 1fr); align-items: stretch; }
	.cw-loop--list .cw-card--layout-compact { grid-template-columns: minmax(10rem, 30%) minmax(0, 1fr); }
	.cw-loop--list .cw-card--layout-media-left .cw-card__media,
	.cw-loop--list .cw-card--layout-compact .cw-card__media { height: 100%; margin: 0; border-radius: 0; }
	.cw-loop--list .cw-card--layout-media-left .cw-card__media img,
	.cw-loop--list .cw-card--layout-compact .cw-card__media img { height: 100%; object-fit: cover; }
	.cw-loop--list .cw-card--layout-compact .cw-card__body { padding: clamp(1.25rem, 2.4vw, 1.85rem); }
	.cw-loop--list .cw-card--without-media { display: block; }
}

@media (max-width: 781px) {
	.cw-template-main--posts { padding-top: 1.25rem; }
	.cw-blog-intro { grid-template-columns: 1fr; gap: 2rem; margin-bottom: 2.75rem; padding-bottom: 2.75rem; }
	.cw-blog-intro__title { max-width: 13ch; }
	.cw-blog-intro__visual { min-height: 14rem; max-width: 32rem; }
	.cw-blog-intro--align-center .cw-blog-intro__copy { text-align: left; margin-inline: 0; }
	.cw-blog-intro--align-center .cw-blog-intro__eyebrow { justify-content: flex-start; }
	.cw-blog-intro--align-center .cw-blog-intro__cta { margin-inline: 0; }
	.cw-blog-intro__visual-label { top: 1.25rem; left: 1.25rem; }
	.cw-archive-header { margin-bottom: 2.25rem; }
	.cw-archive-header--single-line h1 { font-size: clamp(1.45rem, 7.25vw, 2.35rem); letter-spacing: -.045em; }
	.cw-card__media { margin: .85rem .85rem 0; }
	.cw-card__body { padding: 1.3rem; }
	.cw-card__body .entry-title { font-size: 1.35rem; }
	.cw-entry--single .entry-header .entry-title { font-size: clamp(2.1rem, 11vw, 3rem); }
	.cw-entry--single .entry-content { font-size: 1rem; line-height: 1.76; }
	.post-navigation .nav-links { grid-template-columns: 1fr; }
	.post-navigation .nav-links > :only-child { width: 100%; }
	.post-navigation .nav-previous:only-child,
	.post-navigation .nav-next:only-child { justify-self: stretch; }
	.post-navigation .nav-links a { min-height: 6.5rem; }
	.post-navigation .nav-previous a { align-items: flex-start; padding-right: 4.25rem; padding-left: 1.3rem; text-align: left; }
	.post-navigation .nav-previous a::before { right: 1.25rem; left: auto; content: '←'; }
}

/* Comments: native WordPress template with the same restrained editorial rhythm. */
.cw-comments { max-width:44rem; margin:clamp(3rem,7vw,5rem) auto 0; padding-top:clamp(2rem,4vw,3rem); border-top:1px solid color-mix(in srgb,var(--cw-color-border) 72%,transparent); }
.cw-comments__title, .cw-comments__reply-title { margin:0; color:var(--cw-color-heading,var(--cw-color-primary)); font-size:clamp(1.25rem,2vw,1.55rem); letter-spacing:-.025em; }
.cw-comments__list, .cw-comments__list .children { list-style:none; margin:0; padding:0; }
.cw-comments__list { display:grid; gap:1.5rem; margin-top:1.5rem; }
.cw-comments__list .children { display:grid; gap:1.25rem; margin-top:1.25rem; margin-left:clamp(1rem,4vw,2.5rem); padding-left:clamp(.9rem,3vw,1.5rem); border-left:1px solid color-mix(in srgb,var(--cw-color-border) 72%,transparent); }
.cw-comments .comment-body { position:relative; padding:1.25rem 1.35rem; border:1px solid color-mix(in srgb,var(--cw-color-border) 78%,transparent); border-radius:var(--cw-radius-md); background:var(--cw-color-surface); }
.cw-comments .comment-author { display:flex; align-items:center; gap:.7rem; min-height:48px; color:var(--cw-color-heading,var(--cw-color-primary)); font-weight:720; }
.cw-comments .comment-author .avatar { width:48px; height:48px; margin:0 .65rem 0 0; border-radius:50%; }
.cw-comments .comment-metadata { margin-top:.5rem; color:var(--cw-color-text-muted); font-size:.84rem; }
.cw-comments .comment-metadata a { color:inherit; }
.cw-comments .comment-content { margin-top:1rem; line-height:1.72; }
.cw-comments .comment-content > :last-child { margin-bottom:0; }
.cw-comments .reply { margin-top:1rem; }
.cw-comments .reply a, .cw-comments .comment-reply-title small a { color:var(--cw-color-accent-strong); font-size:.9rem; font-weight:720; text-decoration:none; }
.cw-comments .reply a:hover, .cw-comments .comment-reply-title small a:hover { text-decoration:underline; }
.cw-comments__navigation { margin-top:1.5rem; }
.cw-comments__closed { margin:1.5rem 0 0; color:var(--cw-color-text-muted); }
.cw-comments .comment-respond { margin-top:2rem; padding:clamp(1.25rem,3vw,1.75rem); border-radius:var(--cw-radius-md); background:color-mix(in srgb,var(--cw-color-accent) 6%,var(--cw-color-surface)); }
.cw-comments .comment-respond .comment-form { display:grid; gap:1rem; margin-top:1rem; }
.cw-comments .comment-respond .comment-form > p { margin:0; }
.cw-comments .comment-respond label { display:block; margin-bottom:.4rem; color:var(--cw-color-heading,var(--cw-color-primary)); font-size:.92rem; font-weight:700; }
.cw-comments .comment-respond :is(input[type="text"],input[type="email"],input[type="url"],textarea) { width:100%; padding:.75rem .85rem; border:1px solid var(--cw-color-border); border-radius:.45rem; background:var(--cw-color-surface); color:var(--cw-color-text); font:inherit; }
.cw-comments .comment-respond textarea { min-height:10rem; resize:vertical; }
.cw-comments .comment-respond .form-submit { margin-top:.25rem; }
.cw-comments .comment-respond input[type="submit"] { border:0; border-radius:.45rem; padding:.75rem 1rem; background:var(--cw-color-accent-strong); color:#fff; cursor:pointer; font:inherit; font-weight:720; }
.cw-comments .comment-respond input[type="submit"]:hover { transform:translateY(-1px); }
@media (max-width:581px) { .cw-comments .comment-body { padding:1rem; } .cw-comments__list .children { margin-left:.5rem; padding-left:.75rem; } }

/* Hero ancho completo: the leading hero occupies the viewport; only the content
 * below enters the normal sidebar grid. */
.cw-template-main--hero { padding-block: 0; overflow-x: clip; }
/* This template lets its hero and optional editorial content define the page
 * height instead of inheriting the viewport filler used by conventional pages.
 * That prevents an empty visual region before the footer on hero-only pages. */
body.cw-template--hero-full-width .cw-site-shell { min-height: 0; }
.cw-entry--hero { padding-inline: 0; }
/* A direct class is added before the header for Gutenberg hero-only pages.
 * It makes the hero consume the actual remaining viewport height, so no empty
 * panel can sit between the hero and the footer. */
body.cw-template--hero-only { min-height: 100dvh; display: flex; flex-direction: column; }
body.cw-template--hero-only .cw-site-shell { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
body.cw-template--hero-only .cw-template-main--hero { display: flex; flex: 1 1 auto; flex-direction: column; }
body.cw-template--hero-only .cw-entry--hero-only { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
body.cw-template--hero-only .cw-entry--hero-only .cw-hero-template__hero { display: flex; flex: 1 1 auto; min-height: 0; }
body.cw-template--hero-only .cw-entry--hero-only .cw-hero-template__hero > :only-child { flex: 1 1 auto; min-height: 100%; }
body.cw-template--hero-only .cw-entry--hero-only .cw-hero-template__hero > .wp-block-cover { min-height: 100% !important; }
body.cw-template--hero-only .cw-site-footer { margin-top: 0; }


/*
 * Structural fallback for a real hero-only page. The normal detection writes
 * cw-template--hero-only before the header, but this selector is deliberately
 * based on the rendered structure as well: a hero entry with no posterior
 * layout and no comments is always a hero-only page. This prevents a generic
 * viewport-height shell from leaving a white panel under the Cover if an
 * external integration changes body classes or keeps stale body markup.
 */
@supports selector(body:has(.cw-entry--hero)) {
	body:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) {
		min-height: 100dvh;
		display: flex;
		flex-direction: column;
	}

	body:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) .cw-site-shell {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		min-height: 0 !important;
	}

	body:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) .cw-template-main--hero,
	body:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) .cw-entry--hero,
	body:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) .cw-hero-template__hero {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		min-height: 0;
	}

	body:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) .cw-hero-template__hero > :only-child {
		flex: 1 1 auto;
		width: 100%;
		min-height: 100%;
	}

	body:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) .cw-hero-template__hero > .wp-block-cover {
		min-height: 100% !important;
		aspect-ratio: auto !important;
	}

	body:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) .cw-site-footer {
		margin-top: 0;
	}

	/* WordPress offsets the document below its administration bar. Keep the
	 * copyright band at the visible bottom instead of extending a short page
	 * by that offset. */
	@media (min-width: 783px) {
		body.admin-bar:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) {
			min-height: calc(100dvh - 32px);
		}
	}

	@media (max-width: 782px) {
		body.admin-bar:has(#cw-main-content.cw-template-main--hero .cw-entry--hero > .cw-hero-template__hero):not(:has(#cw-main-content.cw-template-main--hero .cw-hero-template__layout)):not(:has(#cw-main-content.cw-template-main--hero .cw-comments)) {
			min-height: calc(100dvh - 46px);
		}
	}
}
.cw-hero-template__hero { width: 100%; max-width: none; margin: 0; }
.cw-hero-template__hero > :first-child { margin-top: 0; }
.cw-hero-template__hero > :last-child { margin-bottom: 0; }
.cw-hero-template__hero > :is(.alignfull, .elementor) { width: 100%; max-width: none; margin-inline: 0; }
/* WordPress can add global horizontal padding to the root. Only the hero
 * cancels that padding; content and sidebar below keep normal gutters. */
.has-global-padding .cw-template-main--hero .cw-hero-template__hero {
	width: calc(100% + var(--wp--style--root--padding-left, 0px) + var(--wp--style--root--padding-right, 0px));
	margin-left: calc(var(--wp--style--root--padding-left, 0px) * -1);
	margin-right: calc(var(--wp--style--root--padding-right, 0px) * -1);
}
.cw-hero-template__layout { width: min(calc(100% - 2rem), var(--cw-layout-wide,1120px)); margin: var(--cw-template-space, clamp(3rem, 7vw, 6rem)) auto; }
.cw-hero-template__layout--none { width: min(calc(100% - 2rem), var(--cw-layout-content,760px)); display: block; }
.cw-hero-template__content {
	grid-area: content;
	min-width: 0;
	max-width: 100%;
}
/* Elementor sections inside the post-hero column must remain constrained by
 * the grid cell. The hero itself is rendered separately above the grid. */
.cw-hero-template__content > .elementor { min-width: 0; max-width: 100%; }
.cw-hero-template__content > :first-child { margin-top: 0; }

/* Elementor path: PHP separates the hero from the remaining sections before
 * this markup reaches the sidebar grid. Each fragment retains Elementor's root
 * class, so generated Elementor styles continue to apply normally. */
.cw-hero-template__hero--elementor > .elementor { width: 100%; max-width: none; margin: 0; }
.cw-hero-template__hero--elementor > .elementor > :first-child { margin-top: 0; }
.cw-hero-template__content > .elementor { width: 100%; max-width: 100%; min-width: 0; margin-inline: 0; }
.cw-hero-template__content > .elementor > :first-child { margin-top: 0; }

/* Elementor can stretch a section to the viewport with inline geometry. That
 * is valid for the hero, but must not let sections after the hero overlap the
 * Lumen sidebar grid. Keep that behaviour contained to this content column. */
.cw-hero-template__layout--right > .cw-hero-template__content { grid-column: 1; grid-row: 1; }
.cw-hero-template__layout--right > .cw-sidebar { grid-column: 2; grid-row: 1; }
.cw-hero-template__layout--left > .cw-hero-template__content { grid-column: 2; grid-row: 1; }
.cw-hero-template__layout--left > .cw-sidebar { grid-column: 1; grid-row: 1; }
.cw-hero-template__content > .elementor > .elementor-section-stretched,
.cw-hero-template__content > .elementor > .elementor-element.elementor-section-stretched,
.cw-hero-template__content > .elementor > .elementor-element.e-con {
	left: auto !important;
	right: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-inline: 0 !important;
}
.cw-hero-template__content :is(.elementor-section, .e-con) { min-width: 0; }


/* Elementor Paragraph compatibility: Elementor's Paragraph widget can keep
 * a no-wrap/min-content text behavior inside CSS Grid, even when its visual
 * box is correctly constrained. Limit this correction to post-hero Elementor
 * content in the Lumen Hero ancho completo template. */
.cw-hero-template__content .e-paragraph-base,
.cw-hero-template__content .e-paragraph-base p {
	display: block;
	inline-size: auto;
	min-inline-size: 0 !important;
	max-inline-size: 100% !important;
	width: 100%;
	white-space: normal !important;
	overflow-wrap: anywhere;
	word-wrap: break-word;
	word-break: normal;
	hyphens: auto;
}

.cw-hero-template__content .e-paragraph-base :is(span, a, strong, em) {
	white-space: inherit;
	overflow-wrap: inherit;
	word-break: inherit;
}

@media (max-width:960px) {
	.cw-hero-template__layout,
	.cw-hero-template__layout--none { width: min(calc(100% - var(--cw-tablet-gutter,32px) - var(--cw-tablet-gutter,32px)), var(--cw-layout-content,760px)); }
}

/* 1.4.29 — Fallback unlayered for a hero-only page.
 * The footer owns its natural height; the Cover flexes into the remaining
 * visible viewport. This must be outside the base layer to override Gutenberg
 * inline editorial minima when a page is rendered by the front end. */
body.cw-template--hero-only {
	min-height: 100dvh !important;
	display: flex !important;
	flex-direction: column !important;
}
body.cw-template--hero-only .cw-site-shell {
	display: flex !important;
	flex: 1 1 0 !important;
	flex-direction: column !important;
	min-height: 0 !important;
}
body.cw-template--hero-only .cw-template-main--hero,
body.cw-template--hero-only .cw-entry--hero-only,
body.cw-template--hero-only .cw-entry--hero-only .cw-hero-template__hero {
	display: flex !important;
	flex: 1 1 0 !important;
	flex-direction: column !important;
	min-height: 0 !important;
}
body.cw-template--hero-only .cw-entry--hero-only .cw-hero-template__hero > :only-child {
	flex: 1 1 0 !important;
	min-height: 100% !important;
	width: 100% !important;
}
body.cw-template--hero-only .cw-entry--hero-only .cw-hero-template__hero > .wp-block-cover {
	flex: 1 1 0 !important;
	min-height: 100% !important;
	height: 100% !important;
	aspect-ratio: auto !important;
}
body.cw-template--hero-only .cw-site-footer {
	flex: 0 0 auto !important;
	margin-top: 0 !important;
}
@media (min-width: 783px) {
	body.admin-bar.cw-template--hero-only { min-height: calc(100dvh - 32px) !important; }
}
@media (max-width: 782px) {
	body.admin-bar.cw-template--hero-only { min-height: calc(100dvh - 46px) !important; }
}

@media (prefers-reduced-motion: reduce) {
	.cw-classic-navigation__submenu-icon,
	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .menu-item-has-children,
	html.cw-navigation-js .cw-classic-navigation--primary.cw-compact-navigation-active.is-open .cw-classic-navigation__submenu-toggle { transition: none; }
}

/* WordPress core alignment and media classes. */
.alignleft { float: left; margin-right: 1.5em; margin-bottom: 1em; }
.alignright { float: right; margin-left: 1.5em; margin-bottom: 1em; }
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { margin-top: .5rem; color: var(--cw-color-muted); font-size: .875rem; line-height: 1.5; text-align: center; }
.gallery-caption { color: var(--cw-color-muted); font-size: .875rem; line-height: 1.5; }
.bypostauthor { }
.sticky { }
.entry-footer { margin-top: var(--cw-space-4); color: var(--cw-color-muted); font-size: .9375rem; }
.entry-footer .tags-links a { display: inline-block; margin: 0 .25rem .25rem 0; }


/* 1.4.46 · Lumen Pro Library patterns in Hero ancho completo.
 * Library patterns are full-width groups that must remain in normal
 * document flow. Do not apply the viewport-filler flex model reserved for
 * native Cover hero-only pages. */
body.cw-template--library-hero-only {
	display: block !important;
	min-height: 0 !important;
}

body.cw-template--library-hero-only .cw-site-shell,
body.cw-template--library-hero-only .cw-template-main--hero,
body.cw-template--library-hero-only .cw-entry--hero,
body.cw-template--library-hero-only .cw-hero-template__hero {
	display: block !important;
	flex: none !important;
	min-height: 0 !important;
	height: auto !important;
	overflow: visible !important;
}

body.cw-template--library-hero-only .cw-hero-template__hero > :only-child {
	display: block !important;
	flex: none !important;
	min-height: 0 !important;
	height: auto !important;
	width: 100%;
}

body.cw-template--library-hero-only .cw-site-footer {
	margin-top: 0;
	position: relative;
	z-index: 1;
}


/* 1.4.46 · Ritmo final de Biblioteca Pro en Hero ancho completo.
 * Mantiene los patterns de Biblioteca en flujo normal, pero evita que el footer
 * quede pegado al bloque cuando la página tiene un único pattern corto. */
body.cw-template--library-hero-only .cw-site-footer {
	margin-top: clamp(1.5rem, 3.5vw, 3rem) !important;
}

@media (max-width: 782px) {
	body.cw-template--library-hero-only .cw-site-footer {
		margin-top: clamp(1.25rem, 6vw, 2.25rem) !important;
	}
}


/* 1.4.46 · Ritmo de página para Biblioteca Pro corta.
 * Mantiene el contenido de Biblioteca en flujo normal, pero recupera el flex
 * de página completo en la plantilla Hero ancho completo. Así, un pattern corto
 * como CTA final o Beneficios no deja el footer pegado y ubicado antes del
 * cierre visual de la pantalla. */
body.cw-template--library-hero-only {
	min-height: 100dvh !important;
	display: flex !important;
	flex-direction: column !important;
}

body.cw-template--library-hero-only .cw-site-shell {
	display: flex !important;
	flex: 1 0 auto !important;
	flex-direction: column !important;
	min-height: 0 !important;
	height: auto !important;
}

body.cw-template--library-hero-only .cw-template-main--hero {
	display: block !important;
	flex: 1 0 auto !important;
	min-height: 0 !important;
	height: auto !important;
	overflow: visible !important;
}

body.cw-template--library-hero-only .cw-entry--hero,
body.cw-template--library-hero-only .cw-hero-template__hero {
	display: block !important;
	flex: none !important;
	min-height: 0 !important;
	height: auto !important;
	overflow: visible !important;
}

body.cw-template--library-hero-only .cw-site-footer {
	flex: 0 0 auto !important;
	margin-top: clamp(2rem, 4vw, 3.5rem) !important;
}

@media (max-width: 782px) {
	body.cw-template--library-hero-only .cw-site-footer {
		margin-top: clamp(1.75rem, 7vw, 2.75rem) !important;
	}
}

/* 1.4.47 · Hero Base común: footer sin aire extra solo en páginas hero-only.
 * La regla vive en el Theme porque el Hero Base pasará a ser una estructura
 * común gratuita. Afecta únicamente a la plantilla Lumen: Ancho completo cuando
 * el primer bloque es un Hero Lumen y no existe contenido visible posterior. */
body.cw-template--full-lumen-hero-only .cw-site-footer,
body.cw-template--full-lumen-hero-only .cw-site-footer--after-lumen-hero {
	margin-top: 0 !important;
}

body.cw-template--full-first-lumen-hero .cw-template-main--full-canvas .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
body.cw-template--full-first-lumen-hero .cw-entry--full-canvas > .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child {
	margin-top: 0;
}

body.cw-template--full-lumen-hero-only .cw-template-main--full-canvas .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
body.cw-template--full-lumen-hero-only .cw-entry--full-canvas > .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child {
	margin-bottom: 0;
}

/* 1.4.48 · Hero Base común: paridad de alto entre plantillas.
 * El alto, la zona segura y el wrapper de las plantillas se igualan en el Theme
 * para que funcionen tanto los futuros Heroes gratuitos como las variantes Pro.
 * El alcance queda limitado a un Hero Lumen como primer bloque/direct child. */
body.cw-template--full-first-lumen-hero .cw-template-main--full-canvas .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
body.cw-template--full-first-lumen-hero .cw-entry--full-canvas > .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
body.cw-template--default-lumen-hero-only .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
body.cw-template--hero-full-width .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero),
body.cw-template--lumen-hero-only .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero),
body.cw-template--library-hero-only .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
	--cw-lumen-hero-header-height: var(--cw-lumen-pro-header-height, var(--cw-lumen-header-height, 84px));
	--cw-lumen-hero-min-height: calc(100svh - var(--cw-lumen-hero-header-height));
	--cw-lumen-hero-safe-top: clamp(2.75rem, 4.8vh, 4rem);
	--cw-lumen-hero-safe-bottom: clamp(2.35rem, 4.4vh, 3.75rem);
	--cw-lumen-pro-hero-header-height: var(--cw-lumen-hero-header-height);
	--cw-lumen-pro-hero-min-height: var(--cw-lumen-hero-min-height);
	--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
	--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	min-height: var(--cw-lumen-hero-min-height) !important;
}

body.cw-lumen-pro-header-transparent:not(.cw-lumen-pro-header-placement--sticky).cw-template--full-first-lumen-hero .cw-template-main--full-canvas .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
body.cw-lumen-pro-header-transparent:not(.cw-lumen-pro-header-placement--sticky).cw-template--full-first-lumen-hero .cw-entry--full-canvas > .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
body.cw-lumen-pro-header-transparent:not(.cw-lumen-pro-header-placement--sticky).cw-template--default-lumen-hero-only .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
body.cw-lumen-pro-header-transparent:not(.cw-lumen-pro-header-placement--sticky).cw-template--hero-full-width .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero),
body.cw-lumen-pro-header-transparent:not(.cw-lumen-pro-header-placement--sticky).cw-template--lumen-hero-only .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero),
body.cw-lumen-pro-header-transparent:not(.cw-lumen-pro-header-placement--sticky).cw-template--library-hero-only .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
	--cw-lumen-hero-min-height: 100svh;
	--cw-lumen-hero-safe-top: max(clamp(3.25rem, 6vh, 4.75rem), calc(var(--cw-lumen-hero-header-height) + .95rem));
	--cw-lumen-hero-safe-bottom: clamp(2.35rem, 4.4vh, 3.75rem);
	--cw-lumen-pro-hero-min-height: var(--cw-lumen-hero-min-height);
	--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
	--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
}

body.cw-template--hero-full-width .cw-hero-template__hero:has(> :is(.cw-lumen-hero, .cw-lumen-pro-hero)),
body.cw-template--lumen-hero-only .cw-hero-template__hero:has(> :is(.cw-lumen-hero, .cw-lumen-pro-hero)),
body.cw-template--library-hero-only .cw-hero-template__hero:has(> :is(.cw-lumen-hero, .cw-lumen-pro-hero)) {
	min-height: 0 !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
}

body.cw-template--hero-full-width .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero) > :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner),
body.cw-template--lumen-hero-only .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero) > :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner),
body.cw-template--library-hero-only .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero) > :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner),
body.cw-template--full-first-lumen-hero .cw-template-main--full-canvas .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child > :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner),
body.cw-template--full-first-lumen-hero .cw-entry--full-canvas > .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child > :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner),
body.cw-template--default-lumen-hero-only .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child > :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner) {
	min-height: var(--cw-lumen-hero-min-height, var(--cw-lumen-pro-hero-min-height)) !important;
	height: auto !important;
	padding-block-start: var(--cw-lumen-hero-safe-top, var(--cw-lumen-pro-hero-safe-top)) !important;
	padding-block-end: var(--cw-lumen-hero-safe-bottom, var(--cw-lumen-pro-hero-safe-bottom)) !important;
}

@media (max-width: 782px) {
	body.cw-template--full-first-lumen-hero .cw-template-main--full-canvas .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
	body.cw-template--full-first-lumen-hero .cw-entry--full-canvas > .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
	body.cw-template--default-lumen-hero-only .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child,
	body.cw-template--hero-full-width .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero),
	body.cw-template--lumen-hero-only .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero),
	body.cw-template--library-hero-only .cw-hero-template__hero > :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
		--cw-lumen-hero-safe-top: clamp(2.75rem, 9vw, 4rem);
		--cw-lumen-hero-safe-bottom: clamp(2.15rem, 7vw, 3.25rem);
		--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
		--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	}
}

/* 1.4.49 · Hero Base común: flujo real del shell en canvas hero-only.
 * En la plantilla Lumen: Ancho completo, el shell global usa min-height para
 * empujar el footer en páginas editoriales cortas. Cuando el único contenido
 * visible es un Hero Lumen, ese min-height agrega aire artificial entre el
 * main y el footer. Se neutraliza solo en ese caso detectado por el Theme. */
body.cw-template--full-lumen-hero-only .cw-site-shell {
	display: block !important;
	flex: none !important;
	min-height: 0 !important;
	height: auto !important;
	overflow: visible !important;
}

body.cw-template--full-lumen-hero-only .cw-template-main--full-canvas,
body.cw-template--full-lumen-hero-only .cw-entry--full-canvas,
body.cw-template--full-lumen-hero-only .cw-entry--full-canvas > .entry-content {
	display: block !important;
	flex: none !important;
	min-height: 0 !important;
	height: auto !important;
	overflow: visible !important;
}

body.cw-template--full-lumen-hero-only .cw-template-main--full-canvas {
	padding-block: 0 !important;
}

body.cw-template--full-lumen-hero-only .cw-entry--full-canvas > .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child {
	margin-block-end: 0 !important;
}


/* 1.4.50 · Hero Base común: plantilla por defecto hero-only.
 * Reutiliza la detección de Hero Lumen para neutralizar únicamente el espacio
 * superior del main y el crecimiento flex del shell cuando la página estándar
 * no muestra título, imagen, sidebar, comentarios ni contenido posterior. */
body.cw-template--default-lumen-hero-only .cw-site-shell {
	display: block !important;
	flex: none !important;
	min-height: 0 !important;
	height: auto !important;
	overflow: visible !important;
}

body.cw-template--default-lumen-hero-only .cw-template-main,
body.cw-template--default-lumen-hero-only .cw-content-wrap,
body.cw-template--default-lumen-hero-only .cw-screen-layout__content,
body.cw-template--default-lumen-hero-only .cw-screen-layout__content > article,
body.cw-template--default-lumen-hero-only .cw-screen-layout__content > article > .entry-content {
	display: block !important;
	flex: none !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
}

body.cw-template--default-lumen-hero-only .cw-screen-layout {
	display: block !important;
	grid-template-columns: none !important;
	width: 100% !important;
	max-width: none !important;
	gap: 0 !important;
}

body.cw-template--default-lumen-hero-only .entry-content > :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child {
	margin-block: 0 !important;
}

body.cw-template--default-lumen-hero-only .cw-site-footer,
body.cw-template--default-lumen-hero-only .cw-site-footer--after-lumen-hero {
	margin-top: 0 !important;
}

/* 1.4.80 · Primer Hero visible pegado a la cabecera en plantilla con sidebar.
 * Se activa solo cuando no hay título ni imagen destacada antes del Hero. */
body.cw-template--default-lumen-hero-sidebar-flush .cw-template-main {
	padding-top: 0 !important;
}

body.cw-template--default-lumen-hero-sidebar-flush
.cw-screen-layout__content > article > .entry-content
> p:empty:has(~ :is(.cw-lumen-hero, .cw-lumen-pro-hero)) {
	display: none !important;
	margin: 0 !important;
}

/* 1.4.52 · Hero Base en plantilla por defecto con sidebar.
 * La estructura pertenece al Theme: cuando una página estándar comienza con
 * un Hero Lumen y mantiene sidebar, el Hero se adapta a la columna de contenido
 * en escritorio y elimina alturas full-screen artificiales en todos los tamaños.
 * No modifica páginas sin sidebar ni las plantillas Ancho completo/Hero ancho completo. */
body.cw-template--default-lumen-hero-sidebar
.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
> .cw-screen-layout__content > article > .entry-content
> :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
	--cw-lumen-hero-min-height: 0px;
	--cw-lumen-pro-hero-min-height: 0px;
	--cw-lumen-hero-safe-top: clamp(2.25rem, 4.5vw, 3.75rem);
	--cw-lumen-hero-safe-bottom: clamp(2.25rem, 4.5vw, 3.75rem);
	--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
	--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	min-height: 0 !important;
	height: auto !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

body.cw-template--default-lumen-hero-sidebar
.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
> .cw-screen-layout__content > article > .entry-content
> :is(.cw-lumen-hero, .cw-lumen-pro-hero)
> :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner),
body.cw-template--default-lumen-hero-sidebar
.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
> .cw-screen-layout__content > article > .entry-content
> .cw-lumen-pro-hero--split .cw-lumen-pro-pattern__hero-media-text,
body.cw-template--default-lumen-hero-sidebar
.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
> .cw-screen-layout__content > article > .entry-content
> .cw-lumen-pro-hero--split .wp-block-media-text__content {
	min-height: 0 !important;
	height: auto !important;
}

body.cw-lumen-pro-header-transparent.cw-template--default-lumen-hero-sidebar
.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
> .cw-screen-layout__content > article > .entry-content
> :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
	--cw-lumen-hero-safe-top: max(clamp(2.75rem, 5.5vw, 4.25rem), calc(var(--cw-lumen-hero-header-height, var(--cw-lumen-pro-header-height, 84px)) + .95rem));
	--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
}

@media (min-width: 961px) {
	body.cw-template--default-lumen-hero-sidebar
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
		box-sizing: border-box !important;
		position: relative !important;
		left: auto !important;
		right: auto !important;
		inset-inline-start: auto !important;
		inset-inline-end: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		transform: none !important;
	}

	body.cw-template--default-lumen-hero-sidebar
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> .cw-lumen-pro-hero--split .wp-block-media-text__media {
		min-height: 0 !important;
		height: 100% !important;
	}
}

@media (max-width: 960px) {
	body.cw-template--default-lumen-hero-sidebar
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
		--cw-lumen-hero-safe-top: clamp(2rem, 8vw, 3.25rem);
		--cw-lumen-hero-safe-bottom: clamp(2rem, 8vw, 3.25rem);
		--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
		--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	}
}


/* 1.4.53 · Hero compacto reutilizable dentro de una columna con sidebar.
 * El Theme activa .cw-lumen-hero-layout--compact y conserva la propiedad de
 * la estructura: ancho de columna, media primero, copy después y alturas auto.
 * Las variantes premium solo refinan sus componentes visuales en Pro. */
@media (min-width: 961px) {
	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
		--cw-lumen-hero-compact-media-height: clamp(16rem, 28vw, 22rem);
		--cw-lumen-hero-compact-gap: clamp(1.5rem, 3vw, 2.5rem);
		--cw-lumen-hero-safe-top: clamp(2rem, 3vw, 3rem);
		--cw-lumen-hero-safe-bottom: clamp(2rem, 3vw, 3rem);
		--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
		--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	}

	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero):is(.cw-lumen-hero--media-copy, .cw-lumen-pro-hero--media-copy)
	> :is(.cw-lumen-hero__inner--split, .cw-lumen-pro-hero__inner--split),
	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero):is(.cw-lumen-hero--media-copy, .cw-lumen-pro-hero--media-copy)
	.cw-lumen-pro-pattern__hero-media-text {
		box-sizing: border-box !important;
		display: flex !important;
		flex-direction: column !important;
		grid-template-columns: 1fr !important;
		align-items: stretch !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		height: auto !important;
		margin: 0 !important;
		gap: var(--cw-lumen-hero-compact-gap) !important;
	}

	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero):is(.cw-lumen-hero--media-copy, .cw-lumen-pro-hero--media-copy)
	:is(.cw-lumen-pro-hero--split, .cw-lumen-hero--split)
	.wp-block-media-text__media {
		order: -1 !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: var(--cw-lumen-hero-compact-media-height) !important;
		height: var(--cw-lumen-hero-compact-media-height) !important;
		margin: 0 !important;
	}

	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero):is(.cw-lumen-hero--media-copy, .cw-lumen-pro-hero--media-copy)
	:is(.cw-lumen-pro-hero--split, .cw-lumen-hero--split)
	.wp-block-media-text__media img {
		position: absolute !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
		min-height: 0 !important;
		object-fit: cover !important;
	}

	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero):is(.cw-lumen-hero--media-copy, .cw-lumen-pro-hero--media-copy)
	.wp-block-media-text__content,
	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero):is(.cw-lumen-hero--media-copy, .cw-lumen-pro-hero--media-copy)
	> :is(.cw-lumen-hero__inner--split, .cw-lumen-pro-hero__inner--split)
	> :is(.cw-lumen-hero__content, .cw-lumen-pro-hero__content) {
		order: 0 !important;
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		height: auto !important;
	}

	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero):is(.cw-lumen-hero--media-copy, .cw-lumen-pro-hero--media-copy)
	> :is(.cw-lumen-hero__inner--split, .cw-lumen-pro-hero__inner--split)
	> :is(.cw-lumen-hero__media, .cw-lumen-pro-hero__media) {
		order: -1 !important;
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		height: auto !important;
		margin: 0 !important;
	}
}


/* 1.4.55 · Modo compacto con sidebar: reset de flex-items Gutenberg.
 * Los Heroes basados en wp:columns conservan flex-grow/flex-basis de core.
 * Al apilarlos en columna, esos valores pueden colapsar media y copy. El Theme
 * neutraliza esa estructura solo dentro del contexto compacto con sidebar. */
@media (min-width: 961px) {
	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero)
	> :is(.cw-lumen-hero__inner--split, .cw-lumen-pro-hero__inner--split)
	> :is(.cw-lumen-hero__content, .cw-lumen-pro-hero__content, .cw-lumen-hero__media, .cw-lumen-pro-hero__media) {
		flex: 0 0 auto !important;
		flex-basis: auto !important;
		flex-grow: 0 !important;
		flex-shrink: 0 !important;
		align-self: stretch !important;
	}

	body.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero)
	> :is(.cw-lumen-hero__inner--split, .cw-lumen-pro-hero__inner--split) {
		justify-content: flex-start !important;
		overflow: visible !important;
	}
}

/* 1.4.56 · Primer Hero Lumen full-width en plantilla predeterminada sin sidebar.
 * El Theme expone .cw-lumen-hero-layout--full y hace escapar únicamente al
 * primer Hero de la columna editorial. El contenido posterior conserva el
 * ancho normal de la plantilla predeterminada. */
body.cw-template--default-first-lumen-hero-full
.cw-template-main > .cw-content-wrap.cw-screen-layout--none
> .cw-screen-layout__content > article > .entry-content
> :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child {
	--cw-lumen-hero-header-height: var(--cw-lumen-pro-header-height, var(--cw-lumen-header-height, 84px));
	--cw-lumen-hero-min-height: calc(100svh - var(--cw-lumen-hero-header-height));
	--cw-lumen-hero-safe-top: clamp(2.75rem, 4.8vh, 4rem);
	--cw-lumen-hero-safe-bottom: clamp(2.35rem, 4.4vh, 3.75rem);
	--cw-lumen-pro-hero-header-height: var(--cw-lumen-hero-header-height);
	--cw-lumen-pro-hero-min-height: var(--cw-lumen-hero-min-height);
	--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
	--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	box-sizing: border-box !important;
	position: relative !important;
	left: 50% !important;
	right: 50% !important;
	width: 100vw !important;
	max-width: 100vw !important;
	min-height: var(--cw-lumen-hero-min-height) !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	margin-top: 0 !important;
	padding-inline: 0 !important;
	border-radius: 0 !important;
	overflow: hidden;
}

body.cw-template--default-first-lumen-hero-full
.cw-template-main > .cw-content-wrap.cw-screen-layout--none
> .cw-screen-layout__content > article > .entry-content
> :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child
> :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner) {
	min-height: var(--cw-lumen-hero-min-height, var(--cw-lumen-pro-hero-min-height)) !important;
	height: auto !important;
	padding-block-start: var(--cw-lumen-hero-safe-top, var(--cw-lumen-pro-hero-safe-top)) !important;
	padding-block-end: var(--cw-lumen-hero-safe-bottom, var(--cw-lumen-pro-hero-safe-bottom)) !important;
}

body.cw-lumen-pro-header-transparent:not(.cw-lumen-pro-header-placement--sticky).cw-template--default-first-lumen-hero-full
.cw-template-main > .cw-content-wrap.cw-screen-layout--none
> .cw-screen-layout__content > article > .entry-content
> :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child {
	--cw-lumen-hero-min-height: 100svh;
	--cw-lumen-hero-safe-top: max(clamp(3.25rem, 6vh, 4.75rem), calc(var(--cw-lumen-hero-header-height) + .95rem));
	--cw-lumen-hero-safe-bottom: clamp(2.35rem, 4.4vh, 3.75rem);
	--cw-lumen-pro-hero-min-height: var(--cw-lumen-hero-min-height);
	--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
	--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
}

@media (max-width: 782px) {
	body.cw-template--default-first-lumen-hero-full
	.cw-template-main > .cw-content-wrap.cw-screen-layout--none
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero):first-child {
		--cw-lumen-hero-safe-top: clamp(2.75rem, 9vw, 4rem);
		--cw-lumen-hero-safe-bottom: clamp(2.15rem, 7vw, 3.25rem);
		--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
		--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	}
}

/* 1.4.62 · Paridad de aire para el layout posterior de Hero ancho completo.
 * La plantilla estándar crea su separación mediante padding del main. En Hero
 * ancho completo el main no puede tener ese padding porque el primer bloque
 * debe tocar el borde; cuando existe sidebar, la separación se traslada al
 * layout posterior como padding interno para evitar colapso de márgenes y
 * mantener el mismo aire respecto de la cabecera/contenido que la plantilla
 * predeterminada. El contrato es de plantilla y se aplica a cualquier bloque. */
.cw-hero-template__layout:is(.cw-screen-layout--left, .cw-screen-layout--right) {
	box-sizing: border-box;
	margin-block: 0;
	padding-block: var(--cw-template-space, clamp(3rem, 7vw, 6rem));
}



/* 1.4.81 · Hero compacto con sidebar: cabecera en flujo sin reserva duplicada.
 * El runtime de Pro fuerza una cabecera sólida en escritorio cuando Hero y
 * sidebar ocupan superficies distintas. En ese estado la cabecera ya consume
 * su altura en el flujo, por lo que el Hero no debe volver a sumarla como
 * safe-top. La unión exterior queda en cero y el ritmo interno usa el contrato
 * compacto común. */
@media (min-width: 961px) {
	body.cw-template--default-lumen-hero-sidebar.cw-lumen-hero-layout--compact
	.cw-template-main > .cw-content-wrap.cw-screen-layout:is(.cw-screen-layout--left, .cw-screen-layout--right)
	> .cw-screen-layout__content > article > .entry-content
	> :is(.cw-lumen-hero, .cw-lumen-pro-hero) {
		--cw-lumen-hero-safe-top: clamp(2rem, 3vw, 3rem);
		--cw-lumen-hero-safe-bottom: clamp(2rem, 3vw, 3rem);
		--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
		--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
		margin-block-start: 0 !important;
	}

	body.cw-template--default-lumen-hero-sidebar-flush
	:is(.cw-template-main, .cw-content-wrap, .cw-screen-layout__content, .cw-screen-layout__content > article, .cw-screen-layout__content > article > .entry-content) {
		margin-block-start: 0 !important;
		padding-block-start: 0 !important;
		row-gap: 0 !important;
	}
}

/* 1.4.83 · Primer Hero visible en Ancho completo.
 * La detección PHP ya ignora artefactos editoriales vacíos. El CSS anterior
 * dependía de :first-child y dejaba de aplicar el contrato cuando Gutenberg
 * conservaba un párrafo vacío antes del Hero. :nth-child(... of ...) identifica
 * el primer Hero real sin convertir Heroes posteriores en full-screen. */
body.cw-template--full-first-lumen-hero
:is(.cw-template-main--full-canvas, .cw-entry--full-canvas, .cw-entry--full-canvas > .entry-content) {
	margin-block-start: 0 !important;
	padding-block-start: 0 !important;
	row-gap: 0 !important;
}

body.cw-template--full-first-lumen-hero
.cw-entry--full-canvas > .entry-content
> p:empty:has(~ :is(.cw-lumen-hero, .cw-lumen-pro-hero)) {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.cw-template--full-first-lumen-hero
.cw-entry--full-canvas > .entry-content
> :nth-child(1 of :is(.cw-lumen-hero, .cw-lumen-pro-hero)) {
	--cw-lumen-hero-header-height: var(--cw-lumen-pro-header-height, var(--cw-lumen-header-height, 84px));
	--cw-lumen-hero-min-height: calc(100svh - var(--cw-lumen-hero-header-height));
	--cw-lumen-hero-safe-top: clamp(2.75rem, 4.8vh, 4rem);
	--cw-lumen-hero-safe-bottom: clamp(2.35rem, 4.4vh, 3.75rem);
	--cw-lumen-pro-hero-header-height: var(--cw-lumen-hero-header-height);
	--cw-lumen-pro-hero-min-height: var(--cw-lumen-hero-min-height);
	--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
	--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	min-height: var(--cw-lumen-hero-min-height) !important;
	margin-block-start: 0 !important;
}

body.cw-lumen-pro-header-transparent:not(.cw-lumen-pro-header-placement--sticky).cw-template--full-first-lumen-hero
.cw-entry--full-canvas > .entry-content
> :nth-child(1 of :is(.cw-lumen-hero, .cw-lumen-pro-hero)) {
	--cw-lumen-hero-min-height: 100svh;
	--cw-lumen-hero-safe-top: max(clamp(3.25rem, 6vh, 4.75rem), calc(var(--cw-lumen-hero-header-height) + .95rem));
	--cw-lumen-hero-safe-bottom: clamp(2.35rem, 4.4vh, 3.75rem);
	--cw-lumen-pro-hero-min-height: var(--cw-lumen-hero-min-height);
	--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
	--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
}

body.cw-template--full-first-lumen-hero
.cw-entry--full-canvas > .entry-content
> :nth-child(1 of :is(.cw-lumen-hero, .cw-lumen-pro-hero))
> :is(.cw-lumen-hero__inner, .cw-lumen-pro-hero__inner) {
	min-height: var(--cw-lumen-hero-min-height, var(--cw-lumen-pro-hero-min-height)) !important;
	height: auto !important;
	padding-block-start: var(--cw-lumen-hero-safe-top, var(--cw-lumen-pro-hero-safe-top)) !important;
	padding-block-end: var(--cw-lumen-hero-safe-bottom, var(--cw-lumen-pro-hero-safe-bottom)) !important;
}

@media (max-width: 782px) {
	body.cw-template--full-first-lumen-hero
	.cw-entry--full-canvas > .entry-content
	> :nth-child(1 of :is(.cw-lumen-hero, .cw-lumen-pro-hero)) {
		--cw-lumen-hero-safe-top: clamp(2.75rem, 9vw, 4rem);
		--cw-lumen-hero-safe-bottom: clamp(2.15rem, 7vw, 3.25rem);
		--cw-lumen-pro-hero-safe-top: var(--cw-lumen-hero-safe-top);
		--cw-lumen-pro-hero-safe-bottom: var(--cw-lumen-hero-safe-bottom);
	}
}

/* 1.4.94–1.4.96 · Theme Unit Test hardening.
 * These contracts are deliberately local to native navigation, singular
 * content and post navigation. They prevent extreme fixture content from
 * escaping the layout without changing ordinary editorial presentation. */

/* Desktop nested menus open beside their parent item. The compact navigation
 * keeps its existing accordion behavior because it owns a separate class. */
.cw-classic-navigation--primary:not(.cw-compact-navigation-active)
.cw-classic-navigation__menu .sub-menu li {
	position: relative;
}

.cw-classic-navigation--primary:not(.cw-compact-navigation-active)
.cw-classic-navigation__menu .sub-menu .sub-menu {
	top: -.5rem;
	right: auto;
	left: calc(100% + .5rem);
}

/* The automatic page fallback is intentionally compact until the site owner
 * assigns a real menu. */
.cw-classic-navigation__menu--fallback {
	gap: clamp(.35rem, 1vw, .8rem);
}

.cw-classic-navigation__menu--fallback > li > a {
	font-size: .92em;
}

/* Long unbroken titles are valid Theme Unit Test input and must wrap inside
 * the editorial canvas rather than creating page-level horizontal scrolling. */
.cw-entry--single .entry-title,
.cw-post-navigation__title {
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Preformatted content keeps its semantics and scrolls locally when a line is
 * wider than the content column. */
.entry-content.wp-block-post-content :is(pre, .wp-block-code, .wp-block-preformatted) {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	white-space: pre;
	-webkit-overflow-scrolling: touch;
}

/* Floated media contributes to the content height before tags and navigation,
 * so separators never run behind the final aligned image. */
.entry-content.wp-block-post-content::after {
	display: table;
	clear: both;
	content: '';
}

/* Native and classic video embeds remain inside the readable content width. */
.cw-entry--single .entry-content :is(video, iframe, embed, object) {
	max-width: 100%;
}

.cw-entry--single .entry-content :is(
	.wp-block-embed.is-type-video .wp-block-embed__wrapper,
	.wp-block-embed-youtube .wp-block-embed__wrapper,
	.wp-block-embed-vimeo .wp-block-embed__wrapper
) {
	position: relative;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.cw-entry--single .entry-content :is(
	.wp-block-embed.is-type-video .wp-block-embed__wrapper,
	.wp-block-embed-youtube .wp-block-embed__wrapper,
	.wp-block-embed-vimeo .wp-block-embed__wrapper
) > :is(iframe, video, embed, object) {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.cw-entry--single .entry-content iframe:is(
	[src*='youtube.com'],
	[src*='youtube-nocookie.com'],
	[src*='youtu.be'],
	[src*='vimeo.com']
) {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}

/* Both destinations share the height required by the longer title. Unbroken
 * strings wrap inside each card instead of crossing its arrow or neighbour. */
.post-navigation .nav-previous,
.post-navigation .nav-next {
	display: flex;
	min-width: 0;
}

.post-navigation .nav-links a {
	min-width: 0;
	height: 100%;
}

.post-navigation .cw-post-navigation__title {
	width: 100%;
}

/* 1.4.99 · Balanced measured header and compact mobile pagination. */

/* Header spacing belongs to the primary row, not to the wrapper that now also
 * contains the optional top bar. This keeps the menu/logo row balanced while
 * the complete top-bar + header unit remains measurable for fixed geometry and
 * Hero safe-top calculations. The inline Customizer contract mirrors this. */
.cw-site-header {
	padding-block: 0;
}

.cw-site-header > .cw-top-bar-widgets {
	width: 100%;
}

.cw-site-header > .cw-site-header__inner {
	padding-block: var(--cw-header-effective-padding);
}

/* Use abbreviated, translated controls and a reduced native page window so
 * archive pagination fits 320–390 px without wrapping or horizontal scrolling. */
@media (max-width: 600px) {
	.navigation.pagination .nav-links {
		display: flex;
		width: 100%;
		max-width: 100%;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: center;
		gap: clamp(.2rem, 1.4vw, .35rem);
		overflow: visible;
		padding: 0;
	}

	.navigation.pagination .nav-links > * {
		flex: 0 0 auto;
	}

	.navigation.pagination .nav-links a,
	.navigation.pagination .nav-links span:not(.screen-reader-text) {
		min-width: 2rem;
		min-height: 2rem;
		padding: .28rem .4rem;
		font-size: .75rem;
		line-height: 1;
	}

	.navigation.pagination .nav-links :is(.prev, .next) {
		min-width: auto;
		padding-inline: .5rem;
		white-space: nowrap;
	}

	.navigation.pagination .nav-links .dots {
		min-width: .85rem;
		padding-inline: 0;
		border-color: transparent;
		background: transparent;
	}
}

/* 1.4.106 · Contrato directo para el primer Hero en plantilla predeterminada.
 * La clase de body ya existe para todos los Heroes Lite/Pro detectados.
 * El main conserva su espaciado normal en el resto del sitio, pero no agrega
 * una segunda reserva sobre la cabecera cuando la página comienza con Hero. */
body.cw-template--default-first-lumen-hero-full .cw-template-main {
	padding-block-start: 0 !important;
}

/* El full-bleed de Lite usa 100vw. El viewport, no el shell interno, es el
 * contenedor que debe recortar la diferencia producida por la barra de scroll. */
body.cw-template--default-first-lumen-hero-full {
	overflow-x: hidden;
	overflow-x: clip;
}

body.cw-template--default-first-lumen-hero-full .cw-site-shell {
	max-width: 100%;
	overflow-x: hidden;
	overflow-x: clip;
}
