/*
Theme Name: ToddleSII 2026
Description: Base de bloques nativos de ToddleSII, integrada en la familia Toddle.
Version: 0.2.7
Requires at least: 6.6
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: toddlesii-2026
*/

/* Reglas propias; valores trazados en SISTEMA_VISUAL_TODDLE.md. */
body { margin: 0; }
.ts-header, .ts-footer { background: var(--wp--preset--color--surface); }
.ts-header { border-bottom: 1px solid var(--wp--preset--color--line); }
.ts-footer { border-top: 1px solid var(--wp--preset--color--line); }
.ts-header-inner, .ts-footer-inner {
    max-width: var(--wp--style--global--wide-size);
    margin-inline: auto;
    padding: var(--wp--preset--spacing--50) clamp(1rem, 4vw, 3rem);
    gap: var(--wp--preset--spacing--50);
}
.ts-main {
    min-height: 50vh;
    padding: var(--wp--custom--section-space) clamp(1rem, 4vw, 3rem);
    overflow-wrap: anywhere;
}
.ts-result { padding-block: var(--wp--preset--spacing--50); }
.ts-main .wp-block-post + .wp-block-post .ts-result { border-top: 1px solid var(--wp--preset--color--line); }
:where(.ts-main, .ts-header, .ts-footer) :is(a, button, input, select, textarea):focus-visible,
.ts-skip-link:focus {
    outline: 3px solid var(--wp--preset--color--brand);
    outline-offset: 3px;
    box-shadow: 0 0 0 3px var(--wp--preset--color--surface);
}
.ts-skip-link {
    position: absolute;
    inset-inline-start: 1rem;
    top: 0;
    transform: translateY(-150%);
    z-index: 10000;
    background: var(--wp--preset--color--surface);
    color: var(--wp--preset--color--brand);
    padding: 0.75rem 1rem;
}
.ts-skip-link:focus { transform: none; }
:where(.ts-main, .ts-header, .ts-footer) a { text-underline-offset: 0.2em; }
:where(.ts-header, .ts-footer) .wp-block-site-title a { text-decoration: none; }
:where(.ts-header, .ts-footer) .wp-block-navigation-item__content {
    display: inline-block;
    padding-block: 0.625rem;
}
.ts-main .wp-block-search__input {
    min-width: 0;
    font: inherit;
    color: var(--wp--preset--color--ink);
    border: 1px solid var(--wp--preset--color--ink-soft);
    border-radius: var(--wp--custom--radius--button);
    padding: 0.75rem;
}
.ts-main .wp-block-search__button { font: inherit; border-radius: var(--wp--custom--radius--button); }
.ts-main .wp-block-search__inside-wrapper { gap: 0.5rem; }
.ts-main .wp-block-query-pagination { gap: 1rem; }
.ts-main .wp-block-query-pagination a { display: inline-block; padding: 0.5rem; }
.ts-main :where(img, video) { max-width: 100%; height: auto; }
.ts-main :where(pre, .wp-block-table) { overflow-x: auto; }
@media (max-width: 700px) {
    .ts-header-inner, .ts-footer-inner { flex-direction: column; align-items: flex-start; }
    .ts-main .wp-block-search__inside-wrapper { flex-wrap: wrap; }
    .ts-main .wp-block-search__button { margin-left: 0; }
}

/* Echo 15.600.0: only documented containers, no article IDs or hidden content.
   Echo emits typography with !important; overrides below are limited to text.
   Width, search appearance and metadata remain in Echo configuration. */
/* ECHO-INTEGRATION-START */
:is(#epkb-main-page-container, #epkb-modular-main-page-container, #eckb-article-page-container-v2) {
    font-family: var(--wp--preset--font-family--system-sans);
    line-height: 1.65;
    margin-block-start: clamp(1rem, 2vw, 2rem);
    overflow-wrap: anywhere;
}
/* Preserve the existing spacing for individual articles only. */
.ts-main:has(#eckb-article-page-container-v2) {
    padding-block-start: clamp(1.5rem, 3vw, 2.5rem);
}
#eckb-article-page-container-v2 #eckb-article-content h1.eckb-article-title {
    color: #102A3A !important;
    font-family: var(--wp--preset--font-family--system-sans) !important;
    font-size: clamp(1.75rem, 1.25rem + 2vw, 2.5rem) !important;
    line-height: clamp(1.18em, 1.1em + 0.4vw, 1.3em) !important;
    margin-block: 0 1.5rem;
    overflow-wrap: anywhere;
}
#eckb-article-page-container-v2 #eckb-article-content #eckb-article-content-body,
#eckb-article-page-container-v2 #eckb-article-content #eckb-article-content-body :where(p, li, td, th, dt, dd, blockquote) {
    color: #3F5663 !important;
    font-family: var(--wp--preset--font-family--system-sans) !important;
    line-height: 1.65;
}
#eckb-article-page-container-v2 #eckb-article-content #eckb-article-content-body a {
    color: #075EA8 !important;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}
#eckb-article-page-container-v2 #eckb-article-content #eckb-article-content-body :where(p, ul, ol, blockquote) {
    margin-block: 0 1.25rem;
}
:is(#epkb-main-page-container, #epkb-modular-main-page-container, #eckb-article-page-container-v2) :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--wp--preset--color--brand);
    outline-offset: 3px;
    box-shadow: 0 0 0 3px var(--wp--preset--color--surface);
}
/* Echo resets descendant text: set the shared family on semantic text only.
   Icon spans, search colors, widths and module layout stay under Echo control. */
:is(#epkb-main-page-container, #epkb-modular-main-page-container, #eckb-article-page-container-v2) :where(h1, h2, h3, h4, h5, h6, p, label, input, select, textarea, button) {
    font-family: var(--wp--preset--font-family--system-sans) !important;
}
:is(#epkb-main-page-container, #epkb-modular-main-page-container, #eckb-article-page-container-v2) p {
    line-height: 1.65;
    margin-block-end: 1.25rem;
}
/* Preserve compact nested lists instead of repeating paragraph gaps per level. */
#eckb-article-page-container-v2 #eckb-article-content #eckb-article-content-body :is(ul, ol) :is(ul, ol) {
    margin-block: 0.5rem 0;
}
/* Main-page outer spacing only: Echo owns all inner search/module padding. */
#epkb-main-page-container {
    margin-block-start: 0;
}
/* If the legacy modular wrapper is nested inside, remove its outer margin too. */
#epkb-main-page-container #epkb-modular-main-page-container {
    margin-block-start: 0;
}
/* Authenticated DOM: Echo fullwidth wrapper follows the site header.
   Override only its inline top spacing; keep sides, bottom and search intact. */
body.eckb-kb-template-main-page .eckb-kb-template {
    padding-top: 0 !important;
    margin-top: var(--wp--preset--spacing--50) !important;
}
/* ECHO-INTEGRATION-END */
