/* =========================================
   TAIBO COMPONENTS
   MT-010 §31 (botones), §39 (badges), §17 (contenedores)
   ========================================= */
/* Contenedor con anchos según MT-010 §17 */
.taibo-container {
    margin-inline: auto;
    padding-inline: var(--taibo-space-sm);
}
.taibo-container--narrow {
    max-width: var(--taibo-width-narrow);
}
.taibo-container--content {
    max-width: var(--taibo-width-content);
}
.taibo-container--wide {
    max-width: var(--taibo-width-wide);
}
.taibo-container--full {
    max-width: 100%;
}
/* Botón — Primary / Secondary / Text (MT-010 §31) */
.taibo-button--secondary {
    background-color: transparent;
    border-color: var(--taibo-color-accent);
    color: var(--taibo-color-accent);
}
.taibo-button--text {
    background-color: transparent;
    border-color: transparent;
    color: var(--taibo-color-accent);
    padding-inline: 0;
}
/* Badge (MT-010 §39) */
.taibo-badge {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    padding: 0.25rem 0.75rem;
    border-radius: var(--taibo-radius-full);
    font-size: var(--taibo-text-label);
    background-color: var(--taibo-color-surface);
    color: var(--taibo-color-text);
}
.taibo-badge--accent {
    background-color: var(--taibo-color-accent);
    color: #ffffff;
}
/* Card genérica base */
.taibo-card {
    background-color: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-md);
    padding: var(--taibo-space-sm);
}
/* Escena Hero (MT-012 §11-13) */
.taibo-hero {
    padding-block: var(--taibo-space-lg);
    display: grid;
    gap: var(--taibo-space-md);
}
.taibo-hero__kicker {
    font-size: var(--taibo-text-label);
    color: var(--taibo-color-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-hero__title {
    font-size: var(--taibo-text-h1);
    margin: 0 0 var(--taibo-space-sm);
    line-height: 1.1;
}
.taibo-hero__subtitle {
    font-size: var(--taibo-text-body-lg);
    color: var(--taibo-color-muted);
    margin: 0 0 var(--taibo-space-sm);
}
.taibo-hero__intro {
    font-size: var(--taibo-text-body);
    margin: 0;
}
.taibo-hero__media {
    width: 100%;
}
.taibo-hero__image,
.taibo-hero__video {
    object-fit: cover;
    aspect-ratio: 4 / 5;
    width: 100%;
    height: auto;
    border-radius: var(--taibo-radius-md);
}
@media (min-width: 768px) {
    .taibo-hero {
        grid-template-columns: 1fr 1fr;
        align-items: center;
    }
}
/* Escena Problema / Para quién es */
.taibo-problem,
.taibo-for-who {
    padding-block: var(--taibo-space-md);
}
.taibo-problem__title,
.taibo-for-who__title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-xs);
}
/* Escena Beneficios */
.taibo-benefits {
    padding-block: var(--taibo-space-lg);
}
.taibo-benefits__grid {
    display: grid;
    gap: var(--taibo-space-md);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .taibo-benefits__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.taibo-benefit-item__icon img {
  object-fit: contain;
    width: 48px;
    height: 48px;
}
.taibo-benefit-item__title {
    font-size: var(--taibo-text-h3);
    margin: var(--taibo-space-xs) 0;
}
/* Escena Proceso */
.taibo-process {
    padding-block: var(--taibo-space-lg);
}
.taibo-process__timeline {
    display: grid;
    gap: var(--taibo-space-md);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .taibo-process__timeline {
        grid-template-columns: repeat(5, 1fr);
    }
}
.taibo-process-step__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background-color: var(--taibo-color-accent);
    color: #ffffff;
    font-weight: bold;
}
/* Escena CTA */
.taibo-cta {
    padding-block: var(--taibo-space-lg);
    text-align: center;
    background-color: var(--taibo-color-surface);
}
.taibo-cta .taibo-container {
    text-align: center;
}
.taibo-cta__title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-cta .taibo-button {
    margin-top: var(--taibo-space-sm);
}
/* Archive de producto */
.taibo-archive {
    padding-block: var(--taibo-space-lg);
}
.taibo-archive__title {
    font-size: var(--taibo-text-h1);
    margin: 0 0 var(--taibo-space-md);
}
.taibo-archive__grid {
    display: grid;
    gap: var(--taibo-space-md);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .taibo-archive__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.taibo-product-card__media {
    display: block;
}
.taibo-product-card__image {
  object-fit: cover;
  aspect-ratio: 4 / 5;
    width: 100%;
    height: auto;
    border-radius: var(--taibo-radius-md);
}
.taibo-product-card__title {
    font-size: var(--taibo-text-h3);
    margin: var(--taibo-space-xs) 0;
}
.taibo-product-card__title a {
    color: inherit;
    text-decoration: none;
}
.taibo-archive__empty {
    color: var(--taibo-color-muted);
}
/* Escena Hero del Caso */
.taibo-case-hero {
    padding-block: var(--taibo-space-lg);
    text-align: center;
}
.taibo-case-hero__eyebrow {
    font-size: var(--taibo-text-label);
    color: var(--taibo-color-accent);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-case-hero__title {
    font-size: var(--taibo-text-h1);
    margin: 0 0 var(--taibo-space-xs);
    line-height: 1.15;
}
.taibo-case-hero__client {
    color: var(--taibo-color-muted);
    margin: 0 0 var(--taibo-space-sm);
}
.taibo-case-hero__badges {
    display: flex;
    gap: var(--taibo-space-xs);
    justify-content: center;
    flex-wrap: wrap;
}
/* Escena Antes/Después */
.taibo-before-after {
    padding-block: var(--taibo-space-lg);
}
.taibo-before-after__grid {
    display: grid;
    gap: var(--taibo-space-sm);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .taibo-before-after__grid {
        grid-template-columns: 1fr 1fr;
    }
}
.taibo-before-after__item {
    margin: 0;
}
.taibo-before-after__image {
  object-fit: cover;
  aspect-ratio: 3 / 4;
    width: 100%;
    height: auto;
    border-radius: var(--taibo-radius-md);
    display: block;
}
.taibo-before-after__label {
    text-align: center;
    margin-top: var(--taibo-space-xs);
    font-size: var(--taibo-text-label);
    color: var(--taibo-color-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
/* Escena Proceso y Resultado del Caso */
.taibo-case-process,
.taibo-case-result {
    padding-block: var(--taibo-space-md);
}
.taibo-case-process__title,
.taibo-case-result__title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-sm);
}
.taibo-case-process__duration {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
}
.taibo-case-result__metrics {
    display: flex;
    gap: var(--taibo-space-md);
    flex-wrap: wrap;
    margin-top: var(--taibo-space-sm);
}
.taibo-metric {
    font-size: var(--taibo-text-h3);
    font-weight: bold;
    color: var(--taibo-color-accent);
}
/* Escena Galería del Caso */
.taibo-case-gallery {
    padding-block: var(--taibo-space-lg);
}
.taibo-case-gallery__grid {
    display: grid;
    gap: var(--taibo-space-sm);
    grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) {
    .taibo-case-gallery__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.taibo-case-gallery__item {
    margin: 0;
}
.taibo-case-gallery__image {
  object-fit: cover;
  aspect-ratio: 3 / 4;
    width: 100%;
    height: auto;
    border-radius: var(--taibo-radius-sm);
    display: block;
}
/* Casos relacionados (en la ficha de Producto) */
.taibo-related-cases {
    padding-block: var(--taibo-space-lg);
}
.taibo-related-cases__title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-md);
}
.taibo-related-cases__grid {
    display: grid;
    gap: var(--taibo-space-md);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .taibo-related-cases__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.taibo-case-card__image {
  object-fit: cover;
  aspect-ratio: 4 / 5;
    width: 100%;
    height: auto;
    border-radius: var(--taibo-radius-md);
}
.taibo-case-card__title {
    font-size: var(--taibo-text-h3);
    margin: var(--taibo-space-xs) 0 0;
}
.taibo-case-card__title a {
    color: inherit;
    text-decoration: none;
}
/* Componente Testimonios */
.taibo-testimonios__title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-md);
}
.taibo-testimonios__grid {
    display: grid;
    gap: var(--taibo-space-md);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .taibo-testimonios__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
.taibo-testimonio__text {
    font-style: italic;
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-testimonio__footer {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-xs);
}
.taibo-testimonio__photo {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}
.taibo-testimonio__author {
    font-style: normal;
    font-weight: bold;
    color: var(--taibo-color-muted);
}
/* Componente FAQ (Acordeón nativo) */
.taibo-faqs__title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-md);
}
.taibo-faq-item__question {
    cursor: pointer;
    font-weight: bold;
    list-style: none;
}
.taibo-faq-item__question::-webkit-details-marker {
    display: none;
}
.taibo-faq-item__question::after {
    content: "+";
    float: right;
    font-weight: normal;
}
.taibo-faq-item[open] .taibo-faq-item__question::after {
    content: "−";
}
.taibo-faq-item__answer {
    padding-top: var(--taibo-space-xs);
    color: var(--taibo-color-muted);
}
/* Ejercicio */
.taibo-exercise-hero {
    padding-block: var(--taibo-space-lg);
    display: grid;
    gap: var(--taibo-space-md);
}
.taibo-exercise-hero__title {
    font-size: var(--taibo-text-h1);
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-exercise-hero__badges {
    display: flex;
    gap: var(--taibo-space-xs);
    flex-wrap: wrap;
    margin-top: var(--taibo-space-sm);
}
.taibo-exercise-hero__image {
    width: 100%;
    height: auto;
    border-radius: var(--taibo-radius-md);
}
@media (min-width: 768px) {
    .taibo-exercise-hero {
        grid-template-columns: 1fr 1fr;
        align-items: center;
    }
}
.taibo-exercise-steps,
.taibo-exercise-mistakes,
.taibo-exercise-equipment {
    padding-block: var(--taibo-space-md);
}
.taibo-exercise-steps__list {
    padding-left: var(--taibo-space-md);
}
.taibo-exercise-steps__list li {
    margin-bottom: var(--taibo-space-xs);
}
/* Taxonomy — Objetivo */
.taibo-archive__eyebrow {
    color: var(--taibo-color-accent);
    font-size: var(--taibo-text-label);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-archive__description {
    color: var(--taibo-color-muted);
    max-width: 60ch;
}
.taibo-taxonomy-block {
    margin-top: var(--taibo-space-lg);
}
.taibo-taxonomy-block__title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-md);
}
.taibo-post__eyebrow {
    color: var(--taibo-color-accent);
    font-size: var(--taibo-text-label);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 var(--taibo-space-xs);
}
/* Página de agradecimiento */
.taibo-thank-you {
    padding-block: var(--taibo-space-lg);
    text-align: center;
}
.taibo-thank-you__title {
    font-size: var(--taibo-text-h1);
    margin: 0 0 var(--taibo-space-sm);
}
.taibo-thank-you__text {
    margin: 0 0 var(--taibo-space-sm);
    color: var(--taibo-color-muted);
}
.taibo-thank-you__text a {
    color: var(--taibo-color-accent);
}
/* Formularios */
.taibo-form {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
    max-width: var(--taibo-width-narrow);
}
.taibo-form__context {
    background-color: var(--taibo-color-surface);
    padding: var(--taibo-space-xs) var(--taibo-space-sm);
    border-radius: var(--taibo-radius-sm);
    font-size: var(--taibo-text-body-sm);
    color: var(--taibo-color-muted);
    margin: 0;
}
.taibo-form__field {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-1);
}
.taibo-form__field label {
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
}
.taibo-form__field input,
.taibo-form__field select,
.taibo-form__field textarea {
    padding: var(--taibo-space-xs);
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-sm);
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-body);
}
.taibo-form__field--checkbox label {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-2);
    font-weight: var(--taibo-weight-regular);
}
.taibo-form__field--checkbox a {
    color: var(--taibo-color-accent);
}
.taibo-form__honeypot {
    position: absolute;
    left: -9999px;
}
.taibo-form__submit {
    align-self: flex-start;
    margin-top: var(--taibo-space-xs);
}
.taibo-contact-page {
    padding-block: var(--taibo-space-lg);
}
.taibo-contact-page__title {
    font-size: var(--taibo-text-h1);
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-contact-page__intro {
    color: var(--taibo-color-muted);
    margin: 0 0 var(--taibo-space-md);
}
/* Acordeón del formulario de Evaluación */
.taibo-evaluation-toggle {
    max-width: var(--taibo-width-narrow);
    margin-inline: auto;
    margin-block: var(--taibo-space-lg);
    padding: var(--taibo-space-md) var(--taibo-space-lg);
    background-color: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-md);
}
.taibo-evaluation-toggle__label {
    cursor: pointer;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-bold);
    text-transform: uppercase;
    letter-spacing: var(--taibo-letter-spacing-titles);
    font-size: var(--taibo-text-h3);
    list-style: none;
    padding: var(--taibo-space-xs) 0;
}
.taibo-evaluation-toggle__label:focus-visible {
    outline: 2px solid var(--taibo-color-accent);
    outline-offset: 4px;
}
.taibo-evaluation-toggle__label::-webkit-details-marker {
    display: none;
}
.taibo-evaluation-toggle__label::after {
    content: " +";
    color: var(--taibo-color-accent);
}
.taibo-evaluation-toggle[open] .taibo-evaluation-toggle__label::after {
    content: " −";
}
.taibo-evaluation-toggle .taibo-form {
    margin-top: var(--taibo-space-md);
}
/* =========================================
   HOME — Diseño editorial con trayectoria biomecánica
   ========================================= */
/* HERO */
.taibo-home-hero {
    position: relative;
    background-color: var(--taibo-color-text);
    color: #ffffff;
    padding-block: var(--taibo-space-10);
    text-align: center;
    overflow: hidden;
}
.taibo-home-hero__arc {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.taibo-home-hero__arc svg {
    width: 90%;
    max-width: 900px;
    height: auto;
}
.taibo-home-hero__kicker {
    position: relative;
    color: var(--taibo-color-accent-light);
    font-size: var(--taibo-text-label);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 var(--taibo-space-md);
}
.taibo-home-hero__title {
    position: relative;
    font-family: var(--taibo-font-primary);
    text-transform: none;
    font-size: clamp(2rem, 5vw + 1rem, 4rem);
    font-weight: var(--taibo-weight-bold);
    line-height: 1.15;
    max-width: 18ch;
    margin: 0 auto var(--taibo-space-sm);
}
.taibo-home-hero__subtitle {
    position: relative;
    font-size: var(--taibo-text-body-lg);
    color: rgba(255,255,255,0.7);
    max-width: 55ch;
    margin: 0 auto var(--taibo-space-lg);
}
/* SECCIONES GENÉRICAS */
.taibo-home-section {
    padding-block: var(--taibo-space-lg);
    text-align: center;
}
.taibo-home-section__title--light {
    color: #ffffff;
}
.taibo-home-section__text {
    color: var(--taibo-color-muted);
    max-width: 65ch;
    margin: 0 auto var(--taibo-space-md);
}
.taibo-home-section__text--light {
    color: rgba(255,255,255,0.65);
}
/* DOS EJES — SPLIT PANEL */
.taibo-home-axes {
    display: grid;
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .taibo-home-axes {
        grid-template-columns: 1fr 1fr;
    }
}
.taibo-home-axis {
    padding: var(--taibo-space-lg) var(--taibo-space-md);
}
.taibo-home-axis--light {
    background-color: var(--taibo-color-bg);
    color: var(--taibo-color-text);
}
.taibo-home-axis--dark {
    background-color: var(--taibo-color-text);
    color: #ffffff;
}
.taibo-home-axis__eyebrow {
    display: inline-block;
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: var(--taibo-text-label);
    margin-bottom: var(--taibo-space-sm);
}
.taibo-home-axis--dark .taibo-home-axis__text {
    color: rgba(255,255,255,0.65);
}
.taibo-home-axis--light .taibo-home-axis__text {
    color: var(--taibo-color-muted);
}
/* 5 PRINCIPIOS — número fantasma */
.taibo-home-principles {
    padding-block: var(--taibo-space-lg);
    text-align: center;
}
.taibo-home-principles__list {
    margin-top: var(--taibo-space-lg);
    text-align: left;
}
.taibo-home-principle {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-md);
    padding-block: var(--taibo-space-sm);
    border-bottom: 1px solid var(--taibo-color-surface);
}
.taibo-home-principle:first-child {
    border-top: 1px solid var(--taibo-color-surface);
}
.taibo-home-principle__num {
    font-family: var(--taibo-font-primary);
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    font-weight: var(--taibo-weight-bold);
    color: var(--taibo-color-surface);
    -webkit-text-stroke: 1px var(--taibo-color-accent);
    flex-shrink: 0;
    width: 3.5rem;
    line-height: 1;
}
.taibo-home-principle p {
    font-size: var(--taibo-text-body-lg);
    margin: 0;
}
/* 5 FASES — TRAYECTORIA */
.taibo-home-phases {
    background-color: var(--taibo-color-text);
    padding-block: var(--taibo-space-lg);
    text-align: center;
}
@media (max-width: 767px) {
    .taibo-home-phases__timeline {
        flex-direction: column;
        align-items: flex-start;
        position: relative;
        gap: var(--taibo-space-lg);
        width: fit-content;
        margin-inline: auto;
    }
    .taibo-home-phases__line {
        display: block;
        position: absolute;
        top: 6px;
        left: 5px;
        right: auto;
        width: 3px;
        height: calc(100% - 12px);
        background-color: var(--taibo-color-accent);
        opacity: 0.5;
        transform: scaleY(0);
        transform-origin: top;
        transition: transform 1.4s cubic-bezier(0.65, 0, 0.35, 1);
    }
    .taibo-home-phases__timeline.is-revealed .taibo-home-phases__line {
        transform: scaleY(1);
    }
    .taibo-home-phase {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        min-width: 0;
        gap: var(--taibo-space-sm);
    }
    .taibo-home-phase__label {
        font-size: 1.3rem;
        letter-spacing: 0.03em;
    }
    .taibo-home-phase__dot {
        background-color: var(--taibo-color-surface);
        border: 2px solid var(--taibo-color-accent);
        transition: background-color 0.3s ease, transform 0.3s ease;
    }
    .taibo-home-phase.is-active .taibo-home-phase__dot {
        background-color: var(--taibo-color-accent);
        transform: scale(1.3);
    }
}
/* CASO DESTACADO */
.taibo-home-case {
    padding-block: var(--taibo-space-lg);
    text-align: center;
}
.taibo-home-case__mark {
    display: block;
    font-family: Georgia, serif;
    font-size: 5rem;
    line-height: 1;
    color: var(--taibo-color-accent-light);
    margin-bottom: -1rem;
}
/* CTA FINAL */
.taibo-home-final-cta {
    background-color: var(--taibo-color-text);
    padding-block: var(--taibo-space-lg);
    text-align: center;
}
/* Accesibilidad — foco visible en botones */
.taibo-button:focus-visible {
    outline: 2px solid var(--taibo-color-accent);
    outline-offset: 3px;
}
/* =========================================
   HOME v3 — piezas nuevas (blog sin imagen,
   entrenamientos, objetivos, stats, trust list)
   ========================================= */
