/* ==========================================================================
   Laboratorio Freelance — estilos del tema
   Identidad de Consultoría Blogger: magenta #C56D81, rosa #D8B4BB,
   rosa claro #EFE3E5, turquesa #8FB6BD y azul #596A79. Tipografía Clear Sans.
   Los colores se leen de las variables --lf-* (Laboratorio Freelance > Ajustes).
   ========================================================================== */

@font-face{ font-family:"Clear Sans"; font-weight:300; font-style:normal; font-display:swap; src:url(../fonts/clear-sans-300.woff2) format("woff2"); }
@font-face{ font-family:"Clear Sans"; font-weight:400; font-style:normal; font-display:swap; src:url(../fonts/clear-sans-400.woff2) format("woff2"); }
@font-face{ font-family:"Clear Sans"; font-weight:700; font-style:normal; font-display:swap; src:url(../fonts/clear-sans-700.woff2) format("woff2"); }

:root{
	--lf-primario:#C56D81; --lf-acento:#8FB6BD; --lf-texto:#596A79; --lf-fondo:#EFE3E5;
	--lf-rosa:color-mix(in srgb,var(--lf-primario) 45%,#fff);
	--lf-linea:color-mix(in srgb,var(--lf-texto) 16%,transparent);
	--lf-suave:color-mix(in srgb,var(--lf-texto) 72%,#fff);
	--lf-fuente:"Clear Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	--lf-ancho:1160px;
	--lf-margen:clamp(18px,4vw,40px);
	--lf-radio:12px;
	--lf-cabecera-alto:76px;
}

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--lf-cabecera-alto) + 12px); }
html.lf-sin-scroll{ overflow:hidden; }
body{
	margin:0; background:#fff; color:var(--lf-texto);
	font-family:var(--lf-fuente); font-size:1.0625rem; font-weight:400; line-height:1.6;
	-webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
	min-height:100vh; display:flex; flex-direction:column;
}
.lf-principal{ flex:1 0 auto; outline:0; }
img,video,svg,iframe{ max-width:100%; }
img{ height:auto; }
a{ color:var(--lf-texto); text-decoration-color:var(--lf-primario); text-decoration-thickness:2px; text-underline-offset:3px; }
a:hover{ color:var(--lf-primario); }
:focus-visible{ outline:3px solid var(--lf-primario); outline-offset:2px; }
h1,h2,h3,h4,h5,h6{ font-family:var(--lf-fuente); font-weight:700; line-height:1.2; color:var(--lf-texto); margin:1.6em 0 .6em; }
p{ margin:0 0 1em; }
hr{ border:0; border-top:2px solid var(--lf-fondo); margin:2em 0; }
::selection{ background:color-mix(in srgb,var(--lf-acento) 45%,#fff); color:var(--lf-texto); }

.screen-reader-text{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.lf-saltar{ position:absolute; left:12px; top:-60px; z-index:200; background:var(--lf-texto); color:#fff; padding:10px 16px; border-radius:999px; font-weight:700; text-decoration:none; }
.lf-saltar:focus{ top:12px; color:#fff; }

.lf-contenedor{ width:100%; max-width:calc(var(--lf-ancho) + 2 * var(--lf-margen)); margin-inline:auto; padding-inline:var(--lf-margen); }
.lf-seccion{ padding-block:clamp(28px,5vw,56px) clamp(40px,7vw,80px); }
body.lf-sin-titulo .lf-seccion{ padding-top:clamp(24px,4vw,44px); }

/* ---------- Cabecera ---------- */
.lf-cabecera-sitio{ position:sticky; top:0; z-index:100; background:#fff; border-bottom:2px solid var(--lf-fondo); }
.admin-bar .lf-cabecera-sitio{ top:32px; }
@media (max-width:782px){ .admin-bar .lf-cabecera-sitio{ top:46px; } }
.lf-cabecera-sitio__fila{ display:flex; align-items:center; gap:18px; min-height:var(--lf-cabecera-alto); }
.lf-cabecera-sitio__marca{ flex:none; display:flex; align-items:center; }
.lf-logo{ display:inline-flex; align-items:center; gap:9px; text-decoration:none; color:var(--lf-texto); }
.lf-logo:hover{ color:var(--lf-texto); }
.lf-logo__nombre{ font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:1.02rem; line-height:1.1; }
.lf-chispas{ width:26px; height:24px; flex:none; margin-top:-10px; }
.custom-logo-link{ display:inline-flex; }
.custom-logo{ max-height:52px; width:auto; }

.lf-navegacion{ flex:1; display:flex; align-items:center; justify-content:flex-end; gap:14px; }
.lf-menu{ list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:2px; }
.lf-menu > li{ position:relative; }
.lf-menu a{ display:block; padding:8px 14px; border-radius:999px; font-weight:700; font-size:.98rem; color:var(--lf-texto); text-decoration:none; white-space:nowrap; }
.lf-menu a:hover{ background:var(--lf-fondo); color:var(--lf-texto); }
.lf-menu .current-menu-item > a,.lf-menu .current_page_item > a,.lf-menu a[aria-current="page"]{ background:var(--lf-primario); color:#fff; }
.lf-menu .current-menu-ancestor > a{ box-shadow:inset 0 0 0 2px var(--lf-rosa); }
/* Submenús */
.lf-menu .sub-menu{ list-style:none; margin:0; padding:8px; position:absolute; top:calc(100% + 6px); left:0; min-width:220px; background:#fff; border:2px solid var(--lf-fondo); border-radius:14px; display:none; z-index:10; }
.lf-menu .sub-menu a{ border-radius:8px; }
.lf-menu li:hover > .sub-menu,.lf-menu li:focus-within > .sub-menu{ display:block; }
.lf-submenu-boton{ display:none; }

/* Zona de cuenta */
.lf-cuenta{ display:flex; align-items:center; gap:8px; flex:none; }
.lf-cuenta a{ text-decoration:none; font-weight:700; font-size:.95rem; }
.lf-cuenta__entrar,.lf-cuenta__enlace{ display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:999px; color:var(--lf-texto); }
.lf-cuenta__entrar:hover,.lf-cuenta__enlace:hover{ background:var(--lf-fondo); color:var(--lf-texto); }
.lf-cuenta__cta{ padding:9px 18px; border-radius:999px; background:var(--lf-primario); color:#fff; }
.lf-cuenta__cta:hover{ background:color-mix(in srgb,var(--lf-primario) 86%,#000); color:#fff; }
.lf-cuenta__yo{ display:inline-flex; align-items:center; gap:8px; padding:4px 12px 4px 4px; border-radius:999px; color:var(--lf-texto); border:2px solid var(--lf-fondo); }
.lf-cuenta__yo:hover{ border-color:var(--lf-rosa); color:var(--lf-texto); }
.lf-cuenta__avatar{ width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:var(--lf-fondo); color:var(--lf-primario); font-size:.82rem; letter-spacing:.02em; }

/* Botón de menú (móvil) */
.lf-menu-boton{ display:none; margin-left:auto; align-items:center; gap:6px; padding:8px 14px; border:2px solid var(--lf-fondo); border-radius:999px; background:#fff; color:var(--lf-texto); font:inherit; font-weight:700; cursor:pointer; }
.lf-menu-boton__cerrar{ display:none; }
.lf-menu-abierto .lf-menu-boton__abrir{ display:none; }
.lf-menu-abierto .lf-menu-boton__cerrar{ display:inline; }
.lf-menu-boton svg{ display:block; }

@media (max-width:899px){
	:root{ --lf-cabecera-alto:64px; }
	.lf-menu-boton{ display:inline-flex; }
	.lf-navegacion{
		position:fixed; inset:var(--lf-cabecera-alto) 0 0 0; z-index:99; background:#fff;
		flex-direction:column; align-items:stretch; justify-content:flex-start; gap:18px;
		padding:18px var(--lf-margen) calc(24px + env(safe-area-inset-bottom,0px)); overflow-y:auto;
		display:none; border-top:2px solid var(--lf-fondo);
	}
	.admin-bar .lf-navegacion{ top:calc(var(--lf-cabecera-alto) + 46px); }
	.lf-menu-abierto .lf-navegacion{ display:flex; }
	.lf-menu{ flex-direction:column; align-items:stretch; gap:4px; }
	.lf-menu a{ font-size:1.1rem; padding:12px 16px; border-radius:12px; }
	.lf-menu > li{ display:flex; flex-wrap:wrap; align-items:center; }
	.lf-menu > li > a{ flex:1; }
	.lf-menu .sub-menu{ position:static; display:none; width:100%; border:0; padding:0 0 0 16px; min-width:0; }
	.lf-menu li:hover > .sub-menu,.lf-menu li:focus-within > .sub-menu{ display:none; }
	.lf-menu .lf-submenu-abierto > .sub-menu{ display:block; }
	.lf-submenu-boton{ display:block; width:44px; height:44px; border:0; background:transparent; cursor:pointer; position:relative; }
	.lf-submenu-boton::after{ content:""; position:absolute; left:16px; top:14px; width:9px; height:9px; border-right:2.5px solid var(--lf-texto); border-bottom:2.5px solid var(--lf-texto); transform:rotate(45deg); }
	.lf-submenu-boton[aria-expanded="true"]::after{ transform:rotate(-135deg); top:19px; }
	.lf-cuenta{ flex-wrap:wrap; padding-top:16px; border-top:2px solid var(--lf-fondo); }
	.lf-cuenta__cta{ flex:1; text-align:center; padding:12px 18px; }
}
@media (max-width:420px){ .lf-logo__nombre{ font-size:.86rem; } .lf-menu-boton__texto{ display:none; } }

/* ---------- Títulos de página y contenido ---------- */
.lf-cabecera-pagina{ margin-bottom:clamp(18px,3vw,28px); }
.lf-titulo-pagina{ margin:0; font-size:clamp(1.5rem,1.1rem + 1.6vw,2.2rem); line-height:1.12; text-transform:uppercase; letter-spacing:.02em; }
.lf-intro-pagina{ font-size:1.1rem; max-width:62ch; margin-top:10px; }
.lf-meta{ margin:8px 0 0; font-size:.9rem; color:var(--lf-suave); }

:where(.lf-contenido) > :first-child{ margin-top:0; }
.lf-articulo .lf-contenido,.lf-articulo .lf-cabecera-pagina,.lf-comentarios{ max-width:760px; }
:where(.lf-contenido) > :where(h2,h3){ text-transform:uppercase; letter-spacing:.03em; }
:where(.lf-contenido) > :where(h2){ font-size:1.35rem; }
:where(.lf-contenido) > :where(h3){ font-size:1.12rem; }
:where(.lf-contenido) > :where(ul,ol){ padding-left:1.3em; margin:0 0 1em; }
:where(.lf-contenido) > :where(ul,ol) > :where(li){ margin-bottom:.35em; }
:where(.lf-contenido) > :where(ul,ol) > :where(li)::marker{ color:var(--lf-primario); }
:where(.lf-contenido) > :where(blockquote,.wp-block-quote){ margin:1.5em 0; padding:14px 22px; border-left:5px solid var(--lf-acento); background:var(--lf-fondo); border-radius:4px 12px 12px 4px; }
:where(.lf-contenido) > :where(blockquote,.wp-block-quote) > :where(p:last-child){ margin:0; }
:where(.lf-contenido) > :where(.wp-block-table){ overflow-x:auto; margin:1.2em 0; }
:where(.lf-contenido) > :where(.wp-block-table,table) :where(table){ border-collapse:collapse; width:100%; font-size:.96rem; }
:where(.lf-contenido) > :where(.wp-block-table,table) :where(th,td){ padding:10px 12px; border-bottom:1px solid var(--lf-linea); text-align:left; }
:where(.lf-contenido) > :where(figure){ margin:1.5em 0; }
:where(.lf-contenido) :where(figcaption){ font-size:.88rem; color:var(--lf-suave); margin-top:6px; }
.lf-destacada{ margin:0 0 24px; }
.lf-destacada img{ border-radius:16px; display:block; }
.alignwide{ max-width:var(--lf-ancho); }
.alignfull{ margin-inline:calc(-1 * var(--lf-margen)); max-width:none; }

/* ---------- Botones ---------- */
.lf-boton,.wp-element-button,.wp-block-button__link,.lf-buscar-web button{
	display:inline-flex; align-items:center; justify-content:center; gap:6px;
	padding:12px 22px; border:2px solid var(--lf-primario); border-radius:999px;
	background:var(--lf-primario); color:#fff; font-family:var(--lf-fuente); font-weight:700; font-size:1.06rem; line-height:1.2;
	text-decoration:none; cursor:pointer;
}
.lf-boton:hover,.wp-element-button:hover,.wp-block-button__link:hover,.lf-buscar-web button:hover{ background:color-mix(in srgb,var(--lf-primario) 86%,#000); border-color:color-mix(in srgb,var(--lf-primario) 86%,#000); color:#fff; }
.lf-boton--secundario,.is-style-outline .wp-block-button__link{ background:transparent; color:var(--lf-texto); border-color:var(--lf-texto); }
.lf-boton--secundario:hover,.is-style-outline .wp-block-button__link:hover{ background:var(--lf-fondo); color:var(--lf-texto); border-color:var(--lf-texto); }

/* ---------- Formularios generales ---------- */
input[type="text"],input[type="email"],input[type="url"],input[type="tel"],input[type="password"],input[type="search"],input[type="number"],input[type="date"],select,textarea{
	font-family:var(--lf-fuente); font-size:1rem; color:var(--lf-texto); background:#fff;
	padding:11px 14px; border:1.5px solid color-mix(in srgb,var(--lf-texto) 30%,transparent); border-radius:10px; max-width:100%;
}
:is(input,select,textarea):focus{ outline:0; border-color:var(--lf-primario); box-shadow:0 0 0 4px color-mix(in srgb,var(--lf-primario) 22%,transparent); }
label{ font-weight:700; }
input[type="checkbox"],input[type="radio"]{ accent-color:var(--lf-primario); width:18px; height:18px; }

.lf-buscar-web{ display:flex; gap:8px; max-width:560px; margin-top:16px; }
.lf-buscar-web input{ flex:1; }
.lf-buscar-web button{ padding:11px 18px; }

/* ---------- Listados (blog, búsqueda) ---------- */
.lf-listado{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:24px; }
.lf-tarjeta{ border:2px solid var(--lf-fondo); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; }
.lf-tarjeta__imagen img{ display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.lf-tarjeta__cuerpo{ padding:18px 20px 20px; }
.lf-tarjeta__titulo{ margin:0; font-size:1.12rem; line-height:1.3; }
.lf-tarjeta__titulo a{ text-decoration:none; }
.lf-tarjeta__titulo a:hover{ color:var(--lf-primario); }
.lf-tarjeta__resumen{ margin-top:10px; font-size:.97rem; }
.lf-tarjeta__resumen p{ margin:0; }
.lf-sin-resultados{ padding:28px; background:var(--lf-fondo); border-radius:16px; max-width:720px; }

.navigation.pagination{ margin-top:36px; }
.nav-links{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.page-numbers{ display:inline-flex; min-width:42px; height:42px; align-items:center; justify-content:center; padding:0 14px; border-radius:999px; font-weight:700; text-decoration:none; border:2px solid var(--lf-fondo); }
.page-numbers.current{ background:var(--lf-primario); border-color:var(--lf-primario); color:#fff; }
a.page-numbers:hover{ background:var(--lf-fondo); color:var(--lf-texto); }

/* ---------- 404 ---------- */
.lf-error > *{ max-width:680px; }
.lf-chispas--grande{ width:64px; height:58px; margin:0 0 14px; }
.lf-error__acciones{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }

/* ---------- Comentarios ---------- */
.lf-comentarios{ padding-bottom:60px; }
.lf-comentarios__titulo,.comment-reply-title{ text-transform:uppercase; letter-spacing:.03em; font-size:1.1rem; }
.lf-comentarios__lista{ list-style:none; padding:0; }
.lf-comentarios__lista .comment-body{ padding:16px 0; border-bottom:1px solid var(--lf-linea); }
.comment-form p{ display:flex; flex-direction:column; gap:6px; }
.comment-form .comment-form-cookies-consent{ flex-direction:row; align-items:center; }

/* ---------- Pie ---------- */
.lf-pie{ background:var(--lf-fondo); margin-top:auto; padding-top:40px; }
.lf-pie__fila{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px 40px; padding-bottom:28px; }
.lf-pie__marca{ max-width:520px; }
.lf-chispas--pie{ width:30px; height:28px; margin:0 0 8px; }
.lf-pie__titulo{ margin:0 0 4px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.lf-pie__texto{ margin:0; font-size:.95rem; }
.lf-pie__contacto,.lf-pie__menu{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px 20px; }
.lf-pie__contacto a,.lf-pie__menu a{ font-weight:700; text-decoration:none; }
.lf-pie__contacto a:hover,.lf-pie__menu a:hover{ text-decoration:underline; color:var(--lf-texto); }
.lf-pie__legal{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 24px; padding-block:16px calc(20px + env(safe-area-inset-bottom,0px)); border-top:2px solid #fff; font-size:.88rem; }
.lf-pie__legal p{ margin:0; }

/* ---------- Integración con el plugin ---------- */
/* Las páginas de la escuela ocupan el ancho del contenedor y usan la tipografía del tema. */
:where(.lf-contenido) > :is(.lf-inicio,.lf-videoteca,.lf-leccion,.lf-directorio,.lf-ficha-pagina,.lf-planes,.lf-agenda,.lf-comunidad){ max-width:none; }
.lf-articulo-leccion .lf-titulo-pagina{ max-width:32ch; }

@media (prefers-reduced-motion:reduce){ *,*::before,*::after{ animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
@media print{ .lf-cabecera-sitio,.lf-pie,.lf-menu-boton{ display:none; } body{ display:block; } }
