/*!
 * KZMentor layout — chasis base cuando Elementor no controla la página.
 *
 * Define container, header/footer estructurales, comentarios y pagination
 * básicos. El refinamiento visual (typography, cards modernos, hero,
 * empty states, tokens del preset) vive en templates.css que carga
 * ENCIMA de este archivo y sobreescribe lo necesario.
 *
 * @package KZMentor
 */
.kz-container{width:100%;max-width:var(--kz-container);margin-inline:auto;padding-inline:clamp(1rem,2vw,2rem)}
body:not(.kz-has-header) .kz-header{border-bottom:1px solid var(--kz-border)}
body:not(.kz-has-header) .kz-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem;flex-wrap:wrap}
.kz-logo img{max-height:64px;width:auto}
.kz-site-title{font-size:1.25rem;margin:0}
.kz-site-title a{color:inherit;text-decoration:none}
.kz-site-description{margin:0;color:var(--kz-muted);font-size:.9rem}
.kz-nav .kz-menu{display:flex;flex-wrap:wrap;gap:.25rem 1rem;list-style:none;margin:0;padding:0}
.kz-nav .kz-menu a{display:inline-block;padding:.5rem .25rem;color:inherit;text-decoration:none;border-bottom:2px solid transparent}
.kz-nav .kz-menu a:hover,.kz-nav .kz-menu .current-menu-item>a{border-bottom-color:var(--kz-link)}
.kz-main{display:block;padding-block:clamp(2rem,4vw,4rem)}
.kz-entry__title,.kz-page__title,.kz-archive__title,.kz-404__title{font-size:var(--kz-fs-h1);line-height:1.15;margin:0 0 1rem}
.kz-entry__meta,.kz-card__meta{color:var(--kz-muted);font-size:.875rem;margin:0 0 1rem}
.kz-entry__media,.kz-card__media img{border-radius:var(--kz-radius);overflow:hidden}
.kz-entry__media{margin:0 0 1.5rem}
.kz-entry__content :is(h2,h3,h4){line-height:1.25;margin-block:1.5em .5em}
.kz-entry__content :is(p,ul,ol,blockquote,pre,figure){margin-block:0 1rem}
.kz-entry__content blockquote{border-left:3px solid var(--kz-link);padding:.25rem 1rem;color:var(--kz-muted);margin-inline:0}
.kz-entry__content pre{background:rgba(127,127,127,.1);padding:1rem;border-radius:var(--kz-radius);overflow:auto}
.kz-entry__content code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95em}
.kz-entry__tags{display:flex;flex-wrap:wrap;gap:.25rem .5rem;list-style:none;padding:0;margin:1.5rem 0 0}
.kz-entry__tags li a{display:inline-block;padding:.125rem .5rem;background:rgba(127,127,127,.12);border-radius:999px;font-size:.8rem;text-decoration:none;color:inherit}
.kz-archive__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}
.kz-card{display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--kz-border);border-radius:var(--kz-radius);padding:1rem;background:transparent;transition:transform .15s ease,box-shadow .15s ease}
.kz-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.08)}
.kz-card__title{font-size:1.25rem;line-height:1.3;margin:0}
.kz-card__title a{color:inherit;text-decoration:none}
.kz-card__excerpt{color:var(--kz-muted);font-size:.95rem}
.kz-button{display:inline-block;padding:.625rem 1.25rem;background:var(--kz-link);color:#fff;border:0;border-radius:var(--kz-radius);text-decoration:none;font:inherit;cursor:pointer;line-height:1.2}
.kz-button:hover{filter:brightness(.92)}
.kz-search{display:flex;gap:.5rem;align-items:stretch;max-width:560px}
.kz-search__input{flex:1;padding:.625rem .75rem;border:1px solid var(--kz-border);border-radius:var(--kz-radius);background:transparent;color:inherit;font:inherit;min-width:0}
.kz-search__submit{padding:.625rem 1rem;background:var(--kz-link);color:#fff;border:0;border-radius:var(--kz-radius);font:inherit;cursor:pointer}
.kz-comments{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--kz-border)}
.kz-comments__list{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;gap:1rem}
.kz-comments__list .children{list-style:none;padding-left:1.5rem;margin-top:1rem;display:grid;gap:1rem}
body:not(.kz-has-footer) .kz-footer{border-top:1px solid var(--kz-border);margin-top:4rem}
body:not(.kz-has-footer) .kz-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-block:1.5rem}
body:not(.kz-has-footer) .kz-footer__copy{margin:0;color:var(--kz-muted);font-size:.875rem}
@media (max-width:640px){
	body:not(.kz-has-header) .kz-header__inner{flex-direction:column;align-items:flex-start}
	.kz-archive__list{grid-template-columns:1fr}
}

/* ============================================================
   Full-bleed: el tema cede el lienzo entero a Elementor.
   Aplica cuando body.kz-fullbleed (post construido con Elementor,
   plantillas canvas/header_footer, theme mod o filtro).
   ============================================================ */
.kz-fullbleed .kz-main,
.kz-fullbleed .kze-main{
	max-width:none;
	padding-block:0;
	padding-inline:0;
}
.kz-fullbleed .kz-main > .kz-container,
.kz-fullbleed .kz-main.kz-container,
.kz-fullbleed .kze-main > .kze-container,
.kz-fullbleed .kze-main.kze-container{
	max-width:none;
	width:100%;
	padding-inline:0;
	margin-inline:0;
}
.kz-fullbleed .kz-page__header,
.kz-fullbleed .kz-entry__header,
.kz-fullbleed .kz-archive__header{
	display:none;
}
.kz-fullbleed .kz-page__content,
.kz-fullbleed .kz-entry__content,
.kz-fullbleed .kz-page,
.kz-fullbleed .kz-entry{
	max-width:none;
	padding:0;
	margin:0;
}
/* El pie del article (tags, comments) sigue visible pero re-encapsulado
   en su propio container para que no quede pegado al borde. */
.kz-fullbleed .kz-entry__tags,
.kz-fullbleed .kz-comments{
	width:100%;
	max-width:var(--kz-container,1280px);
	margin-inline:auto;
	padding-inline:clamp(1rem,2vw,2rem);
}