/* Grid de entrenamientos */
@media (min-width: 768px) { .taibo-entrenamientos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .taibo-entrenamientos-grid { grid-template-columns: repeat(3, 1fr); } }
/* Pills de objetivo */
/* Stats (contador) */
/* Blog — SIN imagen, solo texto */
@media (min-width: 768px) {
    .taibo-blog-grid { grid-template-columns: repeat(3, 1fr); }
}
/* Trust list (CTA final) */
/* =========================================
   HOME v3 — BLOQUE COMPLETO CONSOLIDADO
   ========================================= */
.taibo-text-accent { color: var(--taibo-color-accent); }
.taibo-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--taibo-space-xs) var(--taibo-space-sm);
    border-radius: var(--taibo-radius-full);
    text-decoration: none;
    border: 1px solid transparent;
    cursor: pointer;
    font-family: var(--taibo-font-primary);
}
.taibo-button--primary {
    background-color: var(--taibo-color-accent);
    color: #ffffff;
    padding-right: 3rem;
    position: relative;
}
.taibo-button--primary::after {
    content: "↗";
    position: absolute;
    right: 6px; top: 50%;
    transform: translateY(-50%);
    width: 1.9rem; height: 1.9rem;
    display: flex; align-items: center; justify-content: center;
    background: #ffffff; color: var(--taibo-color-accent);
    border-radius: 50%; font-size: 0.85rem;
}
.taibo-pill-badge {
    display: inline-flex; align-items: center; gap: 0.5rem;
    background: rgba(232, 98, 44, 0.12);
    color: var(--taibo-color-accent);
    padding: 0.5rem 1rem;
    border-radius: var(--taibo-radius-full);
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-label);
    margin-bottom: var(--taibo-space-sm);
}
.taibo-pill-badge__dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--taibo-color-accent);
}
.taibo-marquee {
    background: var(--taibo-color-text);
    overflow: hidden;
    padding-block: var(--taibo-space-sm);
    white-space: nowrap;
}
.taibo-marquee__track {
    display: inline-flex; gap: var(--taibo-space-lg);
    animation: taibo-marquee-scroll 24s linear infinite;
}
.taibo-marquee__item {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase; letter-spacing: 0.08em;
    font-size: var(--taibo-text-body-sm);
    color: rgba(255,255,255,0.8);
    display: inline-flex; align-items: center; gap: var(--taibo-space-lg);
}
.taibo-marquee__dot { color: var(--taibo-color-accent); }
@keyframes taibo-marquee-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.taibo-hero-v2__cta-row {
    display: flex; align-items: center; gap: var(--taibo-space-sm); flex-wrap: wrap;
}
.taibo-hero-v2__microcopy {
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-body-sm);
    color: var(--taibo-color-muted);
    font-weight: var(--taibo-weight-medium);
}
.taibo-home-hero-v2 { padding-block: var(--taibo-space-lg); }
.taibo-hero-grid {
    display: grid; grid-template-columns: 1fr; gap: var(--taibo-space-lg); align-items: center;
}
@media (min-width: 768px) { .taibo-hero-grid { grid-template-columns: 1.1fr 1fr; } }
.taibo-hero-v2__title {
    font-family: var(--taibo-font-primary);
    text-transform: none;
    font-size: var(--taibo-text-hero-display);
    line-height: 1.15;
    font-weight: var(--taibo-weight-bold);
    margin: var(--taibo-space-sm) 0;
}
.taibo-hero-v2__subtitle {
    font-size: var(--taibo-text-body-lg);
    color: var(--taibo-color-muted);
    max-width: 48ch;
    margin-bottom: var(--taibo-space-md);
}
/* COMPOSICIÓN FOTOGRÁFICA — el bloque que faltaba casi entero */
.taibo-photo-comp {
    position: relative;
    max-width: 420px;
    margin-inline: auto;
    padding: 30px 30px 40px 0;
}
.taibo-photo-comp__corner {
    position: absolute;
    top: -16px; right: -16px;
    width: 70px; height: 70px;
    border-top: 4px solid var(--taibo-color-accent);
    border-right: 4px solid var(--taibo-color-accent);
    z-index: 0;
}
.taibo-photo-comp__accent {
    position: absolute;
    top: 0; left: -14px;
    width: 10px; height: 60%;
    border-radius: 999px;
    background: var(--taibo-color-accent);
    z-index: 1;
}
.taibo-photo-comp__frame {
    position: relative;
    z-index: 2;
    border-radius: 28px;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: var(--taibo-color-surface);
    box-shadow: 0 24px 60px rgba(0,0,0,0.18);
}
.taibo-photo-comp__frame img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.taibo-photo-comp__seal {
    position: absolute;
    bottom: 0; left: -20px;
    width: 100px; height: 100px;
    z-index: 3;
}
.taibo-photo-comp__seal-ring {
    width: 100%; height: 100%;
    animation: taibo-rotate 20s linear infinite;
}
.taibo-photo-comp__seal-ring svg { width: 100%; height: 100%; display: block; }
.taibo-photo-comp__seal-center {
    position: absolute;
    inset: 0;
    display: flex; align-items: center; justify-content: center;
}
@keyframes taibo-rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .taibo-photo-comp__seal-ring { animation: none; }
}
.taibo-home-section-v2 { padding-block: var(--taibo-space-lg); }
.taibo-home-section__title {
    font-size: var(--taibo-text-h1);
    margin: 0 0 var(--taibo-space-sm);
    text-align: center;
}
.taibo-home-section__link-row { margin-top: var(--taibo-space-sm); }
.taibo-home-section__link-row a {
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-medium);
    text-decoration: underline;
}
.taibo-how-grid {
    display: grid; grid-template-columns: 1fr; gap: var(--taibo-space-lg); align-items: center;
}
@media (min-width: 768px) { .taibo-how-grid { grid-template-columns: 0.8fr 1.2fr; } }
/* ILUSTRACIÓN DE CUERPO — el max-width que faltaba y causaba el desbordamiento */
.taibo-body-illustration {
    max-width: 320px;
    margin-inline: auto;
}
.taibo-body-illustration svg { width: 100%; height: auto; display: block; }
.taibo-pill-list {
    display: flex; flex-direction: column; gap: var(--taibo-space-sm);
    margin-top: var(--taibo-space-md);
}
.taibo-pill-item {
    display: flex; align-items: flex-start; gap: var(--taibo-space-sm);
    background: var(--taibo-color-accent);
    color: #ffffff;
    padding: var(--taibo-space-sm) var(--taibo-space-md);
    border-radius: var(--taibo-radius-lg);
}
.taibo-pill-item__check {
    flex-shrink: 0; width: 26px; height: 26px;
    border-radius: 50%;
    background: var(--taibo-color-text);
    display: flex; align-items: center; justify-content: center;
    font-size: 0.8rem;
}
.taibo-pill-item p { margin: 0; }
/* Entrenamientos */
.taibo-entrenamientos-grid {
    display: grid; grid-template-columns: 1fr; gap: var(--taibo-space-sm);
    margin-top: var(--taibo-space-md);
}
.taibo-entrenamiento-card {
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    transition: transform 0.3s ease;
}
.taibo-entrenamiento-card:hover { transform: translateY(-6px); }
.taibo-entrenamiento-card__badge {
    display: inline-block;
    background: var(--taibo-color-surface);
    color: var(--taibo-color-text);
    font-size: var(--taibo-text-caption);
    text-transform: uppercase; letter-spacing: 0.05em;
    padding: 0.25rem 0.75rem;
    border-radius: var(--taibo-radius-full);
    margin-bottom: var(--taibo-space-xs);
}
.taibo-entrenamiento-card__title { font-size: var(--taibo-text-h3); margin: 0 0 var(--taibo-space-xs); }
.taibo-entrenamiento-card__title a { color: inherit; text-decoration: none; }
.taibo-entrenamiento-card__link {
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
}
/* Objetivos */
.taibo-objetivo-pills {
    display: flex; flex-wrap: wrap; gap: var(--taibo-space-xs);
    margin-top: var(--taibo-space-md);
}
.taibo-objetivo-pill {
    display: inline-flex; align-items: center;
    background: var(--taibo-color-text);
    color: #ffffff;
    padding: 0.6rem 1.25rem;
    border-radius: var(--taibo-radius-full);
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
    text-decoration: none;
    transition: background 0.25s ease;
}
.taibo-objetivo-pill:hover { background: var(--taibo-color-accent); }
/* Filas de ejes */
.taibo-axis-row {
    display: grid; grid-template-columns: 1fr; gap: var(--taibo-space-lg);
    align-items: center; margin-bottom: var(--taibo-space-lg);
}
@media (min-width: 768px) {
    .taibo-axis-row { grid-template-columns: 1fr 1fr; }
    .taibo-axis-row--reverse { direction: rtl; }
    .taibo-axis-row--reverse > * { direction: ltr; }
}
.taibo-home-axis__title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-xs);
    max-width: 22ch;
}
.taibo-home-axis__text {
    max-width: 45ch;
    color: var(--taibo-color-muted);
}
/* Panel oscuro */
.taibo-panel-dark {
    background: var(--taibo-color-text);
    border-radius: 32px;
    padding: var(--taibo-space-lg);
}
.taibo-panel-dark h2 { color: #ffffff; }
.taibo-panel-dark p { color: rgba(255,255,255,0.65); }
/* Fases */
.taibo-home-phases__timeline {
    position: relative;
    display: flex; flex-wrap: wrap; justify-content: space-between;
    gap: var(--taibo-space-md);
    margin: var(--taibo-space-lg) 0;
    padding-top: var(--taibo-space-sm);
}
.taibo-home-phases__line {
    position: absolute;
    top: calc(var(--taibo-space-sm) + 6px);
    left: 6px; right: 6px; height: 1px;
    background-color: var(--taibo-color-accent);
    opacity: 0.4;
}
@media (max-width: 767px) {
    .taibo-home-phases__timeline {
        flex-direction: column;
        align-items: flex-start;
        position: relative;
        gap: var(--taibo-space-lg);
        width: fit-content;
        margin-inline: auto;
    }
    .taibo-home-phases__line {
        display: block;
        position: absolute;
        top: 6px;
        left: 5px;
        right: auto;
        width: 3px;
        height: calc(100% - 12px);
        background-color: var(--taibo-color-accent);
        opacity: 0.5;
        transform: scaleY(0);
        transform-origin: top;
        transition: transform 1.4s cubic-bezier(0.65, 0, 0.35, 1);
    }
    .taibo-home-phases__timeline.is-revealed .taibo-home-phases__line {
        transform: scaleY(1);
    }
    .taibo-home-phase {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        min-width: 0;
        gap: var(--taibo-space-sm);
    }
    .taibo-home-phase__label {
        font-size: 1.3rem;
        letter-spacing: 0.03em;
    }
    .taibo-home-phase__dot {
        background-color: var(--taibo-color-surface);
        border: 2px solid var(--taibo-color-accent);
        transition: background-color 0.3s ease, transform 0.3s ease;
    }
    .taibo-home-phase.is-active .taibo-home-phase__dot {
        background-color: var(--taibo-color-accent);
        transform: scale(1.3);
    }
}
.taibo-home-phase {
    position: relative;
    display: flex; flex-direction: column; align-items: center;
    gap: var(--taibo-space-xs); flex: 1; min-width: 100px;
}
.taibo-home-phase__dot {
    width: 13px; height: 13px; border-radius: 50%;
    background-color: var(--taibo-color-accent);
    border: 2px solid var(--taibo-color-text);
}
.taibo-home-phase__label {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase; letter-spacing: 0.04em;
    color: #ffffff; font-size: var(--taibo-text-body-sm);
}
/* Stats */
.taibo-stats-row { display: flex; gap: var(--taibo-space-lg); margin: var(--taibo-space-md) 0; }
.taibo-stat { display: flex; flex-direction: column; }
.taibo-stat .taibo-counter {
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-bold);
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    color: var(--taibo-color-accent);
    line-height: 1;
}
.taibo-stat__unit {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-h3);
    color: var(--taibo-color-accent);
    margin-left: 4px;
}
.taibo-stat__label {
    font-size: var(--taibo-text-caption);
    text-transform: uppercase; letter-spacing: 0.05em;
    color: var(--taibo-color-muted);
    margin-top: 4px;
}
/* Blog — sin imagen */
.taibo-blog-grid {
    display: grid; grid-template-columns: 1fr; gap: var(--taibo-space-sm);
    margin-top: var(--taibo-space-md);
}
@media (min-width: 768px) { .taibo-blog-grid { grid-template-columns: repeat(3, 1fr); } }
.taibo-blog-card {
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    transition: transform 0.3s ease;
}
.taibo-blog-card:hover { transform: translateY(-6px); }
.taibo-blog-card__eyebrow {
    display: block;
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-bold);
    font-size: var(--taibo-text-caption);
    text-transform: uppercase; letter-spacing: 0.05em;
    margin-bottom: var(--taibo-space-xs);
}
.taibo-blog-card__title { font-size: var(--taibo-text-h3); margin: 0 0 var(--taibo-space-xs); }
.taibo-blog-card__title a { color: var(--taibo-color-text); text-decoration: none; }
.taibo-blog-card__link {
    color: var(--taibo-color-text);
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
    text-decoration: underline;
}
/* CTA final */
.taibo-home-final-cta__title {
    font-size: var(--taibo-text-h1);
    color: #ffffff;
    margin: 0 0 var(--taibo-space-sm);
}
.taibo-home-final-cta__text { color: rgba(255,255,255,0.65); max-width: 50ch; margin: 0 auto var(--taibo-space-sm); }
.taibo-trust-list {
    list-style: none; padding: 0; margin: var(--taibo-space-md) 0 0;
    display: flex; flex-direction: column; gap: var(--taibo-space-xs); align-items: center;
}
.taibo-trust-list li {
    color: rgba(255,255,255,0.75);
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-body-sm);
}
/* Barra de progreso de scroll */
.taibo-scroll-progress {
    position: fixed; top: 0; left: 0; width: 100%; height: 3px; z-index: 9999;
}
.taibo-scroll-progress__bar {
    height: 100%; width: 0%;
    background: linear-gradient(90deg, var(--taibo-color-accent), var(--taibo-color-accent-light));
}
/* MOTION / REVEAL */
[data-reveal] { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
    html.js-motion-ready [data-reveal]:not([data-reveal="stagger"]) {
        opacity: 0; transform: translateY(24px);
        transition: opacity 0.7s ease, transform 0.7s ease;
    }
    html.js-motion-ready [data-reveal]:not([data-reveal="stagger"]).is-revealed {
        opacity: 1; transform: translateY(0);
    }
    html.js-motion-ready [data-reveal="stagger"] > * {
        opacity: 0; transform: translateY(16px);
        transition: opacity 0.6s ease, transform 0.6s ease;
        transition-delay: calc(var(--stagger-index, 0) * 80ms);
    }
    html.js-motion-ready [data-reveal="stagger"].is-revealed > * {
        opacity: 1; transform: translateY(0);
    }
    .taibo-draw-path { transition: stroke-dashoffset 1.6s cubic-bezier(0.65,0,0.35,1); }
    .taibo-draw-path.is-drawn { stroke-dashoffset: 0 !important; }
    .taibo-button:focus-visible { outline: 2px solid var(--taibo-color-accent); outline-offset: 3px; }
}
/* =========================================
   AUDITORÍA — correcciones P0/P1/P2/P3
   ========================================= */
