/* ═══ RESET TOTAL — anular todo lo que mete GeneratePress ═══ */
body.tmcpt-body,
body.tmcpt-body *,
body.tmcpt-body *::before,
body.tmcpt-body *::after { box-sizing: border-box; }

body.tmcpt-body {
    font-family:  'Inter', 'Helvetica Neue', Arial, sans-serif;
    font-size:    16px;
    line-height:  1.7;
    color:        #333;
    background:   #fff;
    margin:       0;
    padding:      0 !important; /* anular padding-top de GP */
}

/* Anular el grid de GeneratePress completamente */
body.tmcpt-body #page,
body.tmcpt-body .site,
body.tmcpt-body .site-content,
body.tmcpt-body #content,
body.tmcpt-body .content-area,
body.tmcpt-body .inside-article,
body.tmcpt-body .entry-content,
body.tmcpt-body article.post,
body.tmcpt-body .site-main {
    display:    block !important;
    width:      100% !important;
    max-width:  none !important;
    margin:     0 !important;
    padding:    0 !important;
    float:      none !important;
    grid-template-columns: none !important;
}

body.tmcpt-body img { max-width: 100%; height: auto; display: block; }
body.tmcpt-body a   { color: #B8860B; text-decoration: none; }
body.tmcpt-body a:hover { color: #8B6508; }

/* ═══ CONTENEDOR ═══ */
.tmcpt-wrap {
    max-width: 1280px;
    margin:    0 auto;
    padding:   0 2rem;
    width:     100%;
}

/* ═══ HEADER FALLBACK (cuando TM Home no está activo) ═══ */
.tmcpt-header-min {
    position:       fixed;
    top: 0; left: 0; right: 0;
    height:         72px;
    background:     #111;
    z-index:        999;
    display:        flex;
    align-items:    center;
}

.tmcpt-logo-min {
    font-family:    'Playfair Display', Georgia, serif;
    font-size:      1.1rem;
    font-weight:    700;
    color:          #fff !important;
    text-transform: uppercase;
    letter-spacing: .08em;
    line-height:    1;
    display:        flex;
    flex-direction: column;
}

.tmcpt-logo-min em {
    font-style:     normal;
    font-weight:    300;
    color:          #B8860B;
    font-size:      .5rem;
    letter-spacing: .3em;
    margin-top:     2px;
}

/* ═══ HERO PRINCIPAL ═══ */
.tmcpt-hero {
    position:    relative;
    min-height:  75vh;
    display:     flex;
    align-items: flex-end;
    background:  #111;
    overflow:    hidden;
    margin-top:  72px; /* offset del header fijo */
}

body.tmcpt-body .tm-header ~ #tmcpt-main .tmcpt-hero,
body.tmcpt-body .tmcpt-hero { margin-top: 0; }

.tmcpt-hero--plain {
    min-height:  45vh;
    background:  linear-gradient(135deg, #0e0e0e 0%, #1a1a1a 100%);
}

.tmcpt-hero__bg {
    position: absolute;
    inset:    0;
}

.tmcpt-hero__bg img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    object-position: center;
    opacity:    .70;
}

.tmcpt-hero__overlay {
    position:   absolute;
    inset:      0;
    background: linear-gradient(
        to top,
        rgba(0,0,0,.90) 0%,
        rgba(0,0,0,.50) 50%,
        rgba(0,0,0,.10) 100%
    );
}

.tmcpt-hero__inner {
    position:  relative;
    z-index:   2;
    padding:   80px 2rem 64px;
    width:     100%;
}

/* Breadcrumb */
.tmcpt-breadcrumb {
    display:     flex;
    align-items: center;
    gap:         .4rem;
    font-size:   .72rem;
    color:       rgba(255,255,255,.6);
    flex-wrap:   wrap;
    margin-bottom: 1rem;
    list-style:  none;
    padding:     0;
}

.tmcpt-breadcrumb a {
    color:      rgba(255,255,255,.6) !important;
    transition: color .25s;
}

.tmcpt-breadcrumb a:hover { color: #B8860B !important; }
.tmcpt-breadcrumb span    { color: rgba(255,255,255,.3); }

/* Badge de categoría */
.tmcpt-hero__badge {
    display:        inline-block;
    font-family:    'Inter', sans-serif;
    font-size:      .62rem;
    font-weight:    700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          #B8860B;
    margin-bottom:  .85rem;
}

/* Título hero */
.tmcpt-hero__title {
    font-family:  'Playfair Display', Georgia, serif;
    font-size:    clamp(2rem, 5vw, 3.5rem);
    font-weight:  700;
    color:        #fff;
    line-height:  1.1;
    margin:       0 0 1rem;
    max-width:    820px;
}

/* Lead / excerpt */
.tmcpt-hero__lead {
    font-size:   clamp(.9rem, 1.4vw, 1.1rem);
    color:       rgba(255,255,255,.78);
    line-height: 1.65;
    max-width:   620px;
    margin:      0 0 1.25rem;
}

/* Tags */
.tmcpt-hero__tags {
    display:  flex;
    gap:      .5rem;
    flex-wrap: wrap;
}

.tmcpt-hero__tag {
    display:        inline-flex;
    align-items:    center;
    gap:            .3rem;
    padding:        .3rem .85rem;
    background:     rgba(255,255,255,.12);
    border:         1px solid rgba(255,255,255,.2);
    border-radius:  20px;
    font-size:      .72rem;
    font-weight:    600;
    color:          rgba(255,255,255,.85) !important;
    transition:     all .25s;
}

.tmcpt-hero__tag:hover {
    background:   #B8860B;
    border-color: #B8860B;
    color:        #fff !important;
}

/* ═══ LAYOUT CONTENIDO + SIDEBAR ═══ */
.tmcpt-page-layout {
    display:               grid;
    grid-template-columns: 1fr 300px;
    gap:                   3rem;
    align-items:           start;
    padding:               3rem 0 5rem;
}

/* ═══ ARTÍCULO ═══ */
.tmcpt-article { min-width: 0; }

.tmcpt-article__body {
    font-family: 'Inter', sans-serif;
    font-size:   1.02rem;
    line-height: 1.85;
    color:       #333;
}

.tmcpt-article__body h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size:   1.65rem;
    color:       #111;
    margin:      2.25rem 0 .85rem;
    line-height: 1.25;
}

.tmcpt-article__body h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size:   1.25rem;
    color:       #111;
    margin:      1.75rem 0 .65rem;
}

.tmcpt-article__body p  { margin: 0 0 1.4rem; }

.tmcpt-article__body ul,
.tmcpt-article__body ol { margin: 0 0 1.4rem 1.25rem; padding: 0; }

.tmcpt-article__body li { margin-bottom: .45rem; }

.tmcpt-article__body strong { color: #111; }

.tmcpt-article__body a {
    color:         #B8860B !important;
    border-bottom: 1px solid rgba(184,134,11,.3);
}

.tmcpt-article__body a:hover { border-color: #B8860B; }

.tmcpt-article__body blockquote {
    border-left:  4px solid #B8860B;
    margin:       2rem 0;
    padding:      1rem 1.5rem;
    background:   #F8F8F6;
    border-radius: 0 4px 4px 0;
    font-family:  'Playfair Display', Georgia, serif;
    font-size:    1.15rem;
    font-style:   italic;
    color:        #444;
    line-height:  1.6;
}

/* ═══ RELACIONADOS ═══ */
.tmcpt-related {
    margin-top:  3rem;
    padding-top: 2rem;
    border-top:  1px solid #E5E4DC;
}

.tmcpt-related__title {
    font-family:    'Inter', sans-serif;
    font-size:      .7rem;
    font-weight:    700;
    letter-spacing: .14em;
    color:          #111;
    margin:         0 0 1.5rem;
    text-transform: uppercase;
}

.tmcpt-related__grid {
    display:               grid;
    grid-template-columns: repeat(4, 1fr);
    gap:                   1.25rem;
}

/* Mini card */
.tmcpt-mini-card {
    display:     block;
    text-decoration: none;
    transition:  transform .25s, box-shadow .25s;
}

.tmcpt-mini-card:hover { transform: translateY(-3px); box-shadow: 0 4px 20px rgba(0,0,0,.1); }

.tmcpt-mini-card__img {
    aspect-ratio: 16/10;
    overflow:     hidden;
    border-radius: 3px;
    margin-bottom: .65rem;
    background:   #e5e4dc;
}

.tmcpt-mini-card__img img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    transition: transform .4s;
}

.tmcpt-mini-card:hover .tmcpt-mini-card__img img { transform: scale(1.05); }

.tmcpt-mini-card__cat {
    display:        block;
    font-size:      .58rem;
    font-weight:    700;
    letter-spacing: .1em;
    color:          #B8860B;
    text-transform: uppercase;
    margin-bottom:  .25rem;
}

.tmcpt-mini-card__body h3 {
    font-family:  'Playfair Display', Georgia, serif;
    font-size:    .88rem;
    font-weight:  700;
    color:        #111;
    line-height:  1.3;
    margin:       0;
    transition:   color .25s;
}

.tmcpt-mini-card:hover h3 { color: #B8860B; }

/* ═══ SIDEBAR ═══ */
.tmcpt-sidebar {
    position:       sticky;
    top:            calc(72px + 24px);
    display:        flex;
    flex-direction: column;
    gap:            1.75rem;
}

.tmcpt-sidebar__block { }

.tmcpt-sidebar__title {
    font-family:    'Inter', sans-serif;
    font-size:      .62rem;
    font-weight:    700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          #111;
    margin:         0 0 1rem;
    padding-bottom: .5rem;
    border-bottom:  2px solid #B8860B;
}

/* Video en sidebar */
.tmcpt-sidebar__video {
    display:        flex;
    gap:            .65rem;
    align-items:    flex-start;
    margin-bottom:  .85rem;
    padding-bottom: .85rem;
    border-bottom:  1px solid #F8F8F6;
    text-decoration: none;
    color:          inherit;
    transition:     opacity .25s;
}

.tmcpt-sidebar__video:hover    { opacity: .75; }
.tmcpt-sidebar__video:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.tmcpt-sidebar__video-img {
    position:     relative;
    flex-shrink:  0;
    width:        90px;
    height:       63px;
    border-radius: 3px;
    overflow:     hidden;
    background:   #e5e4dc;
}

.tmcpt-sidebar__video-img img { width: 100%; height: 100%; object-fit: cover; }

.tmcpt-sidebar__video-dur {
    position:    absolute;
    bottom:      3px; right: 3px;
    background:  rgba(0,0,0,.8);
    color:       #fff;
    font-size:   .55rem;
    font-weight: 700;
    padding:     1px 5px;
    border-radius: 2px;
}

.tmcpt-sidebar__video p {
    font-family: 'Playfair Display', Georgia, serif;
    font-size:   .82rem;
    font-weight: 700;
    color:       #111;
    line-height: 1.3;
    margin:      0;
}

/* Post en sidebar */
.tmcpt-sidebar__post {
    display:        flex;
    gap:            .65rem;
    align-items:    flex-start;
    margin-bottom:  .85rem;
    padding-bottom: .85rem;
    border-bottom:  1px solid #F8F8F6;
    text-decoration: none;
    color:          inherit;
    transition:     opacity .25s;
}

.tmcpt-sidebar__post:hover     { opacity: .75; }
.tmcpt-sidebar__post:last-child{ border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.tmcpt-sidebar__post-img {
    flex-shrink:  0;
    width:        80px;
    height:       60px;
    border-radius: 3px;
    overflow:     hidden;
    background:   #e5e4dc;
}

.tmcpt-sidebar__post-img img { width: 100%; height: 100%; object-fit: cover; }

.tmcpt-sidebar__post-cat {
    display:        block;
    font-size:      .55rem;
    font-weight:    700;
    letter-spacing: .1em;
    color:          #B8860B;
    text-transform: uppercase;
    margin-bottom:  .2rem;
}

.tmcpt-sidebar__post p {
    font-size:   .82rem;
    font-weight: 600;
    color:       #111;
    line-height: 1.3;
    margin:      0;
}

/* ═══ FOOTER FALLBACK ═══ */
.tmcpt-footer-min {
    background: #111;
    padding:    2rem 0;
    margin-top: 4rem;
}

.tmcpt-footer-min p {
    font-size:  .78rem;
    color:      rgba(255,255,255,.4);
    margin:     0;
    text-align: center;
}

/* ═══ RESPONSIVE ═══ */
@media (max-width: 1024px) {
    .tmcpt-page-layout { grid-template-columns: 1fr; gap: 2rem; }
    .tmcpt-sidebar     { position: static; }
    .tmcpt-related__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .tmcpt-wrap         { padding: 0 1rem; }
    .tmcpt-hero         { min-height: 55vh; }
    .tmcpt-hero__inner  { padding: 60px 1rem 40px; }
    .tmcpt-hero__title  { font-size: 1.85rem; }
    .tmcpt-related__grid{ grid-template-columns: 1fr; }
    .tmcpt-page-layout  { padding: 2rem 0 3rem; }
}
