/*
 * Método Taibo — endurecimiento visual previo a entrega.
 * Cargar después de taibo-components.css y de los estilos de Elementor.
 * Esta hoja solo contiene correcciones aditivas y reversibles.
 */

:root {
    /* Acento original para decoración; tono oscuro para controles y enlaces. */
    --taibo-color-accent-action: #c24b18;
    --taibo-color-text-secondary: #4a4540;

    /* Tokens utilizados por componentes existentes pero ausentes en tokens.css. */
    --taibo-weight-semibold: 600;
    --taibo-text-xxl: 3rem;
    --taibo-space-xl: 4rem;

    /* Escala tipográfica por función. */
    --taibo-release-display: clamp(3.25rem, 2.15rem + 4.8vw, 5.25rem);
    --taibo-release-title-lg: clamp(2.75rem, 1.75rem + 4vw, 4.5rem);
    --taibo-release-page-title: clamp(2.4rem, 1.6rem + 3.2vw, 4rem);
    --taibo-release-section-title: clamp(2rem, 1.4rem + 2.5vw, 3rem);

    /* Gutter común para los contenedores de nueva generación. */
    --taibo-release-gutter: clamp(1.125rem, 4vw, 4rem);
}

html {
    color-scheme: light;
    scroll-padding-top: 5rem;
}

body.taibo-release-hardening-active {
    color: var(--taibo-color-text);
    background: var(--taibo-color-bg);
    font-family: var(--taibo-font-secondary);
    text-rendering: optimizeLegibility;
}

body.taibo-release-hardening-active p,
body.taibo-release-hardening-active li,
body.taibo-release-hardening-active input,
body.taibo-release-hardening-active select,
body.taibo-release-hardening-active textarea {
    font-family: var(--taibo-font-secondary);
}

body.taibo-release-hardening-active h1,
body.taibo-release-hardening-active h2,
body.taibo-release-hardening-active h3,
body.taibo-release-hardening-active h4,
body.taibo-release-hardening-active h5,
body.taibo-release-hardening-active h6 {
    font-family: var(--taibo-font-primary);
    hyphens: none;
    overflow-wrap: normal;
    text-wrap: balance;
}

/* ---------------------------------------------------------
   Escala de títulos: distingue display, ficha y sección.
   --------------------------------------------------------- */

.home .taibo-home-hero-v2__title,
.taibo-cases3--archive h1 {
    font-size: var(--taibo-release-display);
    line-height: 0.98;
}

.taibo-sp-hero__title,
.taibo-cases3--single h1 {
    font-size: var(--taibo-release-title-lg);
    line-height: 1.02;
}

.page-id-78 .taibo-home-hero-v2__title,
.taibo-jc h1,
.taibo-tax3--root h1,
.taibo-tax3--term h1,
.taibo-blog-archive__title,
.taibo-archive__title,
.taibo-contact-page__title {
    font-size: var(--taibo-release-page-title);
    line-height: 1.05;
}

/* ---------------------------------------------------------
   Contenedores y ritmo vertical.
   --------------------------------------------------------- */

.taibo-container--home-wide {
    width: 100%;
    max-width: 1440px;
    margin-inline: auto;
    padding-inline: var(--taibo-release-gutter);
}

.taibo-home-section-v2 {
    padding-block: clamp(2.5rem, 5vw, 4rem);
}

/* ---------------------------------------------------------
   Botones y enlaces de acción.
   Se repite !important únicamente para neutralizar una regla inválida
   de producción que también fue publicada con !important.
   --------------------------------------------------------- */

.taibo-button,
button.taibo-button,
[type="submit"].taibo-button,
.taibo-cases3-button,
.taibo-tax3-button {
    min-height: 48px;
    max-width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--taibo-font-primary) !important;
    font-size: 1rem !important;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
}

button.taibo-button.taibo-button--primary,
[type="submit"].taibo-button.taibo-button--primary,
a.taibo-button.taibo-button--primary,
.taibo-cases3-button,
.taibo-tax3-button {
    padding: 0.7rem 3rem 0.7rem 1.25rem !important;
    border: 1px solid transparent !important;
    border-radius: var(--taibo-radius-full) !important;
    color: #fff !important;
    background: var(--taibo-color-accent-action) !important;
}

.taibo-button--primary::after {
    color: var(--taibo-color-accent-action);
}

button.taibo-button.taibo-button--secondary,
[type="button"].taibo-button.taibo-button--secondary,
a.taibo-button.taibo-button--secondary {
    min-height: 44px;
    padding: 0.65rem 1.25rem !important;
    border: 1px solid var(--taibo-color-accent-action) !important;
    border-radius: var(--taibo-radius-full) !important;
    color: var(--taibo-color-accent-action) !important;
    background: transparent !important;
}

button.taibo-button.taibo-button--secondary:hover,
button.taibo-button.taibo-button--secondary:focus-visible,
a.taibo-button.taibo-button--secondary:hover,
a.taibo-button.taibo-button--secondary:focus-visible {
    color: #fff !important;
    background: var(--taibo-color-accent-action) !important;
}

.taibo-punto-partida-card__link,
.taibo-blog-card__link,
.taibo-entrenamiento-card__link,
.taibo-tax3-card__link,
.taibo-cases3-card__link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    color: var(--taibo-color-accent-action);
}