/* P0 — Logo magenta de Hello Elementor corregido */
.site-title a,
.site-title a:hover {
    color: var(--taibo-color-text) !important;
}
/* P1 — Sección Caso destacado, layout según referencia */
.taibo-case-v2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-lg);
    align-items: center;
}
@media (min-width: 768px) {
    .taibo-case-v2 { grid-template-columns: 1fr 1fr; }
}
.taibo-case-v2__title {
    font-size: var(--taibo-text-h1);
    margin: var(--taibo-space-sm) 0;
}
.taibo-case-v2__images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--taibo-space-sm);
}
.taibo-ba-slot {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-xs);
}
.taibo-ba-slot img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: var(--taibo-radius-md);
    display: block;
}
.taibo-ba-slot__empty {
    width: 100%;
    aspect-ratio: 3 / 4;
    border-radius: var(--taibo-radius-md);
    background: var(--taibo-color-surface);
    border: 2px dashed rgba(0,0,0,0.15);
}
.taibo-ba-slot--despues .taibo-ba-slot__empty,
.taibo-ba-slot--despues img {
    box-shadow: -6px 0 0 var(--taibo-color-accent);
}
.taibo-ba-slot figcaption {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
}
/* P3 — línea de trayectoria más ágil */
.taibo-draw-path { transition-duration: 0.9s !important; }
/* Bloque de cita fundacional */
.taibo-quote-block { text-align: left; }
.taibo-quote-block__mark {
    font-family: Georgia, serif;
    font-size: 3.5rem;
    color: var(--taibo-color-accent-light);
    line-height: 1;
    display: block;
    margin-bottom: -0.5rem;
}
.taibo-quote-block__text {
    font-size: var(--taibo-text-h2);
    color: #ffffff;
    line-height: 1.4;
    max-width: 30ch;
}
.taibo-quote-block__footer {
    border-top: 1px solid rgba(255,255,255,0.15);
    padding-top: var(--taibo-space-sm);
    margin-top: var(--taibo-space-sm);
    color: rgba(255,255,255,0.6);
}
.taibo-quote-block__footer strong { color: #ffffff; }
/* Detalle de fases (Página Método) */
.taibo-phase-detail-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-md);
    margin-top: var(--taibo-space-lg);
}
@media (min-width: 768px) {
    .taibo-phase-detail-grid { grid-template-columns: repeat(3, 1fr); }
}
.taibo-phase-detail {
    display: flex;
    gap: var(--taibo-space-sm);
    padding-block: var(--taibo-space-sm);
    border-top: 1px solid rgba(255,255,255,0.1);
}
.taibo-phase-detail-grid .taibo-phase-detail { flex-direction: column; border: none; padding: 0; }
.taibo-phase-detail__num {
    font-family: var(--taibo-font-primary);
    font-size: 1.8rem;
    color: var(--taibo-color-accent);
    font-weight: 700;
}
.taibo-phase-detail h3 {
    color: #ffffff;
    font-size: var(--taibo-text-h3);
    margin: 0.3rem 0;
}
.taibo-phase-detail p {
    color: rgba(255,255,255,0.6);
    margin: 0 0 0.5rem;
}
.taibo-phase-detail--featured {
    margin-top: var(--taibo-space-lg);
    background: rgba(232,98,44,0.1);
    border: 1px solid rgba(232,98,44,0.3);
    border-radius: 20px;
    padding: var(--taibo-space-md);
}
.taibo-phase-detail__tag {
    display: inline-block;
    color: var(--taibo-color-accent-light);
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}
.taibo-button--secondary:hover,
.taibo-button--secondary:focus-visible {
    background-color: var(--taibo-color-accent);
    color: #ffffff;
    border-color: var(--taibo-color-accent);
}
.taibo-home-axis__link {
    margin-top: var(--taibo-space-xs);
}
.taibo-home-axis__link a {
    color: var(--taibo-color-accent);
    font-weight: 600;
    text-decoration: underline;
}
.taibo-pill-list-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}
.taibo-mini-pill {
    display: inline-flex;
    align-items: center;
    background: var(--taibo-color-surface);
    color: var(--taibo-color-text);
    padding: 0.4rem 1rem;
    border-radius: var(--taibo-radius-full);
    font-size: var(--taibo-text-body-sm);
    font-weight: var(--taibo-weight-medium);
}
.taibo-jc-lead {
    font-size: var(--taibo-text-body-lg);
    max-width: 56ch;
}
.taibo-entrenamiento-card__excerpt {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    margin: 0 0 var(--taibo-space-xs);
}
/* Marquee dinámico — mismo look que el original, ahora con enlaces reales */
.taibo-marquee--dynamic .taibo-marquee__item {
    text-decoration: none;
    transition: color 0.2s ease;
}
.taibo-marquee--dynamic .taibo-marquee__item:hover {
    color: var(--taibo-color-accent-light);
}
/* Panel divisorio entre secciones */
.taibo-tax-divider {
    position: relative;
    min-height: 320px;
    background-color: var(--taibo-color-text);
    overflow: hidden;
}
.taibo-tax-divider__photo {
    position: absolute;
    inset: 0;
    width: 50%;
}
.taibo-tax-divider__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.taibo-tax-divider__marquee {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}
@media (max-width: 767px) {
    .taibo-tax-divider__photo { position: relative; width: 100%; height: 220px; }
    .taibo-tax-divider { min-height: auto; }
    .taibo-tax-divider__marquee { position: relative; }
}
.taibo-tax-why { text-align: left; }
/* Separación visual real entre Casos / Testimonios / FAQ */
.taibo-testimonios {
    padding-block: var(--taibo-space-lg);
    background-color: var(--taibo-color-surface);
}
.taibo-testimonios__title,
.taibo-faqs__title {
    text-align: left;
    margin-top: 0.5rem;
}
.taibo-testimonio {
    background-color: #ffffff;
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    margin: 0;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    border: none;
}
.taibo-faqs {
    padding-block: var(--taibo-space-lg);
    background-color: var(--taibo-color-bg);
}
.taibo-faq-item {
    border-bottom: 1px solid var(--taibo-color-surface);
    padding-block: var(--taibo-space-sm);
    background-color: #ffffff;
    border-radius: var(--taibo-radius-md);
    padding: var(--taibo-space-sm) var(--taibo-space-md);
    margin-bottom: var(--taibo-space-xs);
    border: none;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.taibo-faq-item + .taibo-faq-item {
    margin-top: var(--taibo-space-xs);
}
/* Archive de Casos de éxito */
.taibo-archive-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--taibo-space-sm);
    margin-bottom: var(--taibo-space-md);
}
.taibo-archive-header__count {
    color: var(--taibo-color-muted);
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-body-sm);
}
.taibo-archive-empty {
    padding: var(--taibo-space-lg) 0;
    color: var(--taibo-color-muted);
    text-align: center;
}
.taibo-case-listing-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-md);
    list-style: none;
    margin: 0;
    padding: 0;
}
@media (min-width: 768px) {
    .taibo-case-listing-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .taibo-case-listing-grid { grid-template-columns: repeat(3, 1fr); }
}
.taibo-case-listing-card {
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    transition: transform 0.3s ease;
}
.taibo-case-listing-card:hover { transform: translateY(-6px); }
.taibo-case-listing-card__media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 5;
    background: var(--taibo-color-surface);
}
.taibo-case-listing-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.taibo-case-listing-card__media-empty {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--taibo-color-surface);
    border: 2px dashed rgba(0,0,0,0.12);
}
.taibo-case-listing-card__corner {
    position: absolute;
    top: 12px; right: 12px;
    width: 36px; height: 36px;
    border-top: 3px solid var(--taibo-color-accent);
    border-right: 3px solid var(--taibo-color-accent);
}
.taibo-case-listing-card__accent {
    position: absolute;
    top: 12px; left: 12px;
    width: 6px; height: 40%;
    border-radius: 999px;
    background: var(--taibo-color-accent);
}
.taibo-case-listing-card__body {
    padding: var(--taibo-space-md);
}
.taibo-case-listing-card__eyebrow {
    display: block;
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: var(--taibo-text-caption);
    margin-bottom: 0.5rem;
}
.taibo-case-listing-card__title {
    font-size: var(--taibo-text-h3);
    margin: 0 0 0.3rem;
}
.taibo-case-listing-card__title a {
    color: var(--taibo-color-text);
    text-decoration: none;
}
.taibo-case-listing-card__client {
    display: block;
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-secondary);
    font-weight: 600;
    font-size: var(--taibo-text-body-sm);
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--taibo-color-surface);
}
.taibo-case-listing-card__link {
    color: var(--taibo-color-text);
    font-family: var(--taibo-font-secondary);
    font-weight: 600;
    font-size: var(--taibo-text-body-sm);
    text-decoration: none;
}
.taibo-case-listing-card__link:hover { color: var(--taibo-color-accent); }
/* Cliente en el Hero del caso */
.taibo-case-hero__client {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--taibo-color-text);
    font-weight: 700;
    margin: 0.5rem 0 1rem;
}

/* Bloque de contexto (objetivo / entrenamientos / nivel / modalidad) */
.taibo-case-context {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 1.75rem;
    background: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-lg);
}
.taibo-case-context__block {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.taibo-case-context__label {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--taibo-color-accent);
}
.taibo-case-context__sentence {
    font-family: var(--taibo-font-secondary);
    font-style: italic;
    color: var(--taibo-color-text);
    margin: 0;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(0,0,0,0.08);
}

/* Capítulos del proceso */
.taibo-case-chapters {
    margin-top: var(--taibo-space-lg);
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-md);
}
.taibo-case-chapter {
    display: flex;
    gap: var(--taibo-space-md);
    align-items: flex-start;
}
.taibo-case-chapter__num {
    font-family: var(--taibo-font-primary);
    font-size: 1.5rem;
    color: var(--taibo-color-accent);
    font-weight: 700;
    flex-shrink: 0;
    width: 2.5rem;
}
.taibo-case-chapter p {
    margin: 0;
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-lg);
    line-height: 1.6;
}

/* Texto del resultado — contraste alto, legible sobre fondo oscuro */
.taibo-case-result-text {
    margin-top: 1.5rem;
    padding: 1.5rem;
    border-radius: var(--taibo-radius-md);
    background: rgba(255,255,255,0.06);
    color: #ffffff;
    line-height: 1.8;
    max-width: 65ch;
    font-size: var(--taibo-text-body-lg);
}

/* Galería — mismo lenguaje visual que Antes/Después, en cuadrícula */
.taibo-case-gallery-v2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-md);
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
}
@media (min-width: 768px) {
    .taibo-case-gallery-v2 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .taibo-case-gallery-v2 { grid-template-columns: repeat(3, 1fr); }
}
.taibo-case-gallery-v2 .taibo-ba-slot img {
    box-shadow: -6px 0 0 var(--taibo-color-accent);
}
/* ===========================================
   ARCHIVE — Ejercicio: header, filtros, tarjeta
   =========================================== */
.taibo-archive__header {
    margin-bottom: var(--taibo-space-md);
}
.taibo-archive__subtitle {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-lg);
    max-width: 48ch;
    margin: var(--taibo-space-xs) 0 0;
}

.taibo-exercise-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--taibo-space-sm);
    margin: var(--taibo-space-md) 0 var(--taibo-space-lg);
}
.taibo-exercise-filters__label {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-bold);
    color: var(--taibo-color-muted);
}
.taibo-exercise-filters__clear {
    font-size: var(--taibo-text-body-sm);
    font-weight: var(--taibo-weight-medium);
    color: var(--taibo-color-muted);
    text-decoration: underline;
}
.taibo-exercise-filters__clear:hover {
    color: var(--taibo-color-accent);
}

.taibo-filter-dropdown {
    position: relative;
}
.taibo-filter-dropdown__toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--taibo-space-xs);
    background: #ffffff;
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-full);
    padding: 0.65rem 1.1rem;
    cursor: pointer;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-body-sm);
    font-weight: var(--taibo-weight-medium);
    color: var(--taibo-color-text);
    list-style: none;
}
.taibo-filter-dropdown__toggle::-webkit-details-marker {
    display: none;
}
.taibo-filter-dropdown__toggle::after {
    content: "▼";
    color: var(--taibo-color-accent);
    font-size: 0.65rem;
    margin-left: var(--taibo-space-xs);
}
.taibo-filter-dropdown[open] .taibo-filter-dropdown__toggle::after {
    content: "▲";
}
.taibo-filter-dropdown:hover .taibo-filter-dropdown__toggle {
    border-color: var(--taibo-color-accent);
}
.taibo-filter-dropdown__key {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-bold);
    color: var(--taibo-color-muted);
}
.taibo-filter-dropdown__panel {
    position: absolute;
    top: calc(100% + 0.6rem);
    left: 0;
    z-index: 30;
    min-width: 240px;
    background: #ffffff;
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-lg);
    box-shadow: 0 16px 44px rgba(0,0,0,0.14);
    padding: var(--taibo-space-xs);
    display: grid;
    gap: 0.15rem;
}
.taibo-filter-dropdown__option {
    display: block;
    border-radius: var(--taibo-radius-sm);
    padding: 0.6rem 0.85rem;
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-body-sm);
    font-weight: var(--taibo-weight-medium);
    color: var(--taibo-color-text);
    text-decoration: none;
}
.taibo-filter-dropdown__option:hover {
    background: rgba(232, 98, 44, 0.08);
    color: var(--taibo-color-accent);
}
.taibo-filter-dropdown__option.is-active {
    color: var(--taibo-color-accent);
    font-weight: var(--taibo-weight-bold);
}

.taibo-exercise-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--taibo-space-2);
    margin-bottom: var(--taibo-space-xs);
}
.taibo-exercise-card__patron {
    display: block;
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
    margin-bottom: var(--taibo-space-xs);
    padding-bottom: var(--taibo-space-xs);
    border-bottom: 1px solid var(--taibo-color-surface);
}
/* ===========================================
   BLOG — header, toolbar, grid de tarjetas
   =========================================== */
.taibo-blog-archive__header {
    margin-bottom: var(--taibo-space-md);
}
.taibo-blog-archive__title {
    font-size: var(--taibo-text-h1);
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-blog-archive__subtitle {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-lg);
    max-width: 56ch;
    margin: 0;
}

.taibo-archive-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--taibo-space-sm);
    margin: var(--taibo-space-md) 0 var(--taibo-space-lg);
}
.taibo-archive-toolbar__count {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    margin: 0;
}

/* Extensión del filtro ya existente (.taibo-filter-dropdown, de ejercicios) */
.taibo-filter-dropdown__option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--taibo-space-sm);
}
.taibo-filter-dropdown__option-count {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
}
.taibo-filter-dropdown__option.is-active span:first-child::before {
    content: "✓ ";
    color: var(--taibo-color-accent);
}

.taibo-blog-grid {
    display: grid;
    gap: var(--taibo-space-md);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .taibo-blog-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.taibo-blog-card {
    background-color: #ffffff;
    border-radius: var(--taibo-radius-md);
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
    display: flex;
    flex-direction: column;
}
.taibo-blog-card__media {
    display: block;
}
.taibo-blog-card__image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}
.taibo-blog-card__body {
    padding: var(--taibo-space-sm) var(--taibo-space-sm) var(--taibo-space-md);
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-2);
}
.taibo-blog-card__title {
    font-size: var(--taibo-text-h3);
    margin: var(--taibo-space-1) 0 0;
}
.taibo-blog-card__title a {
    color: inherit;
    text-decoration: none;
}
.taibo-blog-card__excerpt {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    margin: 0;
}
.taibo-blog-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: var(--taibo-space-2);
}
.taibo-blog-card__date {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
}
.taibo-blog-card__link {
    color: var(--taibo-color-accent);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
    text-decoration: none;
}
.taibo-blog-card__link:hover {
    text-decoration: underline;
}
/* ===========================================
   BLOG — corrección de padding + tipografía HTML real
   =========================================== */
.taibo-blog-archive {
    padding-block: var(--taibo-space-lg);
}
.taibo-blog-archive .taibo-panel-dark p {
    margin: 0 0 var(--taibo-space-3);
}
.taibo-blog-archive .taibo-panel-dark p:last-child {
    margin-bottom: 0;
}
/* ===========================================
   BLOG — corrección de padding + tipografía HTML real
   =========================================== */
.taibo-blog-archive {
    padding-block: var(--taibo-space-lg);
}
.taibo-blog-archive .taibo-panel-dark p {
    margin: 0 0 var(--taibo-space-3);
}
.taibo-blog-archive .taibo-panel-dark p:last-child {
    margin-bottom: 0;
}
/* ===========================================
   BLOG — pie emparejado (descripción clara + CTA oscuro), en horizontal
   =========================================== */
.taibo-blog-footer-grid {
    display: grid;
    gap: var(--taibo-space-md);
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}
.taibo-blog-footer-grid .taibo-panel-dark {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
@media (max-width: 560px) {
    .taibo-blog-footer-grid {
        grid-template-columns: 1fr;
    }
}
.taibo-blog-footer-grid .taibo-panel-dark p,
.taibo-blog-footer-grid .taibo-panel-dark div p {
    margin: 0 0 var(--taibo-space-3);
}
.taibo-blog-footer-grid .taibo-panel-dark p:last-child {
    margin-bottom: 0;
}

/* Variante clara — mismo padding/radio que .taibo-panel-dark, fondo distinto.
   El CTA (que se queda oscuro, sin esta clase) destaca por contraste al lado. */
.taibo-panel-dark.taibo-panel-dark--light {
    background: var(--taibo-color-surface);
}
.taibo-panel-dark.taibo-panel-dark--light h2 {
    color: var(--taibo-color-text);
}
.taibo-panel-dark.taibo-panel-dark--light p,
.taibo-panel-dark.taibo-panel-dark--light div {
    color: var(--taibo-color-muted);
}
/* ===========================================
   BLOG — Single de artículo
   =========================================== */
.taibo-post {
    padding-block: var(--taibo-space-lg);
}
.taibo-post__breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-2);
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    margin-bottom: var(--taibo-space-sm);
}
.taibo-post__breadcrumb a {
    color: var(--taibo-color-muted);
    text-decoration: none;
}
.taibo-post__breadcrumb a:hover {
    text-decoration: underline;
}

