/* ==========================================================================
   BravoZulu · Núcleo compartido del plugin de temas
   Copia funcional del core de `bravozulu-bloques`: mismas variables, mismo
   reset, mismos botones. Se mantiene aparte para que actualizar los temas
   no pueda romper la home (decisión del documento 03).
   ========================================================================== */

.opr{/* Escala Pizarra · documento 01, punto 2.1 */
  --p50:#F1F7F2 !important; --p100:#DAF1DE; --p200:#CDE7D3; --p300:#B1D1B9; --p400:#8EB69B; --p500:#6D9881; --p600:#4C7866; --p700:#235347; --p800:#163832; --p900:#0B2B26; --p950:#051F20; /* Nombres funcionales */
  --fondo:var(--p50) !important; --superficie:#FFFFFF; --borde:var(--p200); --borde2:var(--p300); --tinta:var(--p950); --suave:var(--p700); --tenue:var(--p500); /* Estados · los únicos colores del sistema */
  --ok-100:#DEF7DB !important; --ok-500:#44A53B; --ok-600:#33862C; --ok-900:#173614; --no-100:#FBE5E5; --no-500:#DD3C3C; --no-600:#BA2C2C; --no-900:#3D1414; --av-100:#FDEFD9; --av-500:#F09D0F; --av-600:#B87C14; --av-900:#39290E; --radio:16px; --radio-s:11px; --sombra-s:0 1px 2px rgba(5,31,32,.06), 0 8px 20px -14px rgba(5,31,32,.3); --sombra:0 1px 2px rgba(5,31,32,.05), 0 22px 50px -30px rgba(5,31,32,.34); --ancho:1180px; font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif !important; font-size:16px !important; line-height:1.6 !important; color:var(--tinta) !important; -webkit-font-smoothing:antialiased !important; box-sizing:border-box !important}

/* Reset. Ojo con la trampa nº 6 del manual: este selector mide (0,1,0) igual
   que una clase de componente, así que las reglas de sección van prefijadas. */
.opr *,.opr *::before,.opr *::after{margin:0 !important; padding:0 !important; border:0 !important; background:none !important; box-shadow:none !important; outline:none !important; box-sizing:border-box !important; font-family:inherit !important; letter-spacing:inherit !important; line-height:inherit !important; color:inherit !important; max-width:none !important; min-width:0 !important}
.opr img,.opr svg{display:block !important; max-width:100% !important}
.opr [hidden]{display:none !important}
.opr a{text-decoration:none !important; cursor:pointer !important}
.opr button{cursor:pointer !important; font:inherit !important; text-align:left !important}
.opr ul,.opr ol{list-style:none !important}
.opr table{border-collapse:collapse !important; width:100% !important}

.opr :focus-visible{outline:2px solid var(--tinta) !important; outline-offset:2px !important}
.opr .es-noche :focus-visible{outline-color:var(--p100) !important}

/* Tipografía · documento 01, punto 3.2 */
.opr .opr-h2{font-size:clamp(1.85rem,4vw,2.9rem) !important; line-height:1.04 !important; font-weight:800 !important; letter-spacing:-.03em !important; text-wrap:balance !important}
.opr .opr-h3{font-size:1.3rem !important; line-height:1.28 !important; font-weight:700 !important; letter-spacing:-.02em !important; text-wrap:balance !important}
.opr .opr-h4{font-size:1.0625rem !important; line-height:1.35 !important; font-weight:700 !important; letter-spacing:-.012em !important}
.opr .opr-rotulo{font-size:.95rem !important; line-height:1.6 !important; font-weight:600 !important; letter-spacing:-.005em !important; color:var(--suave) !important}
.opr .opr-entradilla{font-size:1.0625rem !important; line-height:1.6 !important; color:var(--suave) !important; max-width:62ch !important; text-wrap:pretty !important}
.opr .opr-nota{font-size:.8125rem !important; line-height:1.6 !important; color:var(--tenue) !important}
.opr .opr-cifra{letter-spacing:-.02em !important; font-variant-numeric:tabular-nums !important}

/* Botones · documento 01, punto 5.1 */
.opr .opr-btn{display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:8px !important; padding:14px 24px !important; border-radius:999px !important; font-weight:700 !important; font-size:1rem !important; line-height:1 !important; letter-spacing:-.012em !important; transition:background .16s,color .16s,box-shadow .16s,transform .12s !important}
.opr .opr-btn:active{transform:translateY(1px) !important}
.opr .opr-btn:disabled{opacity:.42 !important; cursor:default !important}
.opr .opr-btn-1{background:var(--p950) !important; color:#fff !important}
.opr .opr-btn-1:hover{background:var(--p800) !important}
.opr .opr-btn-2{background:transparent !important; color:var(--tinta) !important; box-shadow:inset 0 0 0 1px var(--borde2) !important}
.opr .opr-btn-2:hover{box-shadow:inset 0 0 0 1px var(--p500) !important}
.opr .es-noche .opr-btn-1{background:var(--p50) !important; color:var(--p950) !important}
.opr .es-noche .opr-btn-1:hover{background:#fff !important}
.opr .es-noche .opr-btn-2{color:#fff !important; box-shadow:inset 0 0 0 1px var(--p800) !important}

.opr .opr-caja{width:100% !important; max-width:var(--ancho) !important; margin:0 auto !important}

@media (prefers-reduced-motion:reduce){
  .opr *,.opr *::before,.opr *::after{transition:none !important; animation:none !important; scroll-behavior:auto !important}
}