/* Foco visible común para teclado. */
:where(
    a,
    button,
    input,
    select,
    textarea,
    summary,
    [tabindex]:not([tabindex="-1"])
):focus-visible {
    outline: 3px solid var(--taibo-color-accent-action) !important;
    outline-offset: 3px;
}

/* Áreas clicables de navegación. */
.tmh-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

/* ---------------------------------------------------------
   Grids que deben responder al contenido real.
   --------------------------------------------------------- */

.taibo-blog-grid {
    gap: var(--taibo-space-md);
}

@supports selector(.taibo-blog-grid:has(> :only-child)) {
    .taibo-blog-grid:has(> :only-child) {
        grid-template-columns: minmax(0, 45rem);
        justify-content: start;
    }
}

.taibo-cases3-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    max-width: 100%;
    padding-right: var(--taibo-space-2);
    overflow: visible;
}

/* ---------------------------------------------------------
   Footer: contraste y datos globales.
   --------------------------------------------------------- */

.tmf-copy,
.tmf-legal a {
    color: rgba(255, 255, 255, 0.65) !important;
}

.tmf-link:hover,
.tmf-link:focus-visible,
.tmf-legal a:hover,
.tmf-legal a:focus-visible {
    color: #fff !important;
}

/* ---------------------------------------------------------
   Breakpoints canónicos para grids públicos.
   --------------------------------------------------------- */

@media (max-width: 767px) {
    :root {
        --taibo-release-gutter: clamp(1.125rem, 5vw, 1.5rem);
    }

    .taibo-punto-partida-grid,
    .taibo-blog-grid,
    .taibo-root3-grid,
    .taibo-tax3-content-grid:not(.taibo-tax3-content-grid--featured) {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .taibo-cases3-card--featured,
    .taibo-tax3-card--featured,
    .taibo-root3-hero__grid,
    .taibo-tax3-hero__grid,
    .taibo-root3-cta__grid,
    .taibo-tax3-context__grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .taibo-cases3-filters {
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
        scroll-snap-type: inline proximity;
        padding: 0 1.125rem 0.75rem 0;
    }

    .taibo-cases3-filters > * {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    .taibo-button,
    .taibo-cases3-button,
    .taibo-tax3-button {
        white-space: normal !important;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .taibo-punto-partida-grid,
    .taibo-blog-grid,
    .taibo-root3-grid,
    .taibo-tax3-content-grid:not(.taibo-tax3-content-grid--featured) {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    @supports selector(.taibo-blog-grid:has(> :only-child)) {
        .taibo-blog-grid:has(> :only-child) {
            grid-template-columns: minmax(0, 45rem) !important;
        }
    }

    .taibo-root3-hero__grid,
    .taibo-tax3-hero__grid,
    .taibo-root3-cta__grid,
    .taibo-tax3-context__grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (min-width: 1024px) {
    .taibo-punto-partida-grid,
    .taibo-root3-grid,
    .taibo-tax3-content-grid:not(.taibo-tax3-content-grid--featured) {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* El proceso mantiene la versión móvil hasta tablet; cinco columnas desde 1024. */
@media (max-width: 1023px) {
    .taibo-home-process__grid {
        display: none !important;
    }

    .taibo-home-process__mobile-timeline,
    .taibo-home-process__mobile-note {
        display: flex !important;
    }

    .taibo-home-process__mobile-timeline {
        position: relative;
        flex-flow: column !important;
        justify-content: flex-start !important;
        gap: 2.2rem;
        padding-left: 2.2rem;
    }

    .taibo-home-process__mobile-timeline .taibo-home-phase {
        position: relative;
        width: 100% !important;
        flex: 0 0 auto !important;
        display: block !important;
        text-align: left !important;
    }

    .taibo-home-process__mobile-timeline .taibo-home-phases__line {
        position: absolute !important;
        top: 6px !important;
        bottom: 6px !important;
        left: 5px !important;
        right: auto !important;
        width: 3px !important;
        height: auto !important;
        background: var(--taibo-color-accent) !important;
        opacity: 0.5;
        transform: scaleY(1) !important;
        transform-origin: top;
    }

    .taibo-home-process__mobile-timeline .taibo-home-phase__dot {
        position: absolute;
        top: 5px;
        left: -2.2rem;
    }

    .taibo-home-process__mobile-timeline .taibo-home-phase__fase,
    .taibo-home-process__mobile-timeline .taibo-home-phase__label {
        display: block;
        font-family: var(--taibo-font-primary);
        text-transform: uppercase;
    }

    .taibo-home-process__mobile-timeline .taibo-home-phase__fase {
        margin-bottom: 0.3rem;
        color: rgba(255, 255, 255, 0.5);
        font-size: 0.8rem;
        letter-spacing: 0.14em;
    }

    .taibo-home-process__mobile-timeline .taibo-home-phase__label {
        color: #fff;
        font-size: 1.5rem;
        letter-spacing: 0.03em;
    }

    .taibo-home-process__mobile-timeline .taibo-home-phase__desc {
        margin: 0.5rem 0 0;
        color: rgba(255, 255, 255, 0.65);
        font-size: 0.95rem;
        line-height: 1.6;
    }

    .taibo-home-process__mobile-note {
        justify-content: center;
    }
}

@media (min-width: 1024px) {
    .taibo-home-process__grid {
        display: grid !important;
    }

    .taibo-home-process__mobile-timeline,
    .taibo-home-process__mobile-note {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