.taibo-post__silo-badge {
    margin-bottom: var(--taibo-space-sm);
}
.taibo-post__silo-badge a {
    text-decoration: none;
}
.taibo-post__title {
    font-size: var(--taibo-text-h1);
    text-transform: uppercase;
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-post__meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    margin: 0 0 var(--taibo-space-lg);
}
.taibo-post__meta-dot {
    color: var(--taibo-color-accent);
}
.taibo-post__media {
    margin-bottom: var(--taibo-space-lg);
}
.taibo-post__media .taibo-photo-comp {
    max-width: 520px;
}

.taibo-post__content {
    font-size: var(--taibo-text-body);
    line-height: 1.7;
    color: var(--taibo-color-text);
}
.taibo-post__content p {
    margin: 0 0 var(--taibo-space-sm);
}
.taibo-post__content h2 {
    font-size: var(--taibo-text-h2);
    margin: var(--taibo-space-md) 0 var(--taibo-space-xs);
}
.taibo-post__content h3 {
    font-size: var(--taibo-text-h3);
    margin: var(--taibo-space-sm) 0 var(--taibo-space-xs);
}

/* Sigue explorando */
.taibo-post__explore {
    margin-top: var(--taibo-space-lg);
    padding-top: var(--taibo-space-md);
    border-top: 1px solid var(--taibo-color-surface);
}
.taibo-post__explore-title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-md);
}
.taibo-post__explore-lane {
    margin-bottom: var(--taibo-space-md);
}
.taibo-post__footer-label {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    margin: 0 0 var(--taibo-space-xs);
}
.taibo-post__badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--taibo-space-2);
}
.taibo-post__badges a {
    text-decoration: none;
}

.taibo-post__objetivo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--taibo-space-sm);
}
.taibo-post__objetivo-card {
    text-decoration: none;
    color: inherit;
    display: block;
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    border-left: 6px solid var(--taibo-color-accent);
}
.taibo-post__objetivo-kicker {
    display: block;
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: var(--taibo-text-caption);
    margin-bottom: 0.5rem;
}
.taibo-post__objetivo-card h3 {
    font-size: var(--taibo-text-h3);
    margin: 0 0 0.4rem;
}
.taibo-post__objetivo-card p {
    margin: 0 0 0.75rem;
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
}
.taibo-post__objetivo-link {
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
    color: var(--taibo-color-text);
}

/* Comentarios */
.taibo-post__comments {
    margin-top: var(--taibo-space-lg);
}
.taibo-post__comments-title {
    font-size: var(--taibo-text-h2);
    margin: 0 0 var(--taibo-space-sm);
}
.taibo-post__comments-count {
    color: var(--taibo-color-muted);
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-body-sm);
    text-transform: none;
    letter-spacing: 0;
    font-weight: var(--taibo-weight-regular);
}

.taibo-post__comments-gate {
    background: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    text-align: center;
}
.taibo-post__comments-gate h3 {
    font-size: var(--taibo-text-h3);
    margin: 0 0 0.5rem;
}
.taibo-post__comments-gate p {
    margin: 0 0 var(--taibo-space-sm);
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
}
.taibo-post__comments-gate-actions {
    display: flex;
    gap: var(--taibo-space-xs);
    justify-content: center;
    flex-wrap: wrap;
}

.taibo-post__comment-form {
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.taibo-post__comment-author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: var(--taibo-space-sm);
}
.taibo-post__comment-author img {
  object-fit: cover;
    border-radius: 50%;
}
.taibo-post__comment-author strong {
    display: block;
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-body-sm);
}
.taibo-post__comment-author span {
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
}
.taibo-post__comment-form .taibo-form__field {
    margin-bottom: var(--taibo-space-sm);
}
.taibo-post__comment-form textarea {
    width: 100%;
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-sm);
    padding: var(--taibo-space-2);
    font-family: var(--taibo-font-secondary);
    resize: vertical;
}
.taibo-post__comment-upsell,
.taibo-post__comment-account-link {
    display: inline-block;
    margin-top: var(--taibo-space-sm);
    text-decoration: none;
}
.taibo-post__comment-account-link {
    font-family: var(--taibo-font-secondary);
    font-weight: var(--taibo-weight-medium);
    color: var(--taibo-color-accent);
    font-size: var(--taibo-text-body-sm);
}

.taibo-post__comment-list {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
    margin-top: var(--taibo-space-md);
}
.taibo-post__comment-row {
    display: flex;
    gap: var(--taibo-space-sm);
}
.taibo-post__comment-row img {
  object-fit: cover;
    border-radius: 50%;
    flex-shrink: 0;
}
.taibo-post__comment-body {
    flex: 1;
}
.taibo-post__comment-meta {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.taibo-post__comment-meta strong {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-body-sm);
}
.taibo-post__comment-date {
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
}
.taibo-post__comment-text {
    margin: 0.4rem 0 0;
    color: var(--taibo-color-text);
    font-size: var(--taibo-text-body);
}
.taibo-post__comment-actions {
    margin-top: 0.5rem;
}
.taibo-post__comment-actions a {
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-medium);
    text-decoration: none;
}
/* Respuestas anidadas (hijas de un comentario) */
.taibo-post__comment .children {
    list-style: none;
    margin: var(--taibo-space-sm) 0 0;
    padding-left: var(--taibo-space-sm);
    border-left: 2px solid var(--taibo-color-surface);
}
/* ===========================================
   Botones <button> reales (formularios) — .taibo-button se diseñó
   para <a>; los <button> nativos traen chrome del SO que hay que
   anular explícitamente (esto es lo que causaba el rosa en macOS).
   =========================================== */
button.taibo-button {
   padding: .1rem 3rem rem 1rem;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    font-family: inherit;
    font-size: inherit;
}

/* Elementor Pro carga un reset genérico para [type=submit]/[type=button]/
   button (pensado para su widget de Formularios) que compite con nuestras
   clases en especificidad — esto le gana siempre, sin tocar Elementor. */
button.taibo-button.taibo-button--primary,
[type="submit"].taibo-button.taibo-button--primary {
    background-color: var(--taibo-color-accent) !important;
    border: 1px solid transparent !important;
    border-radius: var(--taibo-radius-full) !important;
    color: #ffffff !important;
    padding: var(--taibo-space-xs) var(--taibo-space-sm) !important;
    padding-right: 3rem !important;
    text-align: center !important;
    white-space: nowrap !important;
}
button.taibo-button.taibo-button--secondary,
[type="submit"].taibo-button.taibo-button--secondary {
    border-radius: var(--taibo-radius-full) !important;
    text-align: center !important;
}

/* ===========================================
   Botones <button> reales (formularios) — .taibo-button se diseñó
   para <a>; los <button> nativos traen chrome del SO que hay que
   anular explícitamente (esto es lo que causaba el rosa en macOS).
   =========================================== */
button.taibo-button {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    font-family: inherit;
    font-size: inherit;
}

/* Elementor Pro carga un reset genérico para [type=submit]/[type=button]/
   button (pensado para su widget de Formularios) que compite con nuestras
   clases en especificidad — esto le gana siempre, sin tocar Elementor. */
button.taibo-button.taibo-button--primary,
[type="submit"].taibo-button.taibo-button--primary {
    background-color: var(--taibo-color-accent) !important;
    border: 1px solid transparent !important;
    border-radius: var(--taibo-radius-full) !important;
    color: #ffffff !important;
    padding: var(--taibo-space-xs) var(--taibo-space-sm) !important;
    padding-right: 3rem !important;
    text-align: center !important;
    white-space: nowrap !important;
}
button.taibo-button.taibo-button--secondary,
[type="submit"].taibo-button.taibo-button--secondary {
    border-radius: var(--taibo-radius-full) !important;
    text-align: center !important;
}

/* ===========================================
   ÁREA DE USUARIO
   =========================================== */
.taibo-user-auth-wrap {
    padding-block: var(--taibo-space-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.taibo-user-auth-mark {
    height: 32px;
    width: auto;
    margin-bottom: var(--taibo-space-sm);
}
.taibo-user-auth-card {
    width: 100%;
    max-width: 420px;
    background: #ffffff;
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-lg) var(--taibo-space-md);
}
.taibo-user-auth-title {
    font-size: var(--taibo-text-h2);
    margin: var(--taibo-space-2) 0 var(--taibo-space-md);
}
.taibo-user-auth-error {
    background: rgba(232,98,44,0.1);
    color: var(--taibo-color-accent);
    border-radius: var(--taibo-radius-sm);
    padding: var(--taibo-space-2) var(--taibo-space-sm);
    font-size: var(--taibo-text-body-sm);
    margin: 0 0 var(--taibo-space-sm);
    list-style: none;
}
.taibo-user-auth-error li {
    margin: 0;
}
.taibo-user-auth-forgot {
    text-align: center;
    margin: var(--taibo-space-sm) 0 0;
    font-size: var(--taibo-text-caption);
}
.taibo-user-auth-forgot a {
    color: var(--taibo-color-muted);
}
.taibo-user-auth-switch {
    text-align: center;
    margin: var(--taibo-space-2) 0 0;
    font-size: var(--taibo-text-body-sm);
}
.taibo-user-auth-switch a {
    color: var(--taibo-color-accent);
    font-weight: var(--taibo-weight-medium);
}

/* Barra de navegación negra */
.taibo-user-navbar {
    background: var(--taibo-color-text);
}
.taibo-user-navbar__inner {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-lg);
    padding-block: var(--taibo-space-sm);
}
.taibo-user-navbar__logo {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    font-weight: var(--taibo-weight-bold);
    color: #ffffff;
    letter-spacing: 0.02em;
}
.taibo-user-navbar__logo span {
    color: var(--taibo-color-accent);
}
.taibo-user-navbar__tabs {
    display: flex;
    gap: var(--taibo-space-sm);
}
.taibo-user-navbar__tabs a {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-body-sm);
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    padding: 0.5rem 1rem;
    border-radius: var(--taibo-radius-full);
}
.taibo-user-navbar__tabs a.is-active {
    background: var(--taibo-color-accent);
    color: #ffffff;
}
.taibo-user-navbar__logout {
    margin-left: auto;
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    font-size: var(--taibo-text-body-sm);
}

/* Menú hamburguesa — oculto en escritorio, visible solo en móvil */
.taibo-user-navbar {
    position: relative;
}
.taibo-user-navbar__mobile {
    display: none;
}

@media (max-width: 780px) {
    .taibo-user-navbar__tabs,
    .taibo-user-navbar__inner > .taibo-user-navbar__logout {
        display: none;
    }
    .taibo-user-navbar__inner {
        justify-content: space-between;
    }
    .taibo-user-navbar__mobile {
        display: block;
        margin-left: auto;
    }
    .taibo-user-navbar__hamburger {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 32px;
        height: 32px;
        cursor: pointer;
        list-style: none;
    }
    .taibo-user-navbar__hamburger::-webkit-details-marker {
        display: none;
    }
    .taibo-user-navbar__hamburger span {
        display: block;
        width: 100%;
        height: 2px;
        background: #ffffff;
        border-radius: 2px;
    }
    .taibo-user-navbar__mobile[open] .taibo-user-navbar__hamburger span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }
    .taibo-user-navbar__mobile[open] .taibo-user-navbar__hamburger span:nth-child(2) {
        opacity: 0;
    }
    .taibo-user-navbar__mobile[open] .taibo-user-navbar__hamburger span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }
    .taibo-user-navbar__mobile-panel {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        background: var(--taibo-color-text);
        display: flex;
        flex-direction: column;
        padding: var(--taibo-space-sm) var(--taibo-space-md) var(--taibo-space-md);
        z-index: 100;
    }
    .taibo-user-navbar__mobile-panel a {
        color: rgba(255,255,255,0.75);
        text-decoration: none;
        font-family: var(--taibo-font-primary);
        text-transform: uppercase;
        letter-spacing: 0.04em;
        padding: 0.75rem 0;
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }
    .taibo-user-navbar__mobile-panel a.is-active {
        color: var(--taibo-color-accent);
    }
    .taibo-user-navbar__mobile-panel .taibo-user-navbar__logout {
        color: var(--taibo-color-accent);
        margin: var(--taibo-space-2) 0 0;
    }
}

.taibo-user-area {
    padding-block: var(--taibo-space-lg);
}

.taibo-user-area-greeting {
    margin-bottom: var(--taibo-space-md);
}
.taibo-user-area-greeting__row {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-2);
    flex-wrap: wrap;
}
.taibo-user-area-greeting__row h1 {
    font-size: var(--taibo-text-h1);
    margin: 0;
}
.taibo-user-area-greeting__subtitle {
    color: var(--taibo-color-muted);
    margin: var(--taibo-space-1) 0 0;
}

/* Resumen — objetivo + próxima sesión */
.taibo-user-resumen-top {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: var(--taibo-space-sm);
    margin-bottom: var(--taibo-space-md);
}
@media (max-width: 700px) {
    .taibo-user-resumen-top {
        grid-template-columns: 1fr;
    }
}
.taibo-user-objective-card h2 {
    color: #ffffff;
    font-size: var(--taibo-text-h1);
    margin: var(--taibo-space-2) 0 var(--taibo-space-2);
}
.taibo-user-objective-card__link {
    color: var(--taibo-color-accent-light);
    font-weight: var(--taibo-weight-medium);
    text-decoration: none;
}
.taibo-user-session-card {
    background: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
}
.taibo-user-session-card__label {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    margin: 0 0 var(--taibo-space-2);
}
.taibo-user-session-card h3 {
    font-size: var(--taibo-text-h3);
    margin: 0 0 0.25rem;
}
.taibo-user-session-card__time {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-xxl);
    color: var(--taibo-color-accent);
    margin: 0 0 var(--taibo-space-2);
    line-height: 1;
}
.taibo-user-session-card__meta {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    margin: 0;
}

.taibo-user-area-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--taibo-space-sm);
}
.taibo-user-area-card {
    position: relative;
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.taibo-user-area-card h2 {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    font-size: var(--taibo-text-body);
    letter-spacing: 0.02em;
    margin: 0 0 var(--taibo-space-1);
    padding-right: 2.5rem;
}
.taibo-user-area-card p {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    margin: 0;
}
.taibo-user-area-card__arrow {
    position: absolute;
    top: var(--taibo-space-md);
    right: var(--taibo-space-md);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--taibo-color-accent);
    color: #ffffff;
    border-radius: 50%;
    text-decoration: none;
}

/* Calendario semanal — 6 columnas, no mensual */
.taibo-user-area-calendar__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--taibo-space-md);
    flex-wrap: wrap;
    gap: var(--taibo-space-2);
}
.taibo-user-area-calendar__nav a {
    color: var(--taibo-color-accent);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
    text-decoration: none;
}
.taibo-user-area-calendar__nav h2 {
    font-size: var(--taibo-text-h3);
    margin: 0;
    order: -1;
    flex: 1 0 100%;
    text-align: center;
}
@media (min-width: 700px) {
    .taibo-user-area-calendar__nav h2 {
        order: 0;
        flex: initial;
    }
}
.taibo-user-area-calendar__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-sm);
    margin-bottom: var(--taibo-space-md);
}
@media (min-width: 900px) {
    .taibo-user-area-calendar__grid {
        grid-template-columns: repeat(6, 1fr);
    }
}
.taibo-user-area-calendar__day {
    background: #ffffff;
    border-radius: var(--taibo-radius-md);
    padding: var(--taibo-space-sm);
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.taibo-user-area-calendar__day h3 {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.02em;
    margin: 0;
}
.taibo-user-area-calendar__date {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
    margin: 0 0 var(--taibo-space-2);
}
.taibo-user-area-calendar__category {
    color: var(--taibo-color-accent);
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-caption);
    margin: var(--taibo-space-2) 0 var(--taibo-space-1);
    padding-top: var(--taibo-space-1);
    border-top: 1px solid var(--taibo-color-surface);
}
.taibo-user-area-calendar__day > .taibo-user-area-calendar__category:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
.taibo-user-area-calendar__day ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.taibo-user-area-calendar__day li {
    font-size: var(--taibo-text-body-sm);
}
.taibo-user-area-calendar__day li a {
    color: var(--taibo-color-text);
    text-decoration: none;
}
.taibo-user-area-calendar__day li a:hover {
    color: var(--taibo-color-accent);
    text-decoration: underline;
}
.taibo-user-area-calendar__rest {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    text-align: center;
    margin: var(--taibo-space-md) 0 0;
}
.taibo-user-area-calendar__footer {
    background: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--taibo-space-sm);
}
.taibo-user-area-calendar__footer-label {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    margin: 0 0 var(--taibo-space-1);
}
.taibo-user-area-calendar__footer-value {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-h3);
    margin: 0;
}
.taibo-user-area-calendar__footer-note {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    margin: 0;
}

