.tdtk-ranking{
    max-width:1180px;
    margin:0 auto;
    padding:0 0 44px;
    color:#0b2854;
    font-family:inherit;
}
.tdtk-ranking-hero{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    gap:34px;
    align-items:center;
    padding:30px 8px 12px;
}
.tdtk-ranking-hero-copy{min-width:0}
.tdtk-ranking-title-line{display:flex;align-items:flex-start;gap:16px}
.tdtk-ranking-crown{
    flex:0 0 auto;
    font-size:54px;
    line-height:1;
    color:#e8ad22;
    transform:rotate(-7deg);
    text-shadow:0 5px 10px rgba(221,167,34,.18);
}
.tdtk-ranking-hero h2{
    margin:0;
    color:#092653;
    font-size:clamp(30px,4vw,48px);
    line-height:1.04;
    letter-spacing:-.025em;
}
.tdtk-ranking-hero p{
    margin:13px 0 0;
    color:#536d8e;
    font-size:17px;
    line-height:1.5;
}
.tdtk-ranking-hero-note{margin-top:3px!important}
.tdtk-ranking-tip{
    background:linear-gradient(135deg,#fff1b9,#ffe6a0);
    border-radius:16px;
    padding:18px 19px;
    display:flex;
    gap:12px;
    align-items:flex-start;
    color:#102a56;
    box-shadow:0 8px 24px rgba(234,177,37,.12);
    font-size:15px;
    line-height:1.4;
}
.tdtk-ranking-tip .icon{font-size:27px;line-height:1}
.tdtk-ranking-updated{
    text-align:right;
    padding:0 10px 15px;
    color:#5d7594;
    font-size:13px;
}
.tdtk-ranking-benefits{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
    padding:8px 8px 22px;
}
.tdtk-ranking-benefits>div{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}
.tdtk-ranking-benefits .benefit-icon{
    width:46px;height:46px;flex:0 0 46px;
    border-radius:50%;
    display:grid;place-items:center;
    font-weight:900;font-size:20px;
    background:#e9f7ef;color:#079455;
}
.tdtk-ranking-benefits>div:nth-child(2) .benefit-icon{background:#eaf3ff;color:#1769d5}
.tdtk-ranking-benefits>div:nth-child(3) .benefit-icon{background:#ffeaf1;color:#e22b69}
.tdtk-ranking-benefits>div:nth-child(4) .benefit-icon{background:#f1eaff;color:#6b3fd6}
.tdtk-ranking-benefits strong,.tdtk-ranking-benefits small{display:block}
.tdtk-ranking-benefits strong{font-size:13px}
.tdtk-ranking-benefits small{font-size:13px;color:#5f7694;margin-top:2px}
.tdtk-ranking-podium{
    display:grid;
    grid-template-columns:1fr 1.08fr 1fr;
    gap:18px;
    align-items:end;
    padding:18px 26px 28px;
    background:linear-gradient(180deg,#f5fbff 0%,#fff 100%);
    border-radius:28px;
    position:relative;
}
.tdtk-ranking-podium:before{
    content:"";
    position:absolute;
    left:50%;bottom:20px;
    width:150px;height:14px;
    transform:translateX(-50%);
    background:rgba(239,187,42,.16);
    filter:blur(8px);
}
.tdtk-ranking-podium-card{
    position:relative;
    z-index:1;
    text-align:center;
    background:#fff;
    border:1px solid #dce6f0;
    border-radius:20px;
    padding:18px 20px 20px;
    box-shadow:0 10px 28px rgba(30,75,120,.08);
    min-height:365px;
    display:flex;
    flex-direction:column;
    align-items:center;
}
.tdtk-ranking-podium-card:after{
    content:"";
    position:absolute;
    left:8%;right:8%;bottom:-16px;
    height:22px;
    border-radius:0 0 18px 18px;
    background:#dce5ed;
    z-index:-1;
}
.tdtk-ranking-podium-card.pos-1{
    min-height:405px;
    border:2px solid #efb62c;
    box-shadow:0 16px 40px rgba(224,171,33,.18);
    transform:translateY(-10px);
}
.tdtk-ranking-podium-card.pos-1:after{background:linear-gradient(#f5ca52,#d99e16)}
.tdtk-ranking-podium-card.pos-2:after{background:linear-gradient(#dfe6ec,#b8c5d1)}
.tdtk-ranking-podium-card.pos-3:after{background:linear-gradient(#e0a27b,#c97949)}
.tdtk-ranking-medal{
    font-size:22px;
    font-weight:900;
    margin-bottom:3px;
    color:#0b2854;
}
.tdtk-ranking-podium-card.pos-1 .tdtk-ranking-medal{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:52px;
    height:38px;
    border-radius:50%;
    background:#efb62c;
    color:#fff;
    box-shadow:0 5px 10px rgba(224,171,33,.22);
}
.tdtk-ranking-movement{
    position:absolute;
    right:13px;
    top:13px;
    font-size:12px;
    font-weight:900;
}
.tdtk-ranking-movement-up{color:#079455}
.tdtk-ranking-movement-down{color:#d92d20}
.tdtk-ranking-movement-same{color:#667085}
.tdtk-ranking-movement-new{color:#175cd3}
.tdtk-ranking-logo{
    height:88px;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:4px auto 8px;
}
.tdtk-ranking-logo img{
    max-width:210px;
    max-height:76px;
    width:auto;height:auto;
    object-fit:contain;
}
.tdtk-ranking-category{
    font-size:11px;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
    color:#607795;
}
.tdtk-ranking-podium-card h3{
    font-size:25px;
    margin:7px 0 3px;
    color:#092653;
}
.tdtk-ranking-reward{font-size:19px;color:#102a56}
.tdtk-ranking-podium-card p{
    color:#58708e;
    line-height:1.48;
    margin:9px 0 14px;
    max-width:290px;
    font-size:15px;
}
.tdtk-ranking-actions{
    margin-top:auto;
    display:flex;
    gap:8px;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
}
.tdtk-ranking-actions a{
    text-decoration:none;
    font-weight:800;
    padding:10px 13px;
    border-radius:9px;
    font-size:14px;
}
.tdtk-ranking-actions .guide{background:#e9f3ff;color:#1769d5}
.tdtk-ranking-actions .offer{background:#ff286c;color:#fff}
.tdtk-ranking-list{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:12px;
}
.tdtk-ranking-row{
    display:grid;
    grid-template-columns:58px 110px minmax(0,1fr) 78px 150px;
    gap:16px;
    align-items:center;
    background:#fff;
    border:1px solid #dfe7ef;
    border-radius:15px;
    padding:13px 18px;
    box-shadow:0 4px 13px rgba(30,75,120,.035);
}
.tdtk-ranking-row .rank{font-size:20px;font-weight:900;text-align:center}
.tdtk-ranking-row .logo{height:52px;display:flex;align-items:center;justify-content:center}
.tdtk-ranking-row .logo img{max-width:100px;max-height:48px;object-fit:contain}
.tdtk-ranking-row .main h3{margin:0;font-size:18px;color:#092653}
.tdtk-ranking-row .main p{margin:4px 0 0;color:#637b98;font-size:14px;line-height:1.35}
.tdtk-ranking-row .reward{font-size:15px}
.tdtk-ranking-row .links{display:flex;gap:10px;justify-content:flex-end}
.tdtk-ranking-row .links a{text-decoration:none;font-weight:800}
.tdtk-ranking-row .guide{color:#1769d5}
.tdtk-ranking-row .offer{color:#ff286c}
.tdtk-ranking-method{
    display:grid;
    grid-template-columns:54px 1fr;
    gap:14px;
    align-items:start;
    margin:30px 0;
    padding:21px 24px;
    background:#f4f8fc;
    border-radius:17px;
}
.tdtk-ranking-method .method-icon{
    width:46px;height:46px;border-radius:50%;
    display:grid;place-items:center;
    background:#eaf3ff;color:#1769d5;
    font-size:25px;font-weight:800;
}
.tdtk-ranking-method h3,.tdtk-ranking-section h3{font-size:22px;margin:0 0 7px;color:#092653}
.tdtk-ranking-method p{margin:0;color:#5e7692;line-height:1.55}
.tdtk-ranking-section{margin-top:30px}
.tdtk-ranking-category-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}
.tdtk-ranking-category-grid article{
    min-height:82px;
    display:grid;
    grid-template-columns:58px 1fr auto;
    align-items:center;
    gap:10px;
    border:1px solid #dfe7ef;
    border-radius:14px;
    padding:12px 13px;
    background:#fff;
}
.tdtk-ranking-category-grid img{max-width:56px;max-height:42px;object-fit:contain}
.tdtk-ranking-category-grid div{display:flex;flex-direction:column;gap:4px;min-width:0}
.tdtk-ranking-category-grid strong{font-size:10px;text-transform:uppercase;color:#6a7e98}
.tdtk-ranking-category-grid span{font-weight:800;font-size:15px}
.tdtk-ranking-category-grid a{color:#1769d5;text-decoration:none;font-weight:800;white-space:nowrap}
.tdtk-ranking-candidates{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.tdtk-ranking-candidates article{border:1px solid #dfe7ef;border-radius:13px;padding:15px;background:#fff}
.tdtk-ranking-candidates article>div{display:flex;justify-content:space-between;gap:10px}
.tdtk-ranking-candidates span{font-size:12px;color:#946200;font-weight:800}
.tdtk-ranking-candidates p{margin:7px 0;color:#637b98}
.tdtk-ranking-candidates a{color:#1769d5;text-decoration:none;font-weight:800}
.tdtk-ranking-footer{text-align:center;color:#6a7e98;font-size:13px;margin-top:28px}
.tdtk-ranking-empty{padding:25px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
@media(max-width:900px){
    .tdtk-ranking-hero{grid-template-columns:1fr}
    .tdtk-ranking-tip{max-width:420px}
    .tdtk-ranking-benefits{grid-template-columns:1fr 1fr}
    .tdtk-ranking-podium{grid-template-columns:1fr;padding:20px 14px 30px}
    .tdtk-ranking-podium-card,.tdtk-ranking-podium-card.pos-1,.tdtk-ranking-podium-card.pos-2{min-height:0;transform:none}
    .tdtk-ranking-row{grid-template-columns:48px 80px minmax(0,1fr) 65px}
    .tdtk-ranking-row .links{grid-column:4;justify-content:flex-start}
    .tdtk-ranking-category-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
    .tdtk-ranking-hero{padding:20px 4px 8px}
    .tdtk-ranking-title-line{gap:10px}
    .tdtk-ranking-crown{font-size:42px}
    .tdtk-ranking-hero h2{font-size:30px}
    .tdtk-ranking-hero p{font-size:15px}
    .tdtk-ranking-benefits{grid-template-columns:1fr}
    .tdtk-ranking-updated{text-align:left;padding-left:4px}
    .tdtk-ranking-row{grid-template-columns:40px 60px minmax(0,1fr);gap:9px}
    .tdtk-ranking-row .movement{grid-column:3}
    .tdtk-ranking-row .reward,.tdtk-ranking-row .links{grid-column:3}
    .tdtk-ranking-category-grid,.tdtk-ranking-candidates{grid-template-columns:1fr}
    .tdtk-ranking-method{grid-template-columns:1fr}
}


/* ===== Ranking 3.0.0 — ajustes finales de maquetación ===== */

/* El título debe respirar, pero no ocupar media pantalla */
.tdtk-ranking-hero{
    padding:18px 8px 10px;
    grid-template-columns:minmax(0,1.35fr) minmax(270px,320px);
    gap:28px;
}
.tdtk-ranking-title-line{
    align-items:flex-start;
}
.tdtk-ranking-crown{
    font-size:48px;
    margin-top:3px;
}
.tdtk-ranking-hero h2{
    font-size:clamp(29px,3.35vw,42px);
    line-height:1.08;
    max-width:760px;
}
.tdtk-ranking-hero p{
    font-size:16px;
    margin-top:11px;
}
.tdtk-ranking-updated{
    padding:0 10px 10px;
}

/* Podium: más compacto verticalmente y mejor equilibrado */
.tdtk-ranking-podium{
    padding:16px 26px 27px;
}
.tdtk-ranking-podium-card{
    min-height:350px;
}
.tdtk-ranking-podium-card.pos-1{
    min-height:382px;
}
.tdtk-ranking-logo{
    height:78px;
}
.tdtk-ranking-logo img{
    max-width:205px;
    max-height:70px;
}

/* Filas: columnas estables, sin apretar el texto */
.tdtk-ranking-row{
    grid-template-columns:54px 105px minmax(250px,1fr) 62px 135px;
    gap:14px;
}
.tdtk-ranking-row .main{
    min-width:0;
}
.tdtk-ranking-row .main h3{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.tdtk-ranking-row .main p{
    max-width:620px;
}

/* Categorías: nunca permitir que las palabras se partan letra por letra */
.tdtk-ranking-category-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}
.tdtk-ranking-category-grid article{
    grid-template-columns:58px minmax(0,1fr);
    grid-template-rows:auto auto;
    min-width:0;
    min-height:94px;
}
.tdtk-ranking-category-grid img{
    grid-row:1 / span 2;
}
.tdtk-ranking-category-grid div{
    min-width:0;
}
.tdtk-ranking-category-grid strong{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    line-height:1.2;
}
.tdtk-ranking-category-grid span{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.tdtk-ranking-category-grid a{
    grid-column:2;
    justify-self:start;
    font-size:13px;
}

/* Si faltan candidatas, no dejamos un hueco visual innecesario */
.tdtk-ranking-candidates article{
    min-width:0;
}

/* Tablet */
@media(max-width:900px){
    .tdtk-ranking-hero{
        grid-template-columns:1fr;
        gap:16px;
    }
    .tdtk-ranking-hero h2{
        max-width:700px;
    }
    .tdtk-ranking-category-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

/* Móvil */
@media(max-width:560px){
    .tdtk-ranking-hero{
        padding:14px 4px 6px;
    }
    .tdtk-ranking-crown{
        font-size:38px;
    }
    .tdtk-ranking-hero h2{
        font-size:29px;
        line-height:1.08;
    }
    .tdtk-ranking-podium{
        padding:14px 12px 25px;
    }
    .tdtk-ranking-row .main h3{
        white-space:normal;
    }
    .tdtk-ranking-category-grid{
        grid-template-columns:1fr;
    }
}


/* Ajustes finales del ranking 3.0 */
.tdtk-ranking-podium {
    grid-template-columns: minmax(0,1fr) minmax(0,1.08fr) minmax(0,1fr);
}
.tdtk-ranking-podium-card {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
}
.tdtk-ranking-podium-card.pos-3 {
    overflow: hidden;
}
.tdtk-ranking-podium-card.pos-3 .tdtk-ranking-logo img {
    max-width: min(210px, 90%);
}
.tdtk-ranking-row {
    grid-template-columns: 58px 110px minmax(0,1fr) 150px;
}
.tdtk-ranking-row .tdtk-ranking-movement {
    position: static;
    justify-self: center;
    order: 4;
}
.tdtk-ranking-row .reward {
    display: none !important;
}
.tdtk-ranking-row .links {
    display: flex;
    gap: 7px;
    justify-content: flex-end;
    align-items: center;
}
.tdtk-ranking-row .links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 54px;
    padding: 8px 11px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1;
    box-sizing: border-box;
}
.tdtk-ranking-row .links .guide {
    background: #eaf3ff;
    color: #1769d5;
}
.tdtk-ranking-row .links .offer {
    background: #ff286c;
    color: #fff;
}
@media(max-width:900px){
    .tdtk-ranking-row {
        grid-template-columns: 48px 80px minmax(0,1fr) 65px;
    }
    .tdtk-ranking-row .links {
        grid-column: 4;
        justify-content: flex-start;
    }
}
@media(max-width:560px){
    .tdtk-ranking-row {
        grid-template-columns: 40px 60px minmax(0,1fr);
    }
    .tdtk-ranking-row .links {
        grid-column: 3;
    }
}

/* Ranking 3.0: el logo identifica la plataforma en el podium */
.tdtk-ranking-podium-card .tdtk-ranking-logo {
    height: 112px;
    margin-bottom: 10px;
}
.tdtk-ranking-podium-card.pos-1 .tdtk-ranking-logo {
    height: 122px;
}
.tdtk-ranking-podium-card .tdtk-ranking-logo img {
    max-width: 230px;
    max-height: 92px;
}
.tdtk-ranking-podium-card.pos-1 .tdtk-ranking-logo img {
    max-width: 250px;
    max-height: 102px;
}
@media(max-width:900px){
    .tdtk-ranking-podium-card .tdtk-ranking-logo,
    .tdtk-ranking-podium-card.pos-1 .tdtk-ranking-logo {
        height: 96px;
    }
}

/* Ranking 3.0: el logo identifica también las posiciones 4-10,
   categorías y candidatas. */
.tdtk-ranking-row .main p {
    margin: 0;
    font-size: 15px;
    line-height: 1.4;
}
.tdtk-ranking-category-grid article {
    grid-template-columns: 70px 1fr auto;
}
.tdtk-ranking-category-grid article img {
    max-width: 65px;
    max-height: 48px;
}
.tdtk-ranking-category-grid article div {
    justify-content: center;
}
.tdtk-ranking-category-grid article div strong {
    font-size: 11px;
    line-height: 1.3;
}
.tdtk-ranking-candidates {
    grid-template-columns: repeat(2, 1fr);
}
.tdtk-ranking-candidates article {
    display: grid;
    grid-template-columns: 100px 1fr;
    column-gap: 16px;
    align-items: center;
}
.tdtk-ranking-candidates .candidate-logo {
    grid-row: 1 / span 3;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
}
.tdtk-ranking-candidates .candidate-logo img {
    max-width: 90px;
    max-height: 55px;
    object-fit: contain;
}
.tdtk-ranking-candidates .candidate-meta {
    display: flex;
    justify-content: flex-start;
}
.tdtk-ranking-candidates p {
    margin: 5px 0;
}
.tdtk-ranking-candidates a {
    justify-self: start;
}
@media(max-width:900px){
    .tdtk-ranking-candidates {
        grid-template-columns: 1fr;
    }
}
@media(max-width:560px){
    .tdtk-ranking-candidates article {
        grid-template-columns: 80px 1fr;
    }
    .tdtk-ranking-candidates .candidate-logo img {
        max-width: 72px;
    }
}

/* Categorías: tarjetas robustas, sin desbordamientos */
.tdtk-ranking-category-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.tdtk-ranking-category-grid article {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    min-height: 112px;
    grid-template-columns: 68px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 8px;
    padding: 14px 15px;
    overflow: hidden;
}
.tdtk-ranking-category-grid article img {
    grid-row: 1 / span 2;
    width: 68px;
    max-width: 68px;
    max-height: 52px;
}
.tdtk-ranking-category-grid article div {
    min-width: 0;
    width: 100%;
}
.tdtk-ranking-category-grid article div strong {
    display: block;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    font-size: 10px;
    line-height: 1.25;
}
.tdtk-ranking-category-grid article a {
    grid-column: 2;
    justify-self: start;
    max-width: 100%;
    white-space: nowrap;
    font-size: 14px;
    line-height: 1.2;
}
@media(max-width:900px) {
    .tdtk-ranking-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media(max-width:560px) {
    .tdtk-ranking-category-grid {
        grid-template-columns: 1fr;
    }
}

/* Categorías: etiqueta en una columna estrecha y máximo 3 líneas */
.tdtk-ranking-category-grid article div {
    width: 100px;
    min-width: 0;
}
.tdtk-ranking-category-grid article div strong {
    width: 100%;
    max-width: 100px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    text-align: left;
    line-height: 1.25;
}
@media(max-width:900px) {
    .tdtk-ranking-category-grid article div {
        width: 95px;
    }
    .tdtk-ranking-category-grid article div strong {
        max-width: 95px;
    }
}
@media(max-width:560px) {
    .tdtk-ranking-category-grid article div {
        width: auto;
    }
    .tdtk-ranking-category-grid article div strong {
        max-width: none;
    }
}

/* Categorías: diseño limpio en tres zonas: logo / categoría / guía */
.tdtk-ranking-category-grid article {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 48px minmax(34px, auto) 28px;
    justify-items: center;
    align-items: center;
    gap: 7px;
    min-height: 128px;
    padding: 14px 12px 12px;
    text-align: center;
}
.tdtk-ranking-category-grid article img {
    grid-row: 1;
    width: auto;
    max-width: 100px;
    max-height: 44px;
}
.tdtk-ranking-category-grid article div {
    grid-row: 2;
    width: 100%;
    max-width: 170px;
    min-width: 0;
}
.tdtk-ranking-category-grid article div strong {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    text-align: center;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    font-size: 11px;
    line-height: 1.25;
}
.tdtk-ranking-category-grid article a {
    grid-row: 3;
    grid-column: 1;
    justify-self: center;
    white-space: nowrap;
    font-size: 14px;
    line-height: 1;
}
@media(max-width:900px) {
    .tdtk-ranking-category-grid article div {
        max-width: 150px;
    }
}
@media(max-width:560px) {
    .tdtk-ranking-category-grid article {
        min-height: 120px;
    }
}

/* Cabecera eliminada: el H1 de WordPress es suficiente */
.tdtk-ranking-hero {
    display: none !important;
}

/* =========================================================
   Ranking 3.0 — Mobile first
   El 85% de las visitas llega desde móvil.
   ========================================================= */
@media (max-width: 560px) {

    /* Los 4 argumentos pasan a una cuadrícula 2x2 */
    .tdtk-ranking-benefits {
        grid-template-columns: 1fr 1fr !important;
        gap: 12px 10px;
        margin: 12px 0 18px;
    }
    .tdtk-ranking-benefits > div {
        min-width: 0;
        gap: 9px;
        align-items: center;
    }
    .tdtk-ranking-benefits .benefit-icon {
        flex: 0 0 46px;
        width: 46px;
        height: 46px;
        font-size: 21px;
    }
    .tdtk-ranking-benefits strong,
    .tdtk-ranking-benefits small {
        font-size: 14px;
        line-height: 1.25;
    }

    /* Podium: una tarjeta por fila, sin scroll horizontal */
    .tdtk-ranking-podium {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px;
        padding: 14px 10px 20px !important;
        overflow: visible;
    }
    .tdtk-ranking-podium-card,
    .tdtk-ranking-podium-card.pos-1,
    .tdtk-ranking-podium-card.pos-2,
    .tdtk-ranking-podium-card.pos-3 {
        grid-column: 1 !important;
        grid-row: auto !important;
        order: initial;
        width: 100%;
        min-width: 0;
        min-height: 0 !important;
        height: auto;
        transform: none !important;
        padding: 20px 18px 18px;
    }

    /* Orden lógico en móvil: 1º, 2º, 3º */
    .tdtk-ranking-podium-card.pos-1 { order: 1; }
    .tdtk-ranking-podium-card.pos-2 { order: 2; }
    .tdtk-ranking-podium-card.pos-3 { order: 3; }

    .tdtk-ranking-podium-card .tdtk-ranking-medal {
        position: static;
        margin: 0 auto 10px;
    }
    .tdtk-ranking-podium-card .tdtk-ranking-logo,
    .tdtk-ranking-podium-card.pos-1 .tdtk-ranking-logo {
        height: 82px;
        margin-bottom: 6px;
    }
    .tdtk-ranking-podium-card .tdtk-ranking-logo img,
    .tdtk-ranking-podium-card.pos-1 .tdtk-ranking-logo img {
        max-width: 210px;
        max-height: 72px;
    }
    .tdtk-ranking-podium-card.pos-3 .tdtk-ranking-logo img {
        max-width: 210px;
    }
    .tdtk-ranking-podium-card .tdtk-ranking-category {
        font-size: 12px;
        line-height: 1.2;
    }
    .tdtk-ranking-podium-card .tdtk-ranking-reason {
        font-size: 17px;
        line-height: 1.4;
        max-width: 100%;
    }
    .tdtk-ranking-podium-card .tdtk-ranking-links {
        margin-top: 12px;
        flex-wrap: wrap;
    }

    /* Filas 4–10: una estructura clara y sin apretar */
    .tdtk-ranking-row {
        grid-template-columns: 42px 78px minmax(0, 1fr) !important;
        gap: 9px;
        padding: 14px 10px;
    }
    .tdtk-ranking-row .logo img {
        max-width: 76px;
        max-height: 48px;
    }
    .tdtk-ranking-row .main p {
        font-size: 15px;
        line-height: 1.35;
    }
    .tdtk-ranking-row .links {
        grid-column: 3 !important;
        justify-content: flex-start;
        margin-top: 2px;
    }

    /* Categorías: 2 columnas para no hacer interminable la página */
    .tdtk-ranking-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px;
    }
    .tdtk-ranking-category-grid article {
        min-height: 132px;
        padding: 12px 8px 10px;
    }
    .tdtk-ranking-category-grid article img {
        max-width: 92px;
        max-height: 42px;
    }
    .tdtk-ranking-category-grid article div {
        max-width: 100%;
    }
    .tdtk-ranking-category-grid article div strong {
        font-size: 10px;
        line-height: 1.25;
        text-align: center;
        -webkit-line-clamp: 3;
    }
    .tdtk-ranking-category-grid article a {
        font-size: 13px;
    }

    /* Candidatas: compactas y legibles */
    .tdtk-ranking-candidates article {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 12px;
        padding: 14px 10px;
    }
    .tdtk-ranking-candidates .candidate-logo img {
        max-width: 74px;
        max-height: 48px;
    }
}

/* Podium móvil más compacto */
@media (max-width: 560px) {
    .tdtk-ranking-podium {
        gap: 12px;
        padding: 16px 12px 18px;
    }
    .tdtk-ranking-podium .tdtk-ranking-card {
        min-height: 0;
        padding-top: 22px;
        padding-bottom: 18px;
    }
    .tdtk-ranking-podium .tdtk-ranking-card img {
        max-height: 82px;
    }
    .tdtk-ranking-podium .tdtk-ranking-card p {
        margin-top: 8px;
        margin-bottom: 12px;
    }
    .tdtk-ranking-podium .tdtk-ranking-card .tdtk-ranking-actions {
        margin-top: 8px;
    }
}


/* ===== Entrada limpia del ranking ===== */
.tdtk-ranking-mini-intro{
    display:flex;
    align-items:center;
    gap:14px;
    margin:2px 8px 18px;
    padding:15px 18px;
    background:#f3f8fd;
    border:1px solid #dce8f3;
    border-radius:16px;
}
.tdtk-ranking-mini-intro-icon{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff3c4;
    font-size:21px;
}
.tdtk-ranking-mini-intro strong,
.tdtk-ranking-mini-intro span{
    display:block;
}
.tdtk-ranking-mini-intro strong{
    color:#092653;
    font-size:15px;
    line-height:1.25;
}
.tdtk-ranking-mini-intro span{
    margin-top:3px;
    color:#5d7592;
    font-size:14px;
    line-height:1.4;
}
@media(max-width:560px){
    .tdtk-ranking-mini-intro{
        margin:2px 4px 16px;
        padding:13px 15px;
        gap:11px;
    }
    .tdtk-ranking-mini-intro-icon{
        flex-basis:38px;
        width:38px;
        height:38px;
        font-size:19px;
    }
    .tdtk-ranking-mini-intro strong{
        font-size:14px;
    }
    .tdtk-ranking-mini-intro span{
        font-size:13px;
    }
}

/* Ranking 3.0 — rediseño seguro de posiciones 4-10 */
.tdtk-ranking-row{
    grid-template-columns:70px 280px minmax(0,1fr);
    column-gap:18px;
    row-gap:10px;
    align-items:center;
    padding:18px 20px;
    min-height:116px;
}
.tdtk-ranking-row .rank{
    grid-column:1;
    grid-row:1 / span 2;
    align-self:center;
    font-size:28px;
}
.tdtk-ranking-row .logo{
    grid-column:2;
    grid-row:1 / span 2;
    width:100%;
    height:76px;
    justify-content:center;
}
.tdtk-ranking-row .logo img{
    width:100%;
    max-width:250px;
    max-height:76px;
    object-fit:contain;
}
.tdtk-ranking-row .main{
    grid-column:3;
    grid-row:1;
}
.tdtk-ranking-row .main p{
    margin:0;
    font-size:17px;
    line-height:1.4;
}
.tdtk-ranking-row .links{
    grid-column:3;
    grid-row:2;
    justify-content:flex-start;
}
.tdtk-ranking-row .links a{
    padding:9px 18px;
    border-radius:10px;
    font-size:15px;
}
.tdtk-ranking-row{
    position:relative;
}
.tdtk-ranking-row .tdtk-ranking-movement{
    position:absolute;
    top:10px;
    right:14px;
    margin:0;
    font-size:11px;
}

@media(max-width:900px){
    .tdtk-ranking-row{
        grid-template-columns:62px 190px minmax(0,1fr);
        column-gap:14px;
        row-gap:9px;
        padding:16px;
    }
    .tdtk-ranking-row .logo{height:68px}
    .tdtk-ranking-row .logo img{max-width:180px;max-height:68px}
    .tdtk-ranking-row .main p{font-size:16px}
}

@media(max-width:560px){
    /* En móvil: puesto + logo arriba, texto debajo y CTAs al final.
       Así el logo 600x200 puede crecer sin estrangular el texto. */
    .tdtk-ranking-list{
        gap:12px;
    }
    .tdtk-ranking-row{
        display:grid !important;
        grid-template-columns:52px minmax(0,1fr) !important;
        grid-template-rows:auto auto auto !important;
        column-gap:10px !important;
        row-gap:10px !important;
        padding:15px 14px 16px !important;
        min-height:0 !important;
        border-radius:17px;
    }
    .tdtk-ranking-row .rank{
        grid-column:1 !important;
        grid-row:1 !important;
        align-self:center !important;
        justify-self:start !important;
        font-size:25px !important;
        padding:0 !important;
        text-align:left !important;
    }
    .tdtk-ranking-row .logo{
        grid-column:2 !important;
        grid-row:1 !important;
        width:100% !important;
        height:58px !important;
        justify-content:flex-start !important;
        align-self:center !important;
    }
    .tdtk-ranking-row .logo img{
        width:100% !important;
        max-width:210px !important;
        max-height:58px !important;
        object-fit:contain !important;
        object-position:left center !important;
    }
    .tdtk-ranking-row .main{
        grid-column:1 / -1 !important;
        grid-row:2 !important;
        align-self:start !important;
    }
    .tdtk-ranking-row .main p{
        margin:0 !important;
        font-size:16px !important;
        line-height:1.38 !important;
    }
    .tdtk-ranking-row .links{
        grid-column:1 / -1 !important;
        grid-row:3 !important;
        justify-content:flex-start !important;
        gap:8px !important;
        margin-top:0 !important;
    }
    .tdtk-ranking-row .links a{
        padding:9px 14px !important;
        font-size:14px !important;
        border-radius:9px !important;
    }
    .tdtk-ranking-row .links .guide:before{
        content:"📄 ";
    }
    .tdtk-ranking-row .tdtk-ranking-movement{
        top:8px !important;
        right:10px !important;
        font-size:10px !important;
    }
}


/* Ranking en portada: compacto y subordinado al contenido principal */
.tdtk-ranking-home{
    margin:32px 0 40px;
    padding:22px 24px 24px;
    background:#f3f8fd;
    border:1px solid #dce8f3;
    border-radius:18px;
}
.tdtk-ranking-home-head{
    display:flex;
    align-items:center;
    gap:13px;
    margin-bottom:17px;
}
.tdtk-ranking-home-icon{
    flex:0 0 46px;
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff3c4;
    font-size:23px;
}
.tdtk-ranking-home-head h2{
    margin:0;
    color:#12335d;
    font-size:24px;
    line-height:1.15;
}
.tdtk-ranking-home-head p{
    margin:3px 0 0;
    color:#607a97;
    font-size:15px;
    line-height:1.35;
}
.tdtk-ranking-home-podium{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.tdtk-ranking-home-item{
    min-width:0;
    height:60px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 11px;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #dce4ec;
    border-radius:12px;
    text-decoration:none;
}
.tdtk-ranking-home-pos{
    flex:0 0 auto;
    color:#12335d;
    font-weight:700;
    font-size:14px;
}
.tdtk-ranking-home-item img{
    display:block;
    width:auto;
    max-width:145px;
    height:42px;
    object-fit:contain;
    object-position:left center;
}
.tdtk-ranking-home-cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:16px;
    padding:10px 18px;
    border-radius:10px;
    background:#1976d2;
    color:#fff !important;
    font-size:15px;
    font-weight:700;
    text-decoration:none;
}
@media(max-width:560px){
    .tdtk-ranking-home{
        margin:26px 0 34px;
        padding:18px 16px 18px;
        border-radius:17px;
    }
    .tdtk-ranking-home-head{
        gap:11px;
        margin-bottom:14px;
    }
    .tdtk-ranking-home-icon{
        flex-basis:42px;
        width:42px;
        height:42px;
        font-size:21px;
    }
    .tdtk-ranking-home-head h2{
        font-size:21px;
    }
    .tdtk-ranking-home-head p{
        font-size:14px;
    }
    .tdtk-ranking-home-podium{
        gap:8px;
    }
    .tdtk-ranking-home-item{
        height:54px;
        padding:7px 8px;
        gap:6px;
        border-radius:10px;
    }
    .tdtk-ranking-home-pos{
        font-size:12px;
    }
    .tdtk-ranking-home-item img{
        max-width:92px;
        height:32px;
    }
    .tdtk-ranking-home-cta{
        display:flex;
        width:100%;
        box-sizing:border-box;
        margin-top:14px;
        padding:10px 14px;
    }
}


/* CTA del Ranking en portada: navegación secundaria, más compacto */
.tdtk-ranking-home-cta{
    margin-top:14px;
    padding:9px 16px;
    font-size:14px;
    border-radius:9px;
}
@media(max-width:560px){
    .tdtk-ranking-home-cta{
        margin-top:12px;
        padding:9px 14px;
        font-size:14px;
    }
}


/* Ranking portada: logos contenidos dentro de sus tarjetas en móvil */
.tdtk-ranking-home-item{
    overflow:hidden;
}
.tdtk-ranking-home-item img{
    flex:1 1 auto;
    min-width:0;
    width:auto !important;
}
@media(max-width:560px){
    .tdtk-ranking-home-item{
        min-width:0 !important;
        overflow:hidden !important;
        padding:7px 7px !important;
        gap:5px !important;
    }
    .tdtk-ranking-home-pos{
        flex:0 0 22px !important;
        width:22px !important;
        font-size:12px !important;
        text-align:center;
    }
    .tdtk-ranking-home-item img{
        display:block !important;
        flex:1 1 auto !important;
        min-width:0 !important;
        width:auto !important;
        max-width:calc(100% - 27px) !important;
        height:29px !important;
        object-fit:contain !important;
        object-position:left center !important;
    }
}
