/*
Theme Name: OpoData
Description: Tema de OpoData — directorio de oposiciones con Score de Oportunidad. Diseño plano, marca propia; los colores viven en design-tokens.css. Requiere el plugin opodata-core.
Version: 1.0.0
Author: OpoData
*/

/* Los tokens (--opd-*) se encolan aparte (assets/design-tokens.css) antes que este archivo. */

*{box-sizing:border-box}
body{margin:0;font-family:var(--opd-font-body);color:var(--opd-ink);background:#fff;line-height:var(--opd-lh-body)}
a{color:var(--opd-navy);text-decoration:none}
.opd-wrap{max-width:var(--opd-maxw);margin:0 auto;padding:0 20px}
.opd-read{max-width:var(--opd-maxw-read);margin:0 auto}

/* ---- Header / footer ---- */
.opd-header{border-bottom:var(--opd-border);background:#fff}
.opd-header .opd-wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
.opd-logo{display:flex;align-items:center;gap:10px}
.opd-wordmark{font-family:var(--opd-font-title);font-weight:var(--opd-weight-med);font-size:22px;color:var(--opd-ink)}
.opd-nav a{font-size:var(--opd-fs-sm);color:var(--opd-muted);margin-left:18px}
.opd-nav a:hover{color:var(--opd-navy)}
.opd-footer{background:var(--opd-navy);color:var(--opd-cloud);margin-top:var(--opd-space-xl);padding:var(--opd-space-lg) 0;font-size:var(--opd-fs-sm)}

/* ---- Ficha de oposición ---- */
.opd-ficha{max-width:640px;margin:24px auto;background:var(--opd-paper);border-radius:var(--opd-radius-lg);padding:6px}
.opd-hero{background:var(--opd-navy);border-radius:13px;padding:22px 24px}
.opd-hero .eyebrow{font-size:var(--opd-fs-xs);color:var(--opd-cloud, #CFE0E3);margin:0 0 3px}
.opd-hero h1{font-family:var(--opd-font-title);font-weight:500;font-size:22px;color:var(--opd-paper);margin:0 0 14px;line-height:var(--opd-lh-tight)}
.opd-hero-score{display:flex;align-items:center;gap:14px}
.opd-band{font-family:var(--opd-font-title);font-weight:500;font-size:17px;color:var(--opd-amber);margin:2px 0 4px}
.opd-body{padding:16px}
.opd-card{background:#fff;border-radius:10px;padding:13px 15px;margin-bottom:10px}
.opd-sec{font-size:var(--opd-fs-xxs);color:var(--opd-muted);margin:0 0 9px;letter-spacing:.03em;text-transform:uppercase}
.opd-dim{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.opd-dim .lbl{font-size:var(--opd-fs-xs);color:var(--opd-muted);width:96px}
.opd-dim .bar{flex:1;height:7px;background:var(--opd-track);border-radius:4px;overflow:hidden}
.opd-dim .bar>span{display:block;height:7px;background:var(--opd-navy)}
.opd-dim .val{font-family:var(--opd-font-mono);font-size:var(--opd-fs-xs);color:var(--opd-ink);width:24px;text-align:right}
.opd-chips{display:flex;gap:7px;flex-wrap:wrap}
.opd-chip{font-size:var(--opd-fs-xs);background:var(--opd-navy);color:#fff;padding:5px 12px;border-radius:var(--opd-radius-pill)}
.opd-chip.off{background:var(--opd-chip);color:var(--opd-navy)}
.opd-lectura{border-left:3px solid var(--opd-amber);background:#fff;padding:11px 15px;border-radius:0 8px 8px 0;margin-bottom:14px;font-size:var(--opd-fs-sm)}
.opd-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.opd-metric{background:#fff;border-radius:8px;padding:10px}
.opd-metric .k{font-size:var(--opd-fs-xxs);color:var(--opd-muted);margin:0}
.opd-metric .v{font-family:var(--opd-font-mono);font-size:16px;font-weight:500;color:var(--opd-ink);margin:2px 0 0}
.opd-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:var(--opd-border)}
.opd-row:last-child{border-bottom:none}
.opd-conv{background:var(--opd-navy);border-radius:10px;padding:13px 15px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.opd-cta{font-family:var(--opd-font-title);font-weight:500;font-size:var(--opd-fs-sm);background:var(--opd-amber);color:var(--opd-ink);padding:9px 16px;border-radius:8px;white-space:nowrap}
.opd-foot-meta{display:flex;justify-content:space-between;padding:4px 2px 10px;font-size:var(--opd-fs-xxs);color:var(--opd-faint)}
.opd-aviso{background:var(--opd-warn-bg);color:var(--opd-warn);padding:12px 15px;border-radius:8px;font-size:var(--opd-fs-sm)}

@media(max-width:520px){.opd-metrics{grid-template-columns:repeat(2,1fr)}}

/* ---- Home ---- */
.opd-hero-home{background:var(--opd-navy);border-radius:var(--opd-radius-lg);padding:40px 32px;margin:24px 0}
.opd-hero-home .eyebrow{font-size:var(--opd-fs-xs);color:var(--opd-amber);margin:0 0 10px}
.opd-hero-home h1{font-family:var(--opd-font-title);font-weight:500;font-size:var(--opd-fs-hero);color:var(--opd-paper);margin:0 0 8px;line-height:var(--opd-lh-tight)}
.opd-hero-home h1 .hl{color:var(--opd-amber)}
.opd-hero-home .sub{font-size:var(--opd-fs-body);color:var(--opd-cloud, #CFE0E3);margin:0 0 18px}
.opd-search{display:flex;gap:8px;align-items:center;background:#fff;border-radius:11px;padding:7px 7px 7px 15px}
.opd-search input{border:none;outline:none;font-size:14px;flex:1;color:var(--opd-ink);background:transparent}
.opd-search button{font-family:var(--opd-font-title);font-weight:500;font-size:13px;background:var(--opd-amber);color:var(--opd-ink);padding:9px 18px;border-radius:8px;border:none;cursor:pointer}
/* --opd-sky resolvía a #4a5b60 en prod (1.72:1, falla AA); --opd-cloud = #CFE0E3 sobre navy → 9:1 */
.opd-hero-cta-note{font-size:var(--opd-fs-xs);color:var(--opd-cloud, #CFE0E3)}
.opd-hero-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}
.opd-hero-chips a{font-size:var(--opd-fs-xs);background:var(--opd-navy-soft);color:var(--opd-cloud);padding:6px 13px;border-radius:var(--opd-radius-pill)}
.opd-section{margin:36px 0}
.opd-section h2{font-family:var(--opd-font-title);font-weight:500;font-size:var(--opd-fs-h2);margin:0 0 4px}
.opd-section .lead{font-size:var(--opd-fs-sm);color:var(--opd-muted);margin:0 0 16px}
.opd-grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.opd-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.opd-rank{background:var(--opd-paper);border-radius:var(--opd-radius);padding:4px 16px}
.opd-rank-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:var(--opd-border);text-decoration:none}
.opd-rank-row:last-child{border-bottom:none}
.opd-home-score{width:44px;height:44px;border-radius:50%;background:var(--opd-navy);border:2px solid var(--opd-amber);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--opd-font-title);font-weight:500;font-size:15px;color:var(--opd-amber)}
.opd-tool{display:block;background:#fff;border:var(--opd-border);border-radius:var(--opd-radius);padding:14px 16px;text-decoration:none}
.opd-tool .ico{font-size:24px}
.opd-tool .t{font-family:var(--opd-font-title);font-weight:500;font-size:14px;color:var(--opd-ink);margin:8px 0 2px}
.opd-tool .d{font-size:var(--opd-fs-xs);color:var(--opd-muted);margin:0}
.opd-confianza{background:var(--opd-navy);border-radius:var(--opd-radius);padding:24px 28px;margin:36px 0}
.opd-confianza h2{color:var(--opd-paper);font-family:var(--opd-font-title);font-weight:500;font-size:18px;margin:0 0 6px}
.opd-confianza h2 .hl{color:var(--opd-amber)}
.opd-confianza p{font-size:var(--opd-fs-sm);color:var(--opd-cloud, #CFE0E3);margin:0 0 14px;max-width:640px}

/* ---- Prosa de ficha (cuerpo editorial) ---- */
.opd-prosa{font-size:15px;color:var(--opd-ink);margin:8px 0 14px;padding:0 2px}
.opd-prosa h3{font-family:var(--opd-font-title);font-weight:500;font-size:16px;margin:18px 0 6px}
.opd-prosa p{margin:0 0 10px;line-height:1.7}
.opd-prosa ul{margin:0 0 10px;padding-left:20px}
.opd-prosa li{margin:0 0 4px}

/* ---- Miga de pan ---- */
.opd-breadcrumb{font-size:12px;color:var(--opd-muted);max-width:640px;margin:0 auto;padding:0 2px;line-height:1.5}
.opd-breadcrumb a{color:var(--opd-muted)}
.opd-breadcrumb a:hover{color:var(--opd-navy)}
.opd-breadcrumb .sep{color:var(--opd-track)}

/* ---- Autoenlace de glosario ---- */
.opd-gloss{color:inherit;border-bottom:1px dotted var(--opd-navy-soft);text-decoration:none}
.opd-gloss:hover{border-bottom-color:var(--opd-navy)}