/* Mi cuenta */
.taibo-user-area-cuenta-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: var(--taibo-space-md);
    align-items: start;
}
@media (max-width: 700px) {
    .taibo-user-area-cuenta-grid {
        grid-template-columns: 1fr;
    }
}
.taibo-user-area-card--form h2 {
    text-transform: none;
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    font-size: var(--taibo-text-h3);
    padding-right: 0;
    margin: var(--taibo-space-2) 0 var(--taibo-space-sm);
}
.taibo-user-area-cuenta-passgroup {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--taibo-space-sm);
}
@media (max-width: 500px) {
    .taibo-user-area-cuenta-passgroup {
        grid-template-columns: 1fr;
    }
}
.taibo-user-area-cuenta-actions {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-md);
    flex-wrap: wrap;
}
.taibo-user-area-changepass summary {
    color: var(--taibo-color-accent);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
    cursor: pointer;
    list-style: none;
}
.taibo-user-area-changepass summary::-webkit-details-marker {
    display: none;
}
.taibo-user-area-changepass[open] summary {
    margin-bottom: var(--taibo-space-sm);
}
.taibo-user-area-changepass .taibo-user-area-cuenta-passgroup {
    margin-top: var(--taibo-space-sm);
    width: 100%;
}
.taibo-user-area-cuenta-side {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
}
.taibo-user-area-membership__label {
    font-family: var(--taibo-font-secondary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: var(--taibo-text-caption);
    color: rgba(255,255,255,0.5);
    margin-bottom: var(--taibo-space-2);
}
.taibo-user-area-membership p {
    margin: var(--taibo-space-2) 0 0;
    font-size: var(--taibo-text-body-sm);
    color: rgba(255,255,255,0.6);
}
.taibo-user-area-schedule-card {
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.taibo-user-area-schedule-card__label {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    margin: 0 0 var(--taibo-space-2);
}
.taibo-user-area-schedule-card__value {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-h3);
    margin: 0 0 var(--taibo-space-2);
}
.taibo-user-area-schedule-card a {
    color: var(--taibo-color-accent);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
    text-decoration: none;
}
.taibo-user-area-notice {
    background: rgba(232,98,44,0.1);
    color: var(--taibo-color-accent);
    border-radius: var(--taibo-radius-sm);
    padding: var(--taibo-space-2) var(--taibo-space-sm);
    font-size: var(--taibo-text-body-sm);
    margin: 0 0 var(--taibo-space-sm);
}
/* ===========================================
   PANEL DE ENTRENADOR
   =========================================== */
.taibo-trainer-navbar {
    background: var(--taibo-color-text);
}
.taibo-trainer-navbar__inner {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-md);
    padding-block: var(--taibo-space-sm);
    flex-wrap: wrap;
}
.taibo-trainer-navbar__logo {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    font-weight: var(--taibo-weight-bold);
    color: #ffffff;
}
.taibo-trainer-navbar__logo span {
    color: var(--taibo-color-accent);
}
.taibo-trainer-navbar__tabs {
    display: flex;
    gap: var(--taibo-space-sm);
}
.taibo-trainer-navbar__tabs a {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-body-sm);
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    padding: 0.5rem 1rem;
    border-radius: var(--taibo-radius-full);
}
.taibo-trainer-navbar__tabs a.is-active {
    background: var(--taibo-color-accent);
    color: #ffffff;
}
.taibo-trainer-navbar__badge {
    margin: 0 0 0 auto;
}
.taibo-trainer-navbar__name {
    color: rgba(255,255,255,0.8);
    font-size: var(--taibo-text-body-sm);
}
.taibo-trainer-navbar__logout {
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    font-size: var(--taibo-text-body-sm);
}

/* Menú hamburguesa — oculto en escritorio, visible solo en móvil */
.taibo-trainer-navbar__mobile {
    display: none;
}

@media (max-width: 780px) {
    .taibo-trainer-navbar__tabs,
    .taibo-trainer-navbar__badge,
    .taibo-trainer-navbar__inner > .taibo-trainer-navbar__name,
    .taibo-trainer-navbar__inner > .taibo-trainer-navbar__logout {
        display: none;
    }
    .taibo-trainer-navbar__inner {
        justify-content: space-between;
    }
    .taibo-trainer-navbar__mobile {
        display: block;
        margin-left: auto;
    }
    .taibo-trainer-navbar__hamburger {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 32px;
        height: 32px;
        cursor: pointer;
        list-style: none;
    }
    .taibo-trainer-navbar__hamburger::-webkit-details-marker {
        display: none;
    }
    .taibo-trainer-navbar__hamburger span {
        display: block;
        width: 100%;
        height: 2px;
        background: #ffffff;
        border-radius: 2px;
    }
    .taibo-trainer-navbar__mobile[open] .taibo-trainer-navbar__hamburger span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }
    .taibo-trainer-navbar__mobile[open] .taibo-trainer-navbar__hamburger span:nth-child(2) {
        opacity: 0;
    }
    .taibo-trainer-navbar__mobile[open] .taibo-trainer-navbar__hamburger span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }
    .taibo-trainer-navbar__mobile-panel {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        background: var(--taibo-color-text);
        display: flex;
        flex-direction: column;
        padding: var(--taibo-space-sm) var(--taibo-space-md) var(--taibo-space-md);
        z-index: 100;
    }
    .taibo-trainer-navbar__mobile-panel a {
        color: rgba(255,255,255,0.75);
        text-decoration: none;
        font-family: var(--taibo-font-primary);
        text-transform: uppercase;
        letter-spacing: 0.04em;
        padding: 0.75rem 0;
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }
    .taibo-trainer-navbar__mobile-panel a.is-active {
        color: var(--taibo-color-accent);
    }
    .taibo-trainer-navbar__mobile-meta {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: var(--taibo-space-2);
        margin-top: var(--taibo-space-sm);
    }
    .taibo-trainer-navbar__mobile-meta .taibo-trainer-navbar__name {
        color: rgba(255,255,255,0.7);
        font-size: var(--taibo-text-body-sm);
    }
    .taibo-trainer-navbar__mobile-meta .taibo-trainer-navbar__logout {
        color: var(--taibo-color-accent);
    }
}
.taibo-trainer-navbar {
    position: relative;
}

.taibo-trainer-panel {
    padding-block: var(--taibo-space-lg);
}

/* Estas 2 páginas (panel de entrenador y área de usuario) son tipo
   aplicación, no páginas de marketing — en móvil aprovechan casi
   todo el ancho de la pantalla. Va limitado a .taibo-panel-body
   para no afectar al padding del resto del sitio. */
@media (max-width: 480px) {
    .taibo-panel-body .taibo-container {
        padding-inline: 2px;
    }
}

.taibo-trainer-identity-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: var(--taibo-space-md);
    margin-top: var(--taibo-space-2);
}
@media (max-width: 700px) {
    .taibo-trainer-identity-grid { grid-template-columns: 1fr; }
}
.taibo-trainer-identity-image {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-2);
}
.taibo-trainer-identity-image label:first-child {
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-body-sm);
}
.taibo-trainer-identity-image__preview {
    width: 100%;
    max-width: 220px;
    border-radius: var(--taibo-radius-md);
    object-fit: cover;
}
.taibo-trainer-identity-image__empty {
    width: 100%;
    max-width: 220px;
    aspect-ratio: 4/5;
    background: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
    text-align: center;
    padding: var(--taibo-space-sm);
}
.taibo-trainer-file-label {
    display: inline-block;
    text-align: center;
    width: fit-content;
    cursor: pointer;
}
.taibo-trainer-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.5rem;
}
.taibo-trainer-days-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
}
@media (max-width: 380px) {
    .taibo-trainer-days-grid {
        grid-template-columns: 1fr;
    }
}

.taibo-trainer-exercise-group {
    margin-bottom: var(--taibo-space-md);
}
.taibo-trainer-exercise-group__title {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 var(--taibo-space-2);
    padding-bottom: var(--taibo-space-1);
    border-bottom: 1px solid var(--taibo-color-surface);
}
.taibo-trainer-exercise-group__title span {
    background: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-full);
    padding: 0.1rem 0.55rem;
    font-size: 0.7rem;
}
.taibo-trainer-exercise-row {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-sm);
    padding: 0.6rem 0.4rem;
    border-bottom: 1px solid var(--taibo-color-surface);
}
.taibo-trainer-exercise-thumb {
    width: 40px;
    height: 40px;
    border-radius: var(--taibo-radius-sm);
    object-fit: cover;
    flex-shrink: 0;
}
.taibo-trainer-exercise-thumb--empty {
    background: var(--taibo-color-surface);
    display: block;
}
.taibo-trainer-exercise-row__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.taibo-trainer-exercise-row__body span {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
}
.taibo-trainer-exercise-row__edit {
    color: var(--taibo-color-accent);
    font-size: var(--taibo-text-caption);
    text-decoration: none;
    flex-shrink: 0;
}

.taibo-trainer-plans-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--taibo-space-sm);
}
.taibo-trainer-plan-card h2 {
    font-size: var(--taibo-text-h3);
    margin: var(--taibo-space-2) 0 var(--taibo-space-2);
}
.taibo-trainer-plan-card__clients {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin: var(--taibo-space-sm) 0;
}
.taibo-trainer-plan-card__clients a {
    color: var(--taibo-color-text);
    text-decoration: none;
    font-size: var(--taibo-text-body-sm);
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--taibo-color-surface);
}
.taibo-trainer-plan-card__link {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
    text-decoration: none;
}

.taibo-trainer-routine-grid {
    display: flex;
    gap: var(--taibo-space-sm);
    overflow-x: auto;
    padding-bottom: var(--taibo-space-2);
    margin-bottom: var(--taibo-space-md);
}
.taibo-trainer-routine-day {
    flex: 0 0 220px;
    background: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-md);
    padding: var(--taibo-space-sm);
}
.taibo-trainer-routine-day h3 {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    font-size: var(--taibo-text-body-sm);
    margin: 0 0 var(--taibo-space-2);
}
.taibo-trainer-routine-day select {
    width: 100%;
    margin-bottom: 0.5rem;
    padding: 0.5rem;
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-sm);
    font-size: var(--taibo-text-caption);
    background: #ffffff;
}
.taibo-trainer-routine-day select:disabled {
    color: var(--taibo-color-muted);
    background: var(--taibo-color-surface);
}
.taibo-trainer-routine-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: var(--taibo-space-2);
}
.taibo-trainer-routine-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    background: #ffffff;
    border-radius: var(--taibo-radius-sm);
    padding: 0.5rem 0.6rem;
    font-size: var(--taibo-text-caption);
    cursor: pointer;
}
.taibo-trainer-routine-item input {
    margin-top: 0.15rem;
}
.taibo-trainer-routine-item em {
    display: block;
    font-style: normal;
    color: var(--taibo-color-muted);
    font-size: 0.7rem;
}
.taibo-trainer-routine-zona-group {
    margin-bottom: 0.6rem;
}
.taibo-trainer-routine-zona-title {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.68rem;
    color: var(--taibo-color-accent);
    margin: 0.6rem 0 0.3rem;
    padding-top: 0.4rem;
    border-top: 1px solid rgba(0,0,0,0.06);
}
.taibo-trainer-routine-zona-group:first-child .taibo-trainer-routine-zona-title {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
.taibo-trainer-routine-empty {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
    text-align: center;
    margin: var(--taibo-space-md) 0 0;
}

.taibo-trainer-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--taibo-space-sm);
    flex-wrap: wrap;
    margin-top: var(--taibo-space-2);
}
.taibo-trainer-title-row .taibo-trainer-title {
    margin: 0;
}
.taibo-trainer-new-client {
    margin-bottom: var(--taibo-space-md);
}
@media (max-width: 480px) {
    .taibo-trainer-title-row {
        flex-direction: column;
        align-items: stretch;
    }
    .taibo-trainer-title-row .taibo-button {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
}

.taibo-trainer-title {
    font-size: var(--taibo-text-h1);
    margin: var(--taibo-space-2) 0 var(--taibo-space-1);
}
.taibo-trainer-subtitle {
    color: var(--taibo-color-muted);
    margin: var(--taibo-space-sm) 0 var(--taibo-space-md);
    max-width: 60ch;
}
.taibo-trainer-soon {
    color: var(--taibo-color-muted);
    font-style: italic;
}

.taibo-trainer-search {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-sm);
    margin-bottom: var(--taibo-space-md);
    flex-wrap: wrap;
}
.taibo-trainer-search label {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    font-size: var(--taibo-text-caption);
    letter-spacing: 0.04em;
}
.taibo-trainer-search input[type="text"] {
    flex: 1;
    min-width: 240px;
    max-width: 420px;
    padding: 0.65rem 1rem;
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-full);
    font-family: var(--taibo-font-secondary);
}
.taibo-trainer-search__count {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
}

.taibo-trainer-client-table {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
    margin-top: var(--taibo-space-sm);
}
.taibo-trainer-client-table__head {
    display: grid;
    grid-template-columns: 2fr 1.2fr 1.6fr 1fr;
    gap: var(--taibo-space-sm);
    padding: 0 var(--taibo-space-md);
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
}
.taibo-trainer-client-row {
    display: grid;
    grid-template-columns: 2fr 1.2fr 1.6fr 1fr auto;
    align-items: center;
    gap: var(--taibo-space-sm);
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    min-width: 0;
    overflow: hidden;
    padding: var(--taibo-space-sm) var(--taibo-space-md);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
@media (max-width: 900px) {
    .taibo-trainer-client-table__head { display: none; }
    .taibo-trainer-client-row {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "name arrow"
            "level level"
            "plans plans"
            "since since";
        row-gap: 0.6rem;
        padding-block: var(--taibo-space-md);
    }
    .taibo-trainer-client-row__name { grid-area: name; }
    .taibo-trainer-client-row__arrow { grid-area: arrow; }
    .taibo-trainer-client-row__level { grid-area: level; }
    .taibo-trainer-client-row__plans { grid-area: plans; }
    .taibo-trainer-client-row__since { grid-area: since; color: var(--taibo-color-muted); font-size: var(--taibo-text-body-sm); }
}
.taibo-trainer-client-row__name {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.taibo-trainer-client-row__name span {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
}
.taibo-trainer-client-row__plans {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    min-width: 0;
    max-width: 100%;
}
.taibo-trainer-client-row__noplan {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
}
.taibo-trainer-client-row__arrow {
    color: var(--taibo-color-accent);
    font-size: 1.25rem;
}

.taibo-trainer-back {
    padding: 0 !important;
    margin-bottom: var(--taibo-space-sm);
}
.taibo-trainer-client-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--taibo-space-sm);
    padding-bottom: var(--taibo-space-sm);
    border-bottom: 1px solid var(--taibo-color-surface);
    margin-bottom: var(--taibo-space-lg);
}
.taibo-trainer-client-header h1 {
    font-size: var(--taibo-text-h1);
    margin: 0;
}
.taibo-trainer-client-header__since {
    margin-left: auto;
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
}

.taibo-trainer-block {
    background: #ffffff;
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-lg);
    margin-bottom: var(--taibo-space-md);
}
@media (max-width: 480px) {
    .taibo-trainer-block {
        padding: var(--taibo-space-sm) 0.5rem;
        border-left: none;
        border-right: none;
        border-radius: 0;
        margin-inline: 0;
    }
}
.taibo-trainer-block h2 {
    font-size: var(--taibo-text-h2);
    margin: var(--taibo-space-2) 0 var(--taibo-space-md);
}
.taibo-trainer-block .taibo-pill-badge {
    margin-bottom: var(--taibo-space-md);
}
.taibo-trainer-block .taibo-form__field {
    margin-bottom: var(--taibo-space-lg);
}
.taibo-trainer-block .taibo-form__field:last-child {
    margin-bottom: 0;
}
.taibo-trainer-block .taibo-form__field label,
.taibo-trainer-block .taibo-form__field .taibo-trainer-label-block {
    margin-bottom: 0.4rem;
    display: block;
}
.taibo-trainer-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--taibo-space-sm);
}
@media (max-width: 800px) {
    .taibo-trainer-grid-3 { grid-template-columns: 1fr; }
}
.taibo-trainer-hint {
    color: var(--taibo-color-muted);
    font-weight: var(--taibo-weight-regular);
    font-size: var(--taibo-text-caption);
}
.taibo-trainer-readonly {
    background: var(--taibo-color-surface) !important;
    color: var(--taibo-color-muted);
}
.taibo-trainer-label-block {
    display: block;
    margin-bottom: 0.6rem;
}
.taibo-trainer-plan-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.65rem 1.5rem;
}
@media (max-width: 600px) {
    .taibo-trainer-plan-grid { grid-template-columns: 1fr; }
}
.taibo-trainer-plan-option {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: var(--taibo-text-body-sm);
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--taibo-color-surface);
    border-radius: var(--taibo-radius-sm);
    cursor: pointer;
}
.taibo-trainer-plan-option.is-checked {
    background: rgba(232,98,44,0.08);
    border-color: var(--taibo-color-accent);
}
.taibo-trainer-membership {
    margin-top: var(--taibo-space-md);
    padding-top: var(--taibo-space-sm);
    border-top: 1px solid var(--taibo-color-surface);
}
.taibo-trainer-membership label {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-weight: var(--taibo-weight-medium);
    cursor: pointer;
}
.taibo-trainer-membership p {
    margin: 0.4rem 0 0 1.7rem;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    max-width: 46ch;
}

