/* OPPA News — hoja de estilos única. No hay build ni framework. */
:root{
  --papel:#faf9f5; --papel-2:#f5f3ec; --tinta:#1a1a18; --tinta-2:#3a3a35;
  --gris:#6b6b66; --gris-2:#7a776c; --linea:#dcdad2; --linea-2:#e6e4dc; --acento:#8C1C13;
  --serif-titulo:'Playfair Display',Georgia,serif; --serif-texto:'Source Serif 4',Georgia,serif;
  --sans:'Archivo',Helvetica,Arial,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 30px}

/* Cintillo */
.cintillo{background:var(--tinta);color:#f7f6f2;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em}
.cintillo .wrap{display:flex;justify-content:space-between;align-items:center;padding:9px 30px;gap:20px;flex-wrap:wrap}
.cintillo nav{display:flex;gap:22px}

/* Cabezal */
.cabezal{text-align:center;padding:28px 0 18px;border-bottom:3px double var(--tinta)}
.cabezal .entidad{font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:var(--acento);text-transform:uppercase}
.cabezal .logo{font-family:var(--serif-titulo);font-weight:800;font-size:74px;line-height:1;letter-spacing:-.025em;margin-top:10px;display:block}
.cabezal .lema{font-family:var(--serif-texto);font-style:italic;font-size:16px;color:#57564f;margin-top:8px}

/* Menú */
.menu{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 0;border-bottom:1px solid var(--linea);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.menu ul{display:flex;gap:24px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.menu a.activo{color:var(--acento)}
.menu .buscar{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--gris);text-transform:none}

/* Rejillas */
.portada{display:grid;grid-template-columns:1fr 312px}
.portada .principal{padding:28px 30px 28px 0;border-right:1px solid var(--linea)}
.portada .lateral{padding:28px 0 28px 22px;display:flex;flex-direction:column;gap:22px}
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.apertura{display:grid;grid-template-columns:1.3fr 1fr;gap:28px}
.contenido{display:grid;grid-template-columns:1fr 312px;gap:40px;padding-top:28px}
.filete{height:1px;background:var(--linea);margin:26px 0}

/* Tipografía editorial */
.volanta{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--acento);text-transform:uppercase}
.volanta-sm{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--acento);text-transform:uppercase}
h1.titular{font-family:var(--serif-titulo);font-weight:800;font-size:46px;line-height:1.03;letter-spacing:-.018em;margin:10px 0 0;text-wrap:pretty}
h1.titular-nota{font-family:var(--serif-titulo);font-weight:800;font-size:52px;line-height:1.03;letter-spacing:-.02em;margin:12px 0 0;text-wrap:pretty}
h1.titulo-seccion{font-family:var(--serif-titulo);font-weight:800;font-size:48px;line-height:1;margin:8px 0 0;letter-spacing:-.02em}
h2.subtitulo{font-family:var(--sans);font-size:14px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:10px 0 0;color:var(--acento)}
h3.titulo-tarjeta{font-family:var(--serif-titulo);font-weight:600;font-size:21px;line-height:1.15;margin:0;text-wrap:pretty}
.bajada{font-family:var(--serif-texto);font-size:17.5px;line-height:1.55;color:var(--tinta-2);margin:14px 0 0;text-wrap:pretty}
.bajada-nota{font-family:var(--serif-texto);font-size:21px;line-height:1.5;color:var(--tinta-2);margin:16px 0 0;text-wrap:pretty}
.sumario{font-family:var(--serif-texto);font-size:14.5px;line-height:1.5;color:#4a4a44;margin:0}
.credito{font-family:var(--mono);font-size:11.5px;color:var(--gris);margin-top:14px}
.cuerpo{font-family:var(--serif-texto);font-size:19px;line-height:1.68;color:#22221f;margin-top:28px;display:flex;flex-direction:column;gap:18px;max-width:720px}
.cuerpo p{margin:0;text-wrap:pretty}
.cuerpo p.capitular:first-letter{font-family:var(--serif-titulo);font-weight:800;font-size:56px;line-height:.82;float:left;margin:6px 12px 0 0}
.cuerpo blockquote{margin:6px 0;padding-left:22px;border-left:3px solid var(--acento);font-family:var(--serif-titulo);font-style:italic;font-size:26px;line-height:1.32;color:var(--tinta)}
.epigrafe{font-family:var(--mono);font-size:10.5px;color:var(--gris-2);line-height:1.45}
.ruta{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--gris);padding:18px 0;text-transform:uppercase}
.firma{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--tinta);border-bottom:1px solid var(--linea);padding:14px 0;margin-top:22px;font-family:var(--mono);font-size:11.5px;color:var(--gris);letter-spacing:.05em}
.firma nav{display:flex;gap:16px}

/* Placeholders de imagen: reemplazar por <img src="..."> */
.foto{background-image:repeating-linear-gradient(45deg,#e6e3d9 0 8px,#dcd8cb 8px 16px);display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;font-family:var(--mono);font-size:10.5px;color:var(--gris-2);letter-spacing:.08em;line-height:1.6}
/* Cuando .foto va sobre una <img> real (no el div placeholder): anular el
   fondo rayado y el padding, y recortar la imagen para llenar el marco.
   La altura la sigue fijando .foto-principal/.foto-tarjeta/etc — no pisarla
   aquí, o gana por especificidad sobre esas reglas. */
img.foto{background-image:none;padding:0;width:100%;object-fit:cover}
.foto-apertura{height:400px}
.foto-principal{height:262px}
.foto-tarjeta{height:112px}
.foto-lista{height:96px}
.foto-seccion{height:190px}
.retrato{width:52px;height:52px;border-radius:50%;flex:none;background-image:repeating-linear-gradient(45deg,#e6e3d9 0 6px,#dcd8cb 6px 12px)}

/* Tarjetas y listas */
.tarjeta{display:flex;flex-direction:column;gap:9px}
.lista-notas{display:flex;flex-direction:column}
.item-nota{display:grid;grid-template-columns:150px 1fr 200px;gap:22px;align-items:start;padding:20px 0;border-bottom:1px solid var(--linea-2)}
.item-nota .fecha{font-family:var(--mono);font-size:11px;color:var(--gris);text-align:right}
.item-nota h3{font-family:var(--serif-titulo);font-weight:600;font-size:24px;line-height:1.14;margin:6px 0 0;text-wrap:pretty}
.item-comunicado{display:grid;grid-template-columns:118px 1fr 130px;gap:22px;align-items:start;padding:18px 0;border-bottom:1px solid var(--linea-2)}
.item-comunicado .codigo{font-family:var(--mono);font-size:11px;color:var(--acento);letter-spacing:.06em}
.item-comunicado h3{font-family:var(--serif-titulo);font-weight:600;font-size:23px;line-height:1.16;margin:0;text-wrap:pretty}
.columna-tarjeta{display:flex;flex-direction:column;gap:12px;border-top:2px solid var(--tinta);padding-top:16px}
.columna-tarjeta h3{font-family:var(--serif-titulo);font-style:italic;font-weight:600;font-size:25px;line-height:1.16;margin:0;text-wrap:pretty}
.autor{font-family:var(--mono);font-size:11px;color:var(--gris);letter-spacing:.06em;line-height:1.5}

/* Bloques laterales */
.rotulo{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid var(--tinta);padding-bottom:6px;display:block}
.rotulo-acento{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--acento);border-bottom:2px solid var(--acento);padding-bottom:6px;display:block}
.ultimas{display:flex;flex-direction:column;margin-top:12px}
.ultimas a{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid #e2dfd5}
.ultimas .hora{font-family:var(--mono);font-size:11px;color:var(--acento);flex:none}
.ultimas .t{font-family:var(--serif-texto);font-size:14.5px;line-height:1.35}
.boletin-caja{background:var(--tinta);color:#f7f6f2;padding:20px}
.boletin-caja .rot{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#d9b8b3}
.boletin-caja .t{font-family:var(--serif-titulo);font-size:23px;line-height:1.15;margin-top:8px}
.campo-falso{background:#f7f6f2;color:#8a887f;font-family:var(--mono);font-size:11.5px;padding:10px 11px;flex:1}
.boton{background:var(--acento);color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;padding:10px 14px;text-transform:uppercase;border:0;cursor:pointer}
.boton-tinta{background:var(--tinta);color:#f7f6f2;text-align:center;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:14px;border:0;cursor:pointer;width:100%}
.forma-inline{display:flex;margin-top:14px}
.cifras{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.cifra .n{font-family:var(--serif-titulo);font-size:34px;line-height:1}
.cifra .e{font-family:var(--mono);font-size:10.5px;color:var(--gris)}
.red{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.red .n{font-family:var(--serif-titulo);font-size:30px;line-height:1}
.red .e{font-family:var(--mono);font-size:10.5px;color:var(--gris)}
.caja-datos{border:1px solid var(--tinta);padding:20px;height:fit-content}
.caja-datos .fila{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dotted #cfcdc4;padding-bottom:7px}
.caja-datos .fila span:first-child{font-family:var(--serif-texto);font-size:15px}
.caja-datos .fila span:last-child{font-family:var(--mono);font-size:12px;color:var(--acento)}
.caja-clara{background:var(--papel-2);padding:20px}
.enlace-fuerte{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--acento);padding-bottom:2px;display:inline-block}
.paginacion{display:flex;justify-content:center;padding-top:26px}
.paginacion a{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--tinta);padding:12px 22px}

/* Formularios */
.formulario{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.formulario label{display:flex;flex-direction:column;gap:6px}
.formulario span{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.formulario input,.formulario select,.formulario textarea{background:#fdfdfc;border:1px solid #d6d3c9;padding:11px 12px;font-family:var(--serif-texto);font-size:15px;color:var(--tinta);border-radius:0}
.formulario textarea{min-height:110px;resize:vertical}
.nota-legal{font-family:var(--mono);font-size:10px;color:var(--gris-2);line-height:1.6}

/* Institucional */
.cabecera-pagina{padding:30px 0 16px;border-bottom:1px solid var(--tinta)}
.cabecera-pagina .rot{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--acento);text-transform:uppercase}
.cabecera-pagina .desc{font-family:var(--serif-texto);font-style:italic;font-size:16px;color:#57564f;margin-top:10px;max-width:660px}
.cabecera-seccion{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:30px 0 16px;border-bottom:1px solid var(--tinta)}
.cabecera-seccion .desc{font-family:var(--serif-texto);font-style:italic;font-size:16px;color:#57564f;max-width:420px;text-align:right}
.texto-largo{font-family:var(--serif-texto);font-size:19px;line-height:1.68;color:#22221f;display:flex;flex-direction:column;gap:18px;max-width:720px}
.texto-largo p{margin:0;text-wrap:pretty}
.plan{border:1px solid var(--tinta);padding:24px;display:flex;flex-direction:column;gap:14px}
.plan .tipo{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--acento)}
.plan .cuota{font-family:var(--serif-titulo);font-size:34px;line-height:1}
.plan .periodo{font-family:var(--mono);font-size:10.5px;color:var(--gris)}
.plan .incluye{font-family:var(--serif-texto);font-size:15.5px;line-height:1.55;color:#33322e}
.paso{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:start}
.paso .n{font-family:var(--serif-titulo);font-size:26px;line-height:1;color:var(--acento)}
.paso .t{font-family:var(--serif-texto);font-size:16.5px;line-height:1.55}
.articulo-etica{border-top:1px solid var(--linea);padding-top:16px}
.articulo-etica .num{font-family:var(--mono);font-size:11px;color:var(--acento);letter-spacing:.12em}
.articulo-etica h2{font-family:var(--serif-titulo);font-weight:600;font-size:26px;line-height:1.14;margin:6px 0 0}
.articulo-etica p{font-family:var(--serif-texto);font-size:18px;line-height:1.65;color:#22221f;margin:8px 0 0;text-wrap:pretty}
.hito{border-top:2px solid var(--tinta);padding-top:12px}
.hito .anio{font-family:var(--serif-titulo);font-size:30px;line-height:1}
.hito .t{font-family:var(--mono);font-size:10.5px;color:var(--gris);line-height:1.5;margin-top:6px}
.bloque-contacto{border-top:2px solid var(--tinta);padding-top:14px}
.bloque-contacto .area{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.bloque-contacto .detalle{font-family:var(--serif-texto);font-size:17px;line-height:1.55;color:#33322e;margin-top:6px}
.hero-boletin{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;background:var(--tinta);color:#f7f6f2;padding:44px;margin:44px 0 60px}
.hero-boletin h1{font-family:var(--serif-titulo);font-weight:800;font-size:46px;line-height:1.06;margin:12px 0 0;text-wrap:pretty}
.hero-boletin p{font-family:var(--serif-texto);font-size:18px;line-height:1.6;color:#dedcd4;margin:14px 0 0;max-width:460px}
.hero-boletin .opcion{border-top:1px solid #45443f;padding-top:12px}
.hero-boletin .opcion .n{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.hero-boletin .opcion .d{font-family:var(--serif-texto);font-size:16px;line-height:1.5;color:#c9c7bf;margin-top:5px}
.buscador{display:flex;gap:20px;border-bottom:2px solid var(--tinta);padding-bottom:12px;align-items:flex-end}
.buscador input{flex:1;border:0;background:transparent;font-family:var(--serif-titulo);font-size:38px;color:var(--tinta);outline:none}
.buscador input::placeholder{color:#a8a69d}
.buscador .meta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--acento)}
.filtros{display:flex;gap:10px;flex-wrap:wrap;padding-top:18px}
.filtros span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid #cfcdc4;padding:8px 13px;color:#57564f}
.resultado{display:grid;grid-template-columns:1fr 160px;gap:22px;padding:16px 0;border-bottom:1px solid var(--linea-2);align-items:start}
.resultado h3{font-family:var(--serif-titulo);font-weight:600;font-size:23px;line-height:1.16;margin:5px 0 0}
.resultado .fecha{font-family:var(--mono);font-size:11px;color:var(--gris);text-align:right}

/* Pie */
.pie{border-top:3px double var(--tinta)}
.pie .cuerpo-pie{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px;padding:30px 30px 22px}
.pie .marca{font-family:var(--serif-titulo);font-weight:800;font-size:30px;line-height:1}
.pie .datos{font-family:var(--mono);font-size:10.5px;color:var(--gris);line-height:1.7;margin-top:10px}
.pie .col{display:flex;flex-direction:column;gap:8px}
.pie .rot{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--acento)}
.pie .col a{font-family:var(--serif-texto);font-size:15px}
.pie .legal{padding:14px 30px 26px;border-top:1px solid var(--linea);font-family:var(--mono);font-size:10.5px;color:var(--gris-2);letter-spacing:.06em;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

@media (max-width:1000px){
  .portada,.contenido,.cols-2,.cols-3,.apertura,.hero-boletin,.pie .cuerpo-pie{grid-template-columns:1fr}
  .portada .principal{border-right:0;padding:24px 0}
  .portada .lateral{padding:0 0 24px}
  .item-nota,.item-comunicado,.resultado{grid-template-columns:1fr}
  .cabezal .logo{font-size:46px}
  h1.titular,h1.titular-nota,h1.titulo-seccion{font-size:34px}
  .cabecera-seccion{flex-direction:column;align-items:flex-start}
  .cabecera-seccion .desc{text-align:left}
}
@media print{ .cintillo,.menu,.pie,.boletin-caja,.paginacion{display:none} body{background:#fff} }