.taibo-trainer-calendar-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--taibo-space-md);
    flex-wrap: wrap;
    gap: var(--taibo-space-2);
}
.taibo-trainer-calendar-nav a {
    color: var(--taibo-color-accent);
    text-decoration: none;
    font-size: var(--taibo-text-body-sm);
    text-transform: capitalize;
}
.taibo-trainer-calendar-nav h2 {
    font-size: var(--taibo-text-h3);
    margin: 0;
}
.taibo-trainer-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    background: #ffffff;
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-sm);
    margin-bottom: var(--taibo-space-md);
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.taibo-trainer-calendar-weekday {
    text-align: center;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    padding: 0.3rem 0;
}
.taibo-trainer-calendar-day {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    padding: 0.6rem 0;
    border-radius: var(--taibo-radius-sm);
    text-decoration: none;
    color: var(--taibo-color-text);
    font-size: var(--taibo-text-body-sm);
}
.taibo-trainer-calendar-day.is-outside {
    color: var(--taibo-color-muted);
    opacity: 0.5;
}
.taibo-trainer-calendar-day.is-selected {
    background: rgba(232,98,44,0.12);
    color: var(--taibo-color-accent);
    font-weight: var(--taibo-weight-medium);
}
.taibo-trainer-calendar-dot {
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--taibo-color-accent);
}
.taibo-trainer-calendar-daytitle {
    font-family: var(--taibo-font-primary);
    text-transform: capitalize;
    font-size: var(--taibo-text-h3);
    margin: var(--taibo-space-2) 0 var(--taibo-space-sm);
}
.taibo-trainer-session-row {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-sm);
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--taibo-color-surface);
    flex-wrap: wrap;
}
.taibo-trainer-session-row a {
    color: var(--taibo-color-text);
    text-decoration: underline;
    text-decoration-color: var(--taibo-color-accent);
}
.taibo-trainer-session-row span {
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    margin-left: auto;
}
.taibo-trainer-session-row__remove {
    margin: 0;
}
@media (max-width: 480px) {
    .taibo-trainer-session-row {
        align-items: flex-start;
    }
    .taibo-trainer-session-row a {
        flex: 1 1 100%;
    }
    .taibo-trainer-session-row span {
        margin-left: 0;
    }
    .taibo-trainer-session-row__remove {
        margin-left: auto;
    }
}
.taibo-trainer-calendar-addlabel {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
    margin: var(--taibo-space-md) 0 var(--taibo-space-2);
}
.taibo-trainer-calendar-addform {
    display: flex;
    gap: var(--taibo-space-sm);
    align-items: flex-end;
    flex-wrap: wrap;
}
.taibo-trainer-calendar-addform .taibo-form__field {
    margin: 0;
    flex: 1 1 160px;
    min-width: 140px;
}
.taibo-trainer-calendar-addform input,
.taibo-trainer-calendar-addform select {
    width: 100%;
    box-sizing: border-box;
}
.taibo-trainer-calendar-addform button {
    flex: 0 0 auto;
}
@media (max-width: 480px) {
    .taibo-trainer-calendar-addform {
        flex-direction: column;
        align-items: stretch;
    }
    .taibo-trainer-calendar-addform .taibo-form__field {
        flex-basis: auto;
    }
}

.taibo-trainer-generate-sessions {
    padding: var(--taibo-space-md) var(--taibo-space-lg);
    background: var(--taibo-color-surface);
    border-radius: var(--taibo-radius-lg);
    margin: var(--taibo-space-lg);
  max-width: var(--taibo-width-narrow);
}
.taibo-trainer-generate-sessions .taibo-trainer-hint {
    margin: var(--taibo-space-2) 0 0;
    max-width: 60ch;
}

.taibo-trainer-danger-zone {
    margin-top: var(--taibo-space-lg);
    padding-top: var(--taibo-space-md);
    border-top: 1px solid var(--taibo-color-surface);
}
.taibo-button--danger {
    background-color: #c0392b;
    color: #ffffff;
    border-color: transparent;
}
/* Variante clara del marquee — para contextos donde el fondo negro
   no encaja (aquí, la franja "Hasta hoy" sobre fondo claro de la Home).
   Mismo formato de línea y separadores, solo cambia fondo y color. */
.taibo-marquee--light {
    background: var(--taibo-color-surface);
}
.taibo-marquee--light .taibo-marquee__item {
    color: var(--taibo-color-muted);
}

/* =========================================
   MÉTODO — Rediseño editorial (Etapa 1: Hero + Cita fundacional)
   Reutiliza de la Home: .taibo-home-photo-frame, .taibo-container--home-wide,
   .taibo-hero-grid--home, .taibo-home-hero-v2__title — sin duplicar CSS.
   ========================================= */

.taibo-metodo-eyebrow {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-sm);
    margin-bottom: var(--taibo-space-md);
}
.taibo-metodo-eyebrow__line {
    width: 34px;
    height: 1px;
    background: var(--taibo-color-accent);
    display: block;
}
.taibo-metodo-eyebrow span:last-child {
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-semibold, 600);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--taibo-color-muted);
}

.taibo-metodo-hero__cta-row {
    margin-top: var(--taibo-space-md);
    display: flex;
    align-items: stretch;
    border-top: 1px solid rgba(26,26,26,0.16);
    border-bottom: 1px solid rgba(26,26,26,0.16);
    flex-wrap: wrap;
}
.taibo-metodo-hero__meta {
    display: flex;
    align-items: center;
    gap: var(--taibo-space-md);
    padding: 0 var(--taibo-space-md);
}
.taibo-metodo-hero__meta span {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--taibo-color-text);
}
.taibo-metodo-hero__divider {
    width: 1px;
    height: 22px;
    background: rgba(26,26,26,0.18);
    display: block;
}
.taibo-metodo-hero__footnote {
    margin: var(--taibo-space-sm) 0 0;
    font-size: var(--taibo-text-caption);
    color: var(--taibo-color-muted);
}

/* Cita fundacional — sección negra propia, patrón de rejilla +
   resplandor radial, igual concepto que .taibo-home-process pero
   con contenido distinto (cita + 3 pasos, no 5 fases). */
.taibo-metodo-quote {
    position: relative;
    background: var(--taibo-color-text);
    overflow: hidden;
    margin-top: var(--taibo-space-xl, 4rem);
    padding: var(--taibo-space-xl, 4rem) 0;
}
.taibo-metodo-quote__bg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
    background-size: 80px 80px;
}
.taibo-metodo-quote__glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 76% 40%, rgba(232,98,44,0.18), transparent 46%);
}
.taibo-metodo-quote__grid {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-lg);
}
@media (min-width: 900px) {
    .taibo-metodo-quote__grid {
        grid-template-columns: 1.5fr 1fr;
        gap: 5rem;
        align-items: center;
    }
}
.taibo-metodo-quote__kicker {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-semibold, 600);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
}
.taibo-metodo-quote__block {
    margin: var(--taibo-space-md) 0 0;
}
.taibo-metodo-quote__block p {
    margin: 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: clamp(1.75rem, 4vw + 1rem, 3.5rem);
    line-height: 1.08;
    color: #ffffff;
    max-width: 26ch;
}
.taibo-metodo-quote__block footer {
    margin: var(--taibo-space-md) 0 0;
    padding-top: var(--taibo-space-sm);
    border-top: 1px solid rgba(255,255,255,0.2);
    font-size: var(--taibo-text-body-lg);
    line-height: 1.6;
    color: rgba(255,255,255,0.62);
    max-width: 52ch;
}
.taibo-metodo-quote__cite {
    display: block;
    margin-top: var(--taibo-space-sm);
    font-style: normal;
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--taibo-color-accent);
}
.taibo-metodo-quote__steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    border-top: 1px solid rgba(255,255,255,0.18);
}
.taibo-metodo-quote__steps li {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: var(--taibo-space-sm);
    align-items: center;
    padding: var(--taibo-space-md) 0;
    border-bottom: 1px solid rgba(255,255,255,0.14);
}
.taibo-metodo-quote__num {
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: 2.1rem;
    line-height: 1;
    color: var(--taibo-color-accent);
}
.taibo-metodo-quote__label {
    display: block;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: 1.5rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #ffffff;
}
.taibo-metodo-quote__desc {
    display: block;
    margin-top: 0.3rem;
    font-size: var(--taibo-text-body-sm);
    color: rgba(255,255,255,0.55);
}

/* =========================================
   MÉTODO — Etapa 2: Dos ejes + Cinco principios
   ========================================= */

.taibo-metodo-section__header {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
    border-bottom: 2px solid var(--taibo-color-text);
    padding-bottom: var(--taibo-space-md);
    margin-bottom: var(--taibo-space-lg);
}
@media (min-width: 900px) {
    .taibo-metodo-section__header {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
        gap: var(--taibo-space-lg);
    }
}
.taibo-metodo-section__intro {
    margin: 0;
    font-size: var(--taibo-text-body-lg);
    line-height: 1.6;
    color: var(--taibo-color-muted);
    max-width: 40ch;
}

/* Marco de foto simplificado — sin leyenda superpuesta, para los
   ejes (donde el original de la Home lleva demasiada información) */
.taibo-home-photo-frame--simple .taibo-home-photo-frame__image {
    aspect-ratio: 4 / 5;
}
.taibo-home-photo-frame--simple .taibo-home-photo-frame__image img {
    height: 100% !important;
    object-fit: cover;
}
.taibo-home-photo-frame__accent--left {
    left: auto;
    right: auto;
    bottom: -1px;
    left: -1px;
    top: auto;
    width: 60px;
    height: 3px;
}
.taibo-home-photo-frame--simple .taibo-home-photo-frame__accent {
    top: auto;
    bottom: -1px;
    right: -1px;
    left: auto;
    width: 60px;
    height: 3px;
}

.taibo-metodo-axis-row {
    padding: var(--taibo-space-lg) 0;
    border-bottom: 1px solid rgba(26,26,26,0.16);
}
.taibo-metodo-axis__eyebrow {
    display: flex;
    align-items: baseline;
    gap: var(--taibo-space-sm);
}
.taibo-metodo-axis__num {
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: 2rem;
    line-height: 1;
    color: var(--taibo-color-accent);
}
.taibo-metodo-axis__label {
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-semibold, 600);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--taibo-color-muted);
}
.taibo-metodo-axis__title {
    margin: var(--taibo-space-sm) 0 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: clamp(1.6rem, 3vw + 1rem, 2.2rem);
    line-height: 1.08;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: var(--taibo-color-text);
    max-width: 24ch;
}
.taibo-metodo-axis__text {
    margin: var(--taibo-space-sm) 0 0;
    font-size: var(--taibo-text-body-lg);
    line-height: 1.7;
    color: var(--taibo-color-muted);
    max-width: 54ch;
}
.taibo-metodo-axis__footer {
    display: flex;
    gap: var(--taibo-space-lg);
    margin-top: var(--taibo-space-md);
    padding-top: var(--taibo-space-sm);
    border-top: 1px solid rgba(26,26,26,0.16);
}
.taibo-metodo-axis__footer span {
    font-size: var(--taibo-text-caption);
    line-height: 1.5;
    color: var(--taibo-color-text);
    max-width: 18ch;
}

/* Lista de principios — misma familia visual que la Home, pero sin
   columna de icono (el mockup de Método no lleva iconos aquí). */
.taibo-metodo-principles-list {
    list-style: none;
    margin: var(--taibo-space-md) 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}
.taibo-metodo-principles-list li {
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: var(--taibo-space-sm);
    align-items: start;
    padding: var(--taibo-space-md) 0;
    border-top: 1px solid rgba(26,26,26,0.16);
}
.taibo-metodo-principles-list li:last-child {
    border-bottom: 1px solid rgba(26,26,26,0.16);
}
.taibo-metodo-principles-list__num {
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: 2rem;
    line-height: 0.9;
    color: var(--taibo-color-accent);
}
.taibo-metodo-principles-list h3 {
    margin: 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: 1.35rem;
    line-height: 1.15;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--taibo-color-text);
}
.taibo-metodo-principles-list p {
    margin: 0.5rem 0 0;
    font-size: var(--taibo-text-body);
    line-height: 1.7;
    color: var(--taibo-color-muted);
    max-width: 52ch;
}

/* =========================================
   MÉTODO — Etapa 3: Cinco fases + Fase 04 + Qué diferencia + CTA final
   ========================================= */

/* Cuadrícula de 5 fases — clara, sobre papel (a diferencia de la
   Home, que la lleva en negro) */
.taibo-metodo-fases-grid {
    list-style: none;
    margin: var(--taibo-space-md) 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    border-top: 1px solid rgba(26,26,26,0.2);
}
@media (min-width: 900px) {
    .taibo-metodo-fases-grid {
        grid-template-columns: repeat(5, 1fr);
    }
}
.taibo-metodo-fases-grid li {
    position: relative;
    padding: var(--taibo-space-md) var(--taibo-space-sm) var(--taibo-space-lg);
    border-bottom: 1px solid rgba(26,26,26,0.14);
}
@media (min-width: 900px) {
    .taibo-metodo-fases-grid li {
        border-bottom: none;
        border-right: 1px solid rgba(26,26,26,0.14);
    }
    .taibo-metodo-fases-grid li:last-child {
        border-right: none;
    }
}
.taibo-metodo-fases-grid__dot {
    position: absolute;
    top: -5px;
    left: 0;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--taibo-color-accent);
}
.taibo-metodo-fases-grid__dot--critical {
    top: -7px;
    width: 13px;
    height: 13px;
    box-shadow: 0 0 0 5px rgba(232,98,44,0.18);
}
.taibo-metodo-fases-grid__fase {
    display: block;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: 0.85rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--taibo-color-muted);
}
.taibo-metodo-fases-grid__fase--critical {
    color: #C24B18;
}
.taibo-metodo-fases-grid li h3 {
    margin: var(--taibo-space-2) 0 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: 1.6rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--taibo-color-text);
}
.taibo-metodo-fases-grid li p {
    margin: var(--taibo-space-2) 0 0;
    font-size: var(--taibo-text-body-sm);
    line-height: 1.65;
    color: var(--taibo-color-muted);
}
.taibo-metodo-fases-grid__item--critical {
    background: linear-gradient(to bottom, rgba(232,98,44,0.12), rgba(232,98,44,0));
}
.taibo-metodo-fases-grid__item--critical p {
    color: var(--taibo-color-text-secondary, #4A4540);
}

/* Fase 04 desarrollada — panel de 2 columnas, con gráfico SVG del
   momento crítico. Marcado y clases exclusivas de Método. */
.taibo-metodo-fase04 {
    margin-top: var(--taibo-space-lg);
    border: 1px solid rgba(26,26,26,0.2);
    background: #FBFAF8;
    display: grid;
    grid-template-columns: 1fr;
}
@media (min-width: 900px) {
    .taibo-metodo-fase04 {
        grid-template-columns: 300px 1fr;
    }
}
.taibo-metodo-fase04__side {
    padding: var(--taibo-space-lg) var(--taibo-space-md);
    border-bottom: 1px solid rgba(26,26,26,0.16);
    background: var(--taibo-color-surface);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
@media (min-width: 900px) {
    .taibo-metodo-fase04__side {
        border-bottom: none;
        border-right: 1px solid rgba(26,26,26,0.16);
    }
}
.taibo-metodo-fase04__num {
    display: block;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: 4rem;
    line-height: 0.85;
    color: var(--taibo-color-accent);
}
.taibo-metodo-fase04__title {
    margin: var(--taibo-space-sm) 0 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-bold);
    font-size: 2rem;
    line-height: 1;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--taibo-color-text);
}
.taibo-metodo-fase04__tag {
    display: inline-block;
    margin-top: var(--taibo-space-2);
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-semibold, 600);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #C24B18;
    border-bottom: 1px solid rgba(194,75,24,0.4);
    padding-bottom: 0.3rem;
}
.taibo-metodo-fase04__chart {
    width: 100%;
    height: auto;
    margin-top: var(--taibo-space-md);
    display: block;
}
.taibo-metodo-fase04__body {
    padding: var(--taibo-space-lg) var(--taibo-space-md);
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
    justify-content: center;
}
.taibo-metodo-fase04__lead {
    margin: 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: clamp(1.2rem, 2vw + 1rem, 1.7rem);
    line-height: 1.32;
    color: var(--taibo-color-text);
    max-width: 44ch;
}
.taibo-metodo-fase04__text {
    margin: 0;
    font-size: var(--taibo-text-body);
    line-height: 1.75;
    color: var(--taibo-color-muted);
    max-width: 62ch;
}
.taibo-metodo-fase04__cases {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-sm);
    margin-top: var(--taibo-space-2);
    padding-top: var(--taibo-space-sm);
    border-top: 1px solid rgba(26,26,26,0.16);
}
@media (min-width: 640px) {
    .taibo-metodo-fase04__cases {
        grid-template-columns: repeat(3, 1fr);
    }
}
.taibo-metodo-fase04__cases > div {
    padding-top: var(--taibo-space-2);
}
@media (min-width: 640px) {
    .taibo-metodo-fase04__cases > div:not(:last-child) {
        border-right: 1px solid rgba(26,26,26,0.14);
        padding-right: var(--taibo-space-sm);
    }
}
.taibo-metodo-fase04__cases span {
    display: block;
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--taibo-color-accent);
}
.taibo-metodo-fase04__cases p {
    margin: 0.4rem 0 0;
    font-size: var(--taibo-text-body-sm);
    line-height: 1.6;
    color: var(--taibo-color-text-secondary, #4A4540);
}

/* Qué diferencia al método — título propio (44px, no 56px como el
   resto), columna grande + lista de 4 */
.taibo-metodo-section__header--thin {
    border-bottom: 1px solid rgba(26,26,26,0.2);
}
.taibo-metodo-diff__title {
    margin: var(--taibo-space-2) 0 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-medium);
    font-size: clamp(1.6rem, 3vw + 1rem, 2.75rem);
    line-height: 1.04;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--taibo-color-text);
}
.taibo-metodo-diff {
    display: grid;
    grid-template-columns: 1fr;
    border-bottom: 1px solid rgba(26,26,26,0.16);
}
@media (min-width: 900px) {
    .taibo-metodo-diff {
        grid-template-columns: 1.45fr 1fr;
    }
}
.taibo-metodo-diff__lead {
    padding: var(--taibo-space-lg) 0;
}
@media (min-width: 900px) {
    .taibo-metodo-diff__lead {
        padding: var(--taibo-space-lg) var(--taibo-space-lg) var(--taibo-space-lg) 0;
        border-right: 1px solid rgba(26,26,26,0.14);
    }
}
.taibo-metodo-diff__lead-head {
    display: flex;
    align-items: baseline;
    gap: var(--taibo-space-sm);
}
.taibo-metodo-diff__lead-head h3 {
    margin: 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: clamp(1.4rem, 2.5vw + 1rem, 2rem);
    line-height: 1.1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: var(--taibo-color-text);
    max-width: 26ch;
}
.taibo-metodo-diff__lead p {
    margin: var(--taibo-space-sm) 0 0;
    font-size: var(--taibo-text-body-lg);
    line-height: 1.7;
    color: var(--taibo-color-text-secondary, #4A4540);
    max-width: 56ch;
}
.taibo-metodo-diff__num {
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: 3rem;
    line-height: 0.85;
    color: var(--taibo-color-accent);
    flex-shrink: 0;
}
.taibo-metodo-diff__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}
.taibo-metodo-diff__list li {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: var(--taibo-space-sm);
    align-items: start;
    padding: var(--taibo-space-sm) 0 var(--taibo-space-sm) var(--taibo-space-md);
    border-bottom: 1px solid rgba(26,26,26,0.14);
}
.taibo-metodo-diff__num--sm {
    font-size: 1.9rem;
}
.taibo-metodo-diff__list p {
    margin: 0;
    font-size: var(--taibo-text-body);
    line-height: 1.65;
    color: var(--taibo-color-text-secondary, #4A4540);
}
.taibo-metodo-diff__list strong {
    font-weight: var(--taibo-weight-semibold, 600);
    color: var(--taibo-color-text);
}

/* Enlace de descarga del PDF, en el CTA final */
.taibo-metodo-pdf-link {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: var(--taibo-space-md);
    font-size: var(--taibo-text-body-sm);
    color: rgba(255,255,255,0.7);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.taibo-metodo-pdf-link:hover {
    color: #ffffff;
}
/* =========================================
   PÁGINA DE LOGIN /login/
   ========================================= */
.taibo-login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--taibo-color-surface);
    padding: var(--taibo-space-md);
}
.taibo-login-card {
    width: 100%;
    max-width: 420px;
    background: #ffffff;
    border: 1px solid rgba(26,26,26,0.14);
    padding: var(--taibo-space-lg);
}
.taibo-login-card__logo {
    display: block;
    text-align: center;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    font-size: 1.1rem;
    color: var(--taibo-color-text);
    text-decoration: none;
    margin-bottom: var(--taibo-space-lg);
}
.taibo-login-card__logo span {
    color: var(--taibo-color-accent);
}
.taibo-login-card__title {
    margin: 0 0 var(--taibo-space-md);
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: 1.5rem;
    text-align: center;
    color: var(--taibo-color-text);
}
.taibo-login-card__lostpass {
    margin: var(--taibo-space-sm) 0 0;
    text-align: center;
    font-size: var(--taibo-text-body-sm);
}
.taibo-login-card__lostpass a {
    color: var(--taibo-color-muted);
}
.taibo-login-card__register {
    margin-top: var(--taibo-space-lg);
    padding-top: var(--taibo-space-md);
    border-top: 1px solid rgba(26,26,26,0.14);
}
.taibo-login-card__register summary {
    cursor: pointer;
    font-size: var(--taibo-text-body-sm);
    color: var(--taibo-color-accent);
    text-align: center;
    list-style: none;
}
.taibo-login-card__register summary::-webkit-details-marker {
    display: none;
}
.taibo-login-card__register[open] summary {
    margin-bottom: var(--taibo-space-md);
}
.taibo-login-card__register form {
    margin-top: var(--taibo-space-sm);
}

/* =========================================
   HOME v4 — Etapa 1: Hero, Marquee, Cinco principios
   ========================================= */

/* Bio de Juan Carlos bajo la CTA del hero */
.taibo-hero-v2__bio {
    margin-top: var(--taibo-space-md);
    padding-left: var(--taibo-space-sm);
    border-left: 2px solid var(--taibo-color-accent);
    max-width: 46ch;
    font-size: var(--taibo-text-body-sm);
    line-height: 1.6;
    color: var(--taibo-color-muted);
}

/* Marquee — variante clara (ya definida antes, se incluye aquí también por si acaso) */
.taibo-marquee--light {
    background: var(--taibo-color-surface);
}
.taibo-marquee--light .taibo-marquee__item {
    color: var(--taibo-color-muted);
}

/* Cinco principios — lista numerada con icono y explicación */
.taibo-principles-list {
    list-style: none;
    margin: var(--taibo-space-md) 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}
.taibo-principle-item {
    display: grid;
    grid-template-columns: 48px 32px 1fr;
    gap: var(--taibo-space-sm);
    align-items: start;
    padding: var(--taibo-space-md) 0;
    border-top: 1px solid var(--taibo-color-surface);
}
.taibo-principle-item:last-child {
    border-bottom: 1px solid var(--taibo-color-surface);
}
.taibo-principle-item__num {
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-regular);
    font-size: 1.8rem;
    line-height: 0.9;
    color: var(--taibo-color-accent);
}
.taibo-principle-item__icon {
    width: 32px;
    height: 32px;
    color: var(--taibo-color-text);
    flex-shrink: 0;
}
.taibo-principle-item h3 {
    margin: 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: var(--taibo-text-h3);
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--taibo-color-text);
}
.taibo-principle-item p {
    margin: var(--taibo-space-2) 0 0;
    font-size: var(--taibo-text-body);
    line-height: 1.65;
    color: var(--taibo-color-muted);
    max-width: 52ch;
}
@media (max-width: 600px) {
    .taibo-principle-item {
        grid-template-columns: 40px 1fr;
    }
    .taibo-principle-item__icon {
        display: none;
    }
}

/* Titular del hero — solo en la Home, escala más grande y editorial
   que pide el rediseño (78px en escritorio). No toca el token
   --taibo-text-hero-display ni .taibo-hero-v2__title, que comparten
   7 páginas más (Sobre Juan Carlos, Método, casos, ejercicios...). */
.taibo-home-hero-v2__title {
    font-size: clamp(2.25rem, 5vw + 1.5rem, 4.875rem);
    line-height: 0.98;
    letter-spacing: -0.015em;
    max-width: 16ch;
}

/* Títulos de sección — solo en la Home, escala más grande que pide
   el rediseño (56px en escritorio). No toca --taibo-text-h1 ni
   .taibo-home-section__title, que comparten 7 páginas más. */
.taibo-home-section__title--lg {
    font-size: clamp(2.25rem, 5vw + 1.1rem, 3.5rem);
    line-height: 1.0;
    letter-spacing: 0.01em;
    max-width: 22ch;
}

/* Marco de foto del hero — propio de la Home, marcado nuevo (no
   .taibo-photo-comp, que usan otras páginas). Esquinas tipo plano
   técnico, foto en blanco y negro con más contraste, leyenda con
   degradado superpuesta. */
.taibo-hero-photo-frame {
    position: relative;
    border: 1px solid rgba(26,26,26,0.2);
    padding: 10px;
}
.taibo-hero-photo-frame__corner {
    position: absolute;
    width: 11px;
    height: 11px;
    border-color: var(--taibo-color-text);
    border-style: solid;
    border-width: 0;
}
.taibo-hero-photo-frame__corner--tl { top: -6px; left: -6px; border-top-width: 1px; border-left-width: 1px; }
.taibo-hero-photo-frame__corner--tr { top: -6px; right: -6px; border-top-width: 1px; border-right-width: 1px; }
.taibo-hero-photo-frame__corner--bl { bottom: -6px; left: -6px; border-bottom-width: 1px; border-left-width: 1px; }
.taibo-hero-photo-frame__corner--br { bottom: -6px; right: -6px; border-bottom-width: 1px; border-right-width: 1px; }

.taibo-hero-photo-frame__image {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--taibo-color-surface);
}
.taibo-hero-photo-frame__empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
}
.taibo-hero-photo-frame__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
    filter: grayscale(1) contrast(1.06);
}
.taibo-hero-photo-frame__caption {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: var(--taibo-space-sm) var(--taibo-space-md);
    background: linear-gradient(to top, rgba(10,10,10,0.78), rgba(10,10,10,0));
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--taibo-space-sm);
}
.taibo-hero-photo-frame__place {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #ffffff;
}
.taibo-hero-photo-frame__session {
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.62);
}
.taibo-hero-photo-frame__accent {
    position: absolute;
    top: 24px;
    left: -1px;
    width: 3px;
    height: 96px;
    background: var(--taibo-color-accent);
    display: block;
}

/* Cuadrícula de Cinco principios — modificador propio de la Home:
   columna del monigote más ancha (380px) y fija al hacer scroll en
   escritorio. No toca .taibo-how-grid, que comparten 2 páginas más. */
.taibo-how-grid--home {
    gap: 3rem;
}
@media (min-width: 900px) {
    .taibo-how-grid--home {
        grid-template-columns: 340px 1fr;
        gap: 5rem;
        align-items: start;
    }
}
.taibo-how-grid--home .taibo-body-illustration {
    max-width: none;
    margin-inline: 0;
    text-align: left;
}
@media (min-width: 1024px) {
    .taibo-how-grid--home .taibo-body-illustration {
        position: sticky;
        top: 24px;
    }
}
.taibo-body-illustration__intro {
    margin: var(--taibo-space-sm) 0 0;
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body);
    line-height: 1.65;
    max-width: 34ch;
}
.taibo-body-illustration__card {
    margin-top: var(--taibo-space-md);
    border: 1px solid rgba(26,26,26,0.16);
    padding: var(--taibo-space-sm);
    background: var(--taibo-color-surface);
}
.taibo-body-illustration__card svg {
    width: 100%;
    height: auto;
    display: block;
}

/* =========================================
   HOME v4 — Etapa 2: Conoce a JC / Casos, Proceso, CTA final
   ========================================= */

/* Cita en "Conoce a Juan Carlos" */
.taibo-home-axis__quote {
    margin: var(--taibo-space-sm) 0;
    padding-left: var(--taibo-space-sm);
    border-left: 2px solid var(--taibo-color-accent);
    font-style: italic;
    font-size: var(--taibo-text-body-lg);
    line-height: 1.5;
    color: var(--taibo-color-text);
    max-width: 42ch;
}
.taibo-home-axis__quote-cite {
    display: block;
    margin-top: 0.6rem;
    font-style: normal;
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--taibo-color-accent);
}

/* CÓMO ES EL PROCESO — sección negra propia, sin usar .taibo-panel-dark */
.taibo-home-process {
    position: relative;
    background: var(--taibo-color-text);
    overflow: hidden;
    padding: var(--taibo-space-xl, 4rem) var(--taibo-space-lg);
}
.taibo-home-process__bg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
    background-size: 60px 60px;
}
.taibo-home-process__inner {
    position: relative;
}
.taibo-home-process__header {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
}
@media (min-width: 900px) {
    .taibo-home-process__header {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
        gap: var(--taibo-space-lg);
    }
}
.taibo-home-process__kicker {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-semibold, 600);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
}
.taibo-home-process__title {
    margin: var(--taibo-space-2) 0 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-bold);
    font-size: clamp(2rem, 5vw + 1rem, 3.75rem);
    line-height: 0.98;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    max-width: 14ch;
    color: #ffffff;
}
.taibo-home-process__intro {
    margin: 0;
    font-size: var(--taibo-text-body-lg);
    line-height: 1.6;
    color: rgba(255,255,255,0.6);
    max-width: 42ch;
}

/* Escritorio: cuadrícula de 5 columnas — oculta por defecto (móvil manda) */
.taibo-home-process__grid {
    display: none;
    list-style: none;
    margin: var(--taibo-space-xl, 4rem) 0 0;
    padding: 0;
}
.taibo-home-process__mobile-timeline,
.taibo-home-process__mobile-note {
    display: block;
}
.taibo-home-process__mobile-note {
    margin: var(--taibo-space-md) 0 0;
    color: rgba(255,255,255,0.6);
    font-size: var(--taibo-text-body-sm);
    line-height: 1.6;
    text-align: center;
}

@media (min-width: 900px) {
    .taibo-home-process__grid {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 0;
        border-top: 1px solid rgba(255,255,255,0.18);
    }
    .taibo-home-process__mobile-timeline,
    .taibo-home-process__mobile-note {
        display: none !important;
    }
    .taibo-home-process__col {
        position: relative;
        padding: var(--taibo-space-md) var(--taibo-space-sm) var(--taibo-space-lg);
        border-right: 1px solid rgba(255,255,255,0.12);
    }
    .taibo-home-process__col:last-child {
        border-right: none;
    }
    .taibo-home-process__dot {
        position: absolute;
        top: -6px;
        left: var(--taibo-space-sm);
        width: 11px;
        height: 11px;
        border-radius: 50%;
        background: var(--taibo-color-accent);
    }
    .taibo-home-process__dot--critical {
        top: -8px;
        width: 15px;
        height: 15px;
        box-shadow: 0 0 0 5px rgba(232,98,44,0.22);
    }
    .taibo-home-process__fase {
        display: block;
        font-family: var(--taibo-font-primary);
        font-weight: var(--taibo-weight-regular);
        font-size: var(--taibo-text-body-sm);
        letter-spacing: 0.14em;
        color: rgba(255,255,255,0.45);
    }
    .taibo-home-process__fase--critical {
        color: #F2A65A;
    }
    .taibo-home-process__col h3 {
        margin: var(--taibo-space-2) 0 0;
        font-family: var(--taibo-font-primary);
        font-weight: var(--taibo-weight-semibold, 600);
        font-size: var(--taibo-text-h3);
        letter-spacing: 0.03em;
        text-transform: uppercase;
        color: #ffffff;
    }
    .taibo-home-process__col p {
        margin: var(--taibo-space-2) 0 0;
        font-size: var(--taibo-text-body-sm);
        line-height: 1.65;
        color: rgba(255,255,255,0.6);
    }
    .taibo-home-process__col--critical {
        background: linear-gradient(to bottom, rgba(232,98,44,0.14), rgba(232,98,44,0));
    }
    .taibo-home-process__col--critical p {
        color: rgba(255,255,255,0.72);
    }
}
.taibo-home-process__link {
    margin: var(--taibo-space-md) 0 0;
    text-align: center;
}
.taibo-home-process__link a {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #ffffff;
    text-decoration: none;
    border-bottom: 2px solid var(--taibo-color-accent);
    padding-bottom: 0.4rem;
}

/* CTA FINAL — 2 columnas, marcado propio */
.taibo-home-final {
    background: var(--taibo-color-text);
    padding: var(--taibo-space-xl, 4rem) var(--taibo-space-lg);
}
.taibo-home-final__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-lg);
    align-items: center;
}
@media (min-width: 900px) {
    .taibo-home-final__grid {
        grid-template-columns: 1.25fr 1fr;
        gap: var(--taibo-space-xl, 4rem);
    }
}
.taibo-home-final__title {
    margin: 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-bold);
    font-size: clamp(2rem, 5vw + 1rem, 3.5rem);
    line-height: 1.0;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: #ffffff;
    max-width: 20ch;
}
.taibo-home-final__text {
    margin: var(--taibo-space-sm) 0 0;
    font-size: var(--taibo-text-body-lg);
    line-height: 1.6;
    color: rgba(255,255,255,0.62);
    max-width: 48ch;
}
.taibo-home-final__cta-row {
    margin-top: var(--taibo-space-md);
    display: flex;
    align-items: center;
    gap: var(--taibo-space-sm);
    flex-wrap: wrap;
}
.taibo-home-final__microcopy {
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-body-sm);
    color: rgba(255,255,255,0.8);
    font-weight: var(--taibo-weight-medium);
}
.taibo-home-final__trust {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    border-top: 1px solid rgba(255,255,255,0.16);
}
.taibo-home-final__trust li {
    padding: var(--taibo-space-sm) 0;
    border-bottom: 1px solid rgba(255,255,255,0.16);
    font-size: var(--taibo-text-body-sm);
    color: rgba(255,255,255,0.78);
    display: flex;
    align-items: center;
    gap: var(--taibo-space-sm);
}
.taibo-home-final__trust svg {
    flex-shrink: 0;
}

/* Título de "Caso real" — tamaño propio (44px), distinto al resto
   de títulos de sección (56px) según el mockup. */
.taibo-home-caso__title {
    margin: var(--taibo-space-2) 0 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: clamp(1.75rem, 4vw + 1rem, 2.75rem);
    line-height: 1.05;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: var(--taibo-color-text);
}

/* =========================================
   HOME v4 — Etapa 3: Encuentra tu punto de partida (con citas
   reales), Blog reposicionado, Explora por objetivo con tarjeta
   ========================================= */

.taibo-home-punto-partida__header {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
    border-bottom: 2px solid var(--taibo-color-text);
    padding-bottom: var(--taibo-space-md);
    text-align: left;
}
.taibo-home-punto-partida__header h2 {
    text-align: left;
}
@media (min-width: 900px) {
    .taibo-home-punto-partida__header {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
        gap: var(--taibo-space-lg);
    }
}
.taibo-home-punto-partida__intro {
    margin: 0;
    font-size: var(--taibo-text-body-lg);
    line-height: 1.6;
    color: var(--taibo-color-muted);
    max-width: 44ch;
}

.taibo-punto-partida-grid {
    list-style: none;
    margin: var(--taibo-space-lg) 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-md);
}
@media (min-width: 900px) {
    .taibo-punto-partida-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.taibo-punto-partida-card {
    border: 1px solid rgba(26,26,26,0.16);
    background: var(--taibo-color-bg, #FBFAF8);
    display: flex;
    flex-direction: column;
    height: 100%;
}
.taibo-punto-partida-card__image {
    aspect-ratio: 4 / 3;
    background: var(--taibo-color-surface);
    border-bottom: 1px solid rgba(26,26,26,0.16);
    overflow: hidden;
    background-image:
        linear-gradient(45deg, transparent 48%, rgba(26,26,26,0.08) 49%, rgba(26,26,26,0.08) 51%, transparent 52%),
        linear-gradient(-45deg, transparent 48%, rgba(26,26,26,0.08) 49%, rgba(26,26,26,0.08) 51%, transparent 52%);
}
.taibo-punto-partida-card__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
}
.taibo-punto-partida-card__body {
    padding: var(--taibo-space-md);
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-2);
    flex: 1;
}
.taibo-punto-partida-card__badge {
    font-size: var(--taibo-text-caption);
    font-weight: var(--taibo-weight-semibold, 600);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--taibo-color-muted);
}
.taibo-punto-partida-card__body h3 {
    margin: 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: var(--taibo-text-h3);
    line-height: 1.15;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.taibo-punto-partida-card__body h3 a {
    color: var(--taibo-color-text);
    text-decoration: none;
}
.taibo-punto-partida-card__quote {
    margin: 0;
    font-size: var(--taibo-text-body);
    line-height: 1.6;
    color: var(--taibo-color-text);
}
.taibo-punto-partida-card__desc {
    margin: 0;
    font-size: var(--taibo-text-body-sm);
    line-height: 1.6;
    color: var(--taibo-color-muted);
}
.taibo-punto-partida-card__link {
    margin-top: auto;
    padding-top: var(--taibo-space-2);
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--taibo-color-accent);
    text-decoration: none;
}

/* Fila compacta: imagen izquierda, texto derecha */
.taibo-punto-partida-grid--sm {
    margin-top: var(--taibo-space-sm);
}
.taibo-punto-partida-card--compact {
    flex-direction: row;
}
.taibo-punto-partida-card--compact .taibo-punto-partida-card__image {
    aspect-ratio: 1 / 2;
    width: 45%;
    flex-shrink: 0;
    border-bottom: none;
    border-right: 1px solid rgba(26,26,26,0.16);
    overflow: hidden;
}
.taibo-punto-partida-card--compact .taibo-punto-partida-card__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
}
.taibo-punto-partida-card--compact .taibo-punto-partida-card__body {
    padding: var(--taibo-space-sm);
}
.taibo-punto-partida-card--compact h3 {
    font-size: var(--taibo-text-h3);
}
.taibo-punto-partida-card--special {
    border: 1px solid rgba(26,26,26,0.16);
    background: var(--taibo-color-surface);
    padding: var(--taibo-space-md);
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-2);
    justify-content: center;
    height: 100%;
}
.taibo-punto-partida-card--special h3 {
    margin: 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-medium);
    font-size: var(--taibo-text-h3);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.taibo-punto-partida-card--special p {
    margin: 0;
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-body-sm);
    line-height: 1.6;
}

/* BLOG — encabezado con enlace "ver todo", título de tamaño propio */
.taibo-home-blog__header {
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-sm);
    border-bottom: 1px solid rgba(26,26,26,0.2);
    padding-bottom: var(--taibo-space-sm);
}
@media (min-width: 900px) {
    .taibo-home-blog__header {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
    }
}
.taibo-home-blog__title {
    margin: var(--taibo-space-2) 0 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-medium);
    font-size: clamp(1.6rem, 3vw + 1rem, 2.4rem);
    line-height: 1.05;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    max-width: 20ch;
    color: var(--taibo-color-text);
}
.taibo-home-blog__viewall {
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--taibo-color-accent);
    text-decoration: none;
    white-space: nowrap;
}

/* EXPLORA POR OBJETIVO — tarjeta con intro + píldoras */
.taibo-home-biblioteca {
    border: 1px solid rgba(26,26,26,0.16);
    background: var(--taibo-color-surface);
    padding: var(--taibo-space-lg);
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-md);
}
@media (min-width: 900px) {
    .taibo-home-biblioteca {
        grid-template-columns: 1fr 1.4fr;
        align-items: start;
    }
}
.taibo-home-biblioteca__title {
    margin: var(--taibo-space-2) 0 0;
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-medium);
    font-size: clamp(1.5rem, 2.5vw + 1rem, 2.1rem);
    line-height: 1.08;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    max-width: 18ch;
    color: var(--taibo-color-text);
}
.taibo-home-biblioteca__text {
    margin: var(--taibo-space-sm) 0 0;
    font-size: var(--taibo-text-body);
    line-height: 1.65;
    color: var(--taibo-color-muted);
}
.taibo-home-biblioteca__text strong {
    color: var(--taibo-color-text);
    font-weight: var(--taibo-weight-semibold, 600);
}
.taibo-home-biblioteca__pills {
    list-style: none;
    margin: 0;
    padding: var(--taibo-space-2) 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}
.taibo-home-biblioteca__pills a {
    display: inline-block;
    font-family: var(--taibo-font-primary);
    font-size: var(--taibo-text-body-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid rgba(26,26,26,0.28);
    padding: 0.6rem 1.1rem;
    color: var(--taibo-color-text);
    text-decoration: none;
}
.taibo-home-biblioteca__all {
    background: var(--taibo-color-text);
    color: #ffffff !important;
    border-color: var(--taibo-color-text) !important;
}

/* =========================================
   HOME v4 — Contenedor de ancho completo
   El mockup no tiene ningún tope de ancho intermedio: todo va a
   80px de padding contra el borde real de la pantalla, no contra
   un contenedor centrado más estrecho como el resto del sitio.
   ========================================= */
.taibo-container--home-wide {
    max-width: none;
    width: 100%;
    padding-inline: 80px;
}
@media (max-width: 1100px) {
    .taibo-container--home-wide {
        padding-inline: 48px;
    }
}
@media (max-width: 700px) {
    .taibo-container--home-wide {
        padding-inline: 24px;
    }
}
@media (max-width: 420px) {
    .taibo-container--home-wide {
        padding-inline: 18px;
    }
    .taibo-home-process .taibo-container--home-wide,
    .taibo-home-final .taibo-container--home-wide {
        padding-inline: 14px;
    }
}

/* =========================================
   HOME v4 — Etapa 4: fotos propias de ejes/caso, dividers de blog,
   fase crítica en móvil, proporción exacta del hero
   ========================================= */

/* Marco de foto para "Conoce a Juan Carlos" / "Casos reales" / "Caso
   real" — más simple que el del hero (sin leyenda superpuesta),
   propio de la Home, no toca .taibo-photo-comp compartido. */
.taibo-home-photo-frame {
    position: relative;
    border: 1px solid rgba(26,26,26,0.16);
    aspect-ratio: 4 / 5;
    overflow: hidden;
}
.taibo-home-photo-frame img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
    filter: grayscale(1) contrast(1.06);
}
.taibo-home-photo-frame__empty {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 5;
    background: var(--taibo-color-surface);
    color: var(--taibo-color-muted);
    font-size: var(--taibo-text-caption);
}
.taibo-home-photo-frame__accent {
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 22px;
    height: 4px;
    background: var(--taibo-color-accent);
}

/* Caso real: excepción deliberada — esta sección concreta pasa a
   2 columnas ya en 768px (50/50), no espera a los 900px como el
   resto de la página, porque apilada se sentía demasiado alta. */
@media (min-width: 768px) {
    .taibo-axis-row--caso {
        grid-template-columns: 1fr 1fr;
    }
}
.taibo-home-photo-frame--caso {
    height: 100%;
}
.taibo-home-photo-frame--caso img,
.taibo-home-photo-frame--caso .taibo-home-photo-frame__empty {
    height: 100% !important;
    aspect-ratio: auto;
    object-fit: cover;
}

/* Blog: separadores verticales finos entre columnas, no huecos */
.taibo-blog-grid {
    gap: 0 !important;
    border-top: 1px solid rgba(26,26,26,0.16);
}
.taibo-blog-grid li {
    border-right: 1px solid rgba(26,26,26,0.16);
}
.taibo-blog-grid li:last-child {
    border-right: none;
}
.taibo-blog-card {
    padding: var(--taibo-space-md) var(--taibo-space-md) var(--taibo-space-md) 0;
}
.taibo-blog-grid li:not(:first-child) .taibo-blog-card {
    padding-left: var(--taibo-space-md);
}

/* Fase 4 destacada también en el timeline móvil */
.taibo-home-process__mobile-timeline .taibo-home-phase--critical {
    background: linear-gradient(to right, rgba(232,98,44,0.14), rgba(232,98,44,0));
    margin-inline: -1rem;
    padding-inline: 1rem;
}
.taibo-home-process__mobile-timeline .taibo-home-phase--critical .taibo-home-phase__dot {
    width: 15px;
    height: 15px;
    box-shadow: 0 0 0 5px rgba(232,98,44,0.22);
}
.taibo-home-process__mobile-timeline .taibo-home-phase--critical .taibo-home-phase__label {
    color: #F2A65A;
}

/* Hero: proporción exacta del mockup — columna de foto fija en vez
   de fluida, solo en la Home */
@media (min-width: 900px) {
    .taibo-hero-grid--home {
        grid-template-columns: 1fr 520px;
    }
}

/* =========================================
   HOME v4 — Etapa 5: arreglo confirmado en navegador real
   ========================================= */

/* Blog: quitar el radio de borde y la sombra que trae la clase
   compartida .taibo-blog-card (confirmado con inspección real:
   había 2 reglas .taibo-blog-card en el CSS, ninguna tocada hasta
   ahora). También el bullet del <ul>, que nunca se quitó. */
.taibo-blog-grid,
.taibo-blog-grid li {
    list-style: none;
}
.taibo-blog-card {
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Timeline del proceso en móvil — reconstrucción completa.
   El componente compartido (.taibo-home-phases__timeline) usa
   flex-wrap + justify-content:space-between pensado para otro
   layout — aquí se fuerza una columna vertical limpia, con la
   línea y los puntos alineados a la izquierda, y sitio real para
   la etiqueta de fase + nombre + descripción de cada una.
   Envuelto en su media query — antes no lo estaba, y por eso se
   colaba también en escritorio encima de la cuadrícula de 5. */
@media (max-width: 899px) {
    .taibo-home-process__mobile-timeline {
        position: relative;
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        gap: 2.2rem;
        padding-left: 2.2rem;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phases__line {
        left: 5px !important;
        top: 6px !important;
        height: calc(100% - 12px) !important;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase {
        position: relative;
        width: 100% !important;
        flex: none !important;
        text-align: left !important;
        display: block !important;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase__dot {
        position: absolute;
        left: -2.2rem;
        top: 5px;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase__fase {
        display: block;
        font-family: var(--taibo-font-primary);
        font-weight: var(--taibo-weight-regular);
        font-size: 0.8rem;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.45);
        margin-bottom: 0.3rem;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase__label {
        display: block;
        font-family: var(--taibo-font-primary);
        font-weight: var(--taibo-weight-semibold, 600);
        font-size: 1.5rem;
        letter-spacing: 0.03em;
        text-transform: uppercase;
        color: #ffffff;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase__desc {
        margin: 0.5rem 0 0;
        color: rgba(255,255,255,0.6);
        font-size: 0.95rem;
        line-height: 1.6;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase--critical {
        background: linear-gradient(to right, rgba(232,98,44,0.14), rgba(232,98,44,0));
        margin-left: -0.8rem;
        padding: 0.6rem 0.8rem;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase--critical .taibo-home-phase__dot {
        left: -2.9rem;
        width: 17px;
        height: 17px;
        box-shadow: 0 0 0 5px rgba(232,98,44,0.22);
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase--critical .taibo-home-phase__fase {
        color: #F2A65A;
    }
    .taibo-home-process__mobile-timeline .taibo-home-phase--critical .taibo-home-phase__desc {
        color: rgba(255,255,255,0.72);
    }
}
/* =========================================
   ENTRENAMIENTOS — Archivo (taibo_producto)
   Reutiliza de la Home/Método: .taibo-home-photo-frame,
   .taibo-hero-v2__title, .taibo-axis-row, .taibo-panel-dark,
   .taibo-home-final-cta__title, .taibo-trust-list, .taibo-marquee.
   Solo son nuevas 2 cosas: autodiagnóstico y testimonios.
   ========================================= */

/* Marco de foto simple (sin leyenda), reutilizado tal cual de
   Método, para las 5 fotos de los planes */
.taibo-home-photo-frame--simple .taibo-home-photo-frame__image {
    aspect-ratio: 4 / 5;
}

/* Línea de acento naranja bajo el título de cada plan */
.taibo-home-axis__accent-line {
    font-family: var(--taibo-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 1.05rem;
    color: var(--taibo-color-accent);
    margin: 0 0 var(--taibo-space-sm);
    max-width: 26ch;
}

/* AUTODIAGNÓSTICO — lista de filas con flecha */
.taibo-selfdx__intro {
    max-width: 52ch;
    color: var(--taibo-color-muted);
    margin: 0 0 var(--taibo-space-lg);
}
.taibo-selfdx__list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.taibo-selfdx__row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1.25rem;
    background: #ffffff;
    border: 1px solid rgba(26,26,26,0.08);
    border-radius: var(--taibo-radius-lg);
    padding: 1.25rem 1.5rem;
    text-decoration: none;
    color: var(--taibo-color-text);
    transition: transform 0.25s ease, border-color 0.25s ease;
}
.taibo-selfdx__row:hover {
    transform: translateX(6px);
    border-color: var(--taibo-color-accent);
}
.taibo-selfdx__num {
    font-family: var(--taibo-font-primary);
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--taibo-color-accent);
}
.taibo-selfdx__kicker {
    display: block;
    font-family: var(--taibo-font-secondary);
    font-size: var(--taibo-text-caption);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--taibo-color-muted);
    margin-bottom: 0.25rem;
}
.taibo-selfdx__text {
    display: block;
    font-family: var(--taibo-font-secondary);
    font-weight: 500;
    font-size: var(--taibo-text-body-lg);
    line-height: 1.35;
}
.taibo-selfdx__arrow {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--taibo-color-surface);
    color: var(--taibo-color-text);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    transition: background 0.25s ease, color 0.25s ease;
}
.taibo-selfdx__row:hover .taibo-selfdx__arrow {
    background: var(--taibo-color-accent);
    color: #ffffff;
}

/* TESTIMONIOS */
.taibo-testimonios {
    padding: var(--taibo-space-xl, 4rem) 0;
}
.taibo-testimonios__title {
    margin: var(--taibo-space-2) 0 var(--taibo-space-lg);
    font-family: var(--taibo-font-primary);
    font-weight: var(--taibo-weight-semibold, 600);
    font-size: clamp(1.75rem, 3vw + 1rem, 2.5rem);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--taibo-color-text);
}
.taibo-testimonios__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--taibo-space-md);
}
@media (min-width: 768px) {
    .taibo-testimonios__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.taibo-testimonio {
    margin: 0;
    background: #ffffff;
    border: 1px solid rgba(26,26,26,0.08);
    border-radius: var(--taibo-radius-lg);
    padding: var(--taibo-space-md);
    display: flex;
    flex-direction: column;
    gap: var(--taibo-space-md);
}
.taibo-testimonio__text {
    margin: 0;
    font-style: italic;
    font-size: var(--taibo-text-body);
    line-height: 1.6;
    color: var(--taibo-color-text);
}
.taibo-testimonio__footer {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: auto;
}
.taibo-testimonio__photo {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.taibo-testimonio__photo--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--taibo-color-accent);
    color: #ffffff;
    font-family: var(--taibo-font-primary);
    font-size: 0.95rem;
}
.taibo-testimonio__author {
    font-style: normal;
    font-family: var(--taibo-font-secondary);
    font-weight: 600;
    font-size: var(--taibo-text-body-sm);
    color: var(--taibo-color-text);
}
/* FIX — hover fantasma del mega menú "Entrenamientos" del header.
   Ver 03-INCIDENTES-Y-LECCIONES.md §7. */
[data-taibo-hover-guard] .tmh-has-mega:hover .tmh-mega-panel {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
/* ============================================================
   Archive-cascada — grid de tarjetas de término (sin dots de lista)
   Añadir al final de assets/css/taibo-components.css.
   No sustituye ni modifica ningún bloque existente.
   ============================================================ */

.taibo-archivo-taxonomia-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

@media (max-width: 900px) {
	.taibo-archivo-taxonomia-grid {
		grid-template-columns: 1fr;
	}
}

.taibo-archivo-taxonomia-card {
	border: 1px solid var(--taibo-color-muted, #ddd);
	padding: 24px;
	height: 100%;
}

.taibo-archivo-taxonomia-card__title {
	margin: 0 0 8px;
}

.taibo-archivo-taxonomia-card__desc {
	margin: 0 0 16px;
}

.taibo-archivo-taxonomia-card__link {
	font-weight: 600;
}
@media (max-width: 480px) {
  .taibo-trainer-generate-sessions {
    margin: var(--taibo-space-sm) 0.5rem;
    padding: var(--taibo-space-sm);
  }
}
