/* ===== CIPPSV Revistas · estilos públicos ===== */
.crv{
  --navy:#14203a; --navy-2:#1b2b4d; --azul:#0b57d0; --azul-osc:#083f99; --celeste:#8fb3ee; --fondo:#f2f6fc; --suave:#e3ecfa;
  --oro:#d6b46a; --titulo:#123a7a; --texto:#3d4a5c; --gris:#5b6778; --linea:#dce5f3;
  font-family:"Poppins",sans-serif; color:#1c2533; line-height:1.5;
  container:crv / inline-size;
}
.crv-modal{container-type:normal}
.crv *,.crv *::before,.crv *::after{box-sizing:border-box}
.crv h1,.crv h2,.crv h3,.crv p,.crv a,.crv span,.crv button,.crv dt,.crv dd,.crv summary{text-transform:none !important}
.crv br,.crv p:empty{display:none !important}
.crv a{text-decoration:none !important}
.crv :where(button){all:unset; box-sizing:border-box; cursor:pointer; font-family:inherit}
.crv a:focus-visible,.crv button:focus-visible,.crv summary:focus-visible,.crv input:focus-visible{outline:3px solid var(--celeste) !important; outline-offset:3px}
.crv img{max-width:100%; height:auto}
.crv-wrap{max-width:1180px; margin:0 auto; padding:0 24px}
.crv .screen-reader-text{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px)}

.crv-k{display:flex; align-items:center; gap:12px; margin:0 0 14px !important; font-size:12.5px; font-weight:600; letter-spacing:.18em; color:var(--celeste)}
.crv-k::before{content:""; width:32px; height:2px; border-radius:2px; background:currentColor}
.crv-k--azul{color:var(--azul)}
.crv-k--oro{color:#a8853a}
.crv-h2{margin:0 !important; font-family:inherit !important; font-size:clamp(28px,3.2vw,40px) !important; line-height:1.15 !important; font-weight:700 !important; color:var(--titulo) !important}
.crv-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:40px}
.crv-head__p{margin:0 !important; font-size:15px; color:var(--gris)}
.crv-sec{padding:96px 0}
.crv-cat{display:block; font-size:11px; font-weight:600; letter-spacing:.16em; color:var(--azul)}
.crv-meta{margin:0 !important; font-size:14px; color:var(--gris)}
.crv-meta strong{color:#1c2533; font-weight:600}
.crv-meta--g{font-size:16px}
.crv-resumen{margin:0 !important; font-size:15px; line-height:1.65; color:var(--texto)}
.crv-tag{display:inline-block; padding:3px 10px; border-radius:999px; background:rgba(214,180,106,.18); color:#8a6a24; font-size:11px; font-weight:600; letter-spacing:.06em; vertical-align:middle}
.crv-cont{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--gris)}
.crv-cont svg{color:var(--azul)}
.crv-cont strong{color:#1c2533; font-weight:600}

/* Botones */
.crv-acciones{display:flex; flex-wrap:wrap; gap:10px}
.crv-btn,.crv-btn:hover,.crv-btn:focus{
  display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:0 22px; border-radius:999px;
  background:var(--azul); color:#fff !important; font-size:14.5px; font-weight:600; line-height:1; border:1.5px solid var(--azul);
  transition:background .25s, border-color .25s, color .25s, transform .25s;
}
.crv-btn:hover{background:var(--navy); border-color:var(--navy)}
.crv-btn:hover svg{transform:translateY(2px)}
.crv-btn svg{transition:transform .25s}
.crv-btn--sec,.crv-btn--sec:hover,.crv-btn--sec:focus{background:transparent; color:var(--azul) !important}
.crv-btn--sec:hover{background:var(--suave); border-color:var(--azul)}
.crv-btn--sec:hover svg{transform:none}
.crv-btn--chico,.crv-btn--chico:hover,.crv-btn--chico:focus{min-height:40px; padding:0 16px; font-size:13.5px}

/* ---------- Libro (portada con lomo y brillo) ---------- */
.crv-libro{display:block; perspective:1200px}
.crv-libro__tapa{position:relative; display:block; border-radius:3px 7px 7px 3px; overflow:hidden; background:var(--navy);
  box-shadow:0 1px 2px rgba(20,32,58,.15), 0 18px 38px rgba(20,32,58,.28); transform-style:preserve-3d; transition:transform .6s cubic-bezier(.2,.8,.2,1), box-shadow .6s}
.crv-libro__tapa::before{content:""; position:absolute; inset:0 auto 0 0; width:9%; z-index:2; pointer-events:none;
  background:linear-gradient(90deg, rgba(0,0,0,.28) 0%, rgba(255,255,255,.18) 45%, rgba(0,0,0,.12) 70%, rgba(0,0,0,0) 100%)}
.crv-libro__tapa::after{content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(115deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 38%)}
.crv-libro__tapa img{display:block; width:100% !important; height:auto !important; border-radius:0 !important}
.crv-libro__gen{display:flex; flex-direction:column; justify-content:flex-end; gap:6px; aspect-ratio:3/4; padding:14% 12% 12% 16%; color:#fff;
  background:radial-gradient(120% 80% at 100% 0%, rgba(143,179,238,.35), transparent 60%), linear-gradient(160deg, var(--navy-2), var(--navy))}
.crv-libro__gen small{font-size:10px; font-weight:600; letter-spacing:.2em; color:var(--celeste)}
.crv-libro__gen strong{font-size:clamp(14px,1.6vw,20px); line-height:1.15; font-weight:700}
.crv-libro__gen em{font-style:normal; font-size:11px; color:#c9d4e5}

/* ---------- Hero ---------- */
.crv-hero{position:relative; overflow:hidden; padding:96px 0 104px; color:#fff;
  background:radial-gradient(60% 90% at 85% 30%, rgba(11,87,208,.32), transparent 70%), linear-gradient(160deg, var(--navy-2) 0%, var(--navy) 100%)}
.crv-hero::after{content:""; position:absolute; width:620px; height:620px; right:-220px; bottom:-320px; border-radius:50%; border:1px solid rgba(143,179,238,.18); pointer-events:none}
.crv-hero__in{position:relative; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:56px; align-items:center}
.crv-hero__h{margin:0 0 18px !important; font-family:inherit !important; font-size:clamp(34px,4.4vw,54px) !important; line-height:1.08 !important; font-weight:700 !important; color:#fff !important; letter-spacing:-.01em}
.crv-hero__p{margin:0 0 36px !important; max-width:560px; font-size:17px; line-height:1.7; color:#c9d4e5}
.crv-stats{display:grid; grid-template-columns:repeat(3,minmax(0,auto)); justify-content:start; gap:0; margin:0 !important; border-top:1px solid rgba(255,255,255,.14)}
.crv-stats div{padding:22px 32px 0 0; margin-right:32px; border-right:1px solid rgba(255,255,255,.14)}
.crv-stats div:last-child{border-right:0; margin-right:0}
.crv-stats dt{margin:0 0 4px; font-size:12.5px; color:#9fb0c9}
.crv-stats dd{margin:0; font-size:30px; line-height:1.1; font-weight:700; color:#fff}
.crv-hero__libros{position:relative; height:440px}
.crv-libro--hero{position:absolute; width:min(260px,44%)}
.crv-libro--1{left:6%; top:20px; z-index:2; animation:crvFlota 7s ease-in-out infinite}
.crv-libro--2{right:4%; top:80px; animation:crvFlota 7s ease-in-out -3.5s infinite}
.crv-libro--1 .crv-libro__tapa{transform:rotateY(14deg) rotateZ(-4deg)}
.crv-libro--2 .crv-libro__tapa{transform:rotateY(-12deg) rotateZ(5deg)}
.crv-hero__libros:hover .crv-libro__tapa{transform:none}
@keyframes crvFlota{0%,100%{translate:0 0} 50%{translate:0 -12px}}

/* ---------- Edición actual ---------- */
.crv-actuales{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px}
.crv-destacada{display:grid; grid-template-columns:220px minmax(0,1fr); gap:30px; padding:28px; border-radius:24px; background:#fff;
  box-shadow:0 1px 2px rgba(20,32,58,.05), 0 14px 40px rgba(20,32,58,.08); transition:box-shadow .4s}
.crv-destacada:hover{box-shadow:0 2px 4px rgba(20,32,58,.06), 0 24px 54px rgba(20,32,58,.13)}
.crv-destacada__portada{display:flex; align-items:center; justify-content:center; padding:24px 20px; border-radius:18px; background:var(--suave)}
.crv-destacada__portada .crv-libro{width:100%}
.crv-destacada__info{display:flex; flex-direction:column; gap:10px; min-width:0; padding-top:4px}
.crv-destacada__h{margin:0 !important; font-family:inherit !important; font-size:26px !important; line-height:1.2 !important; font-weight:700 !important}
.crv-destacada__h a{color:var(--titulo) !important}
.crv-destacada__h a:hover{color:var(--azul) !important}
.crv-destacada .crv-acciones{margin-top:auto; padding-top:14px}

/* ---------- Especiales ---------- */
.crv-sec--especial{background:linear-gradient(180deg, #fff 0%, var(--fondo) 100%)}
.crv-especiales{display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:20px}
.crv-esp{display:grid; grid-template-columns:120px minmax(0,1fr); gap:22px; padding:20px; border-radius:20px; background:#fff; border:1px solid rgba(214,180,106,.45); transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s}
.crv-esp:hover{transform:translateY(-4px); box-shadow:0 20px 40px rgba(20,32,58,.1)}
.crv-esp__info{display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-width:0}
.crv-esp h3{margin:0 !important; font-family:inherit !important; font-size:19px !important; font-weight:700 !important}
.crv-esp h3 a{color:var(--titulo) !important}

/* ---------- Archivo ---------- */
.crv-sec--archivo{background:var(--fondo)}
.crv-barra{display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:28px; padding:10px; border-radius:18px; background:#fff; box-shadow:0 1px 2px rgba(20,32,58,.05)}
.crv-filtros{display:flex; flex-wrap:wrap; gap:6px}
.crv .crv-filtros button,.crv .crv-vista button{display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:0 16px; border-radius:999px; font-size:14px; font-weight:500; color:var(--gris); transition:background .25s, color .25s}
.crv .crv-filtros button:hover,.crv .crv-vista button:hover{background:var(--fondo); color:var(--titulo)}
.crv .crv-filtros button.is-on,.crv .crv-vista button.is-on{background:var(--navy); color:#fff}
.crv-buscar{flex:1; min-width:200px; display:flex; align-items:center; gap:10px; min-height:44px; padding:0 16px; border-radius:999px; background:var(--fondo); color:var(--gris)}
.crv-buscar input{flex:1; min-width:0; border:0 !important; background:transparent !important; box-shadow:none !important; padding:0 !important; font:inherit; font-size:14.5px; color:#1c2533; outline:none}
.crv-vista{display:flex; gap:4px}
.crv .crv-vista button{width:40px; padding:0; justify-content:center}

.crv-anios{display:flex; flex-direction:column; gap:14px}
.crv-anio{border-radius:20px; background:#fff; box-shadow:0 1px 2px rgba(20,32,58,.05); overflow:hidden}
.crv-anio[hidden]{display:none}
.crv-anio summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:18px; padding:22px 26px}
.crv-anio summary::-webkit-details-marker{display:none}
.crv-anio__n{font-size:30px; line-height:1; font-weight:700; color:var(--titulo)}
.crv-anio__c{font-size:14px; color:var(--gris)}
.crv-anio__mas{position:relative; margin-left:auto; width:38px; height:38px; border-radius:50%; border:1.5px solid var(--linea); transition:transform .4s cubic-bezier(.7,0,.2,1), background .3s, border-color .3s}
.crv-anio__mas::before,.crv-anio__mas::after{content:""; position:absolute; left:50%; top:50%; width:12px; height:2px; border-radius:2px; background:var(--titulo); transform:translate(-50%,-50%); transition:background .3s}
.crv-anio__mas::after{transform:translate(-50%,-50%) rotate(90deg)}
.crv-anio[open] .crv-anio__mas{transform:rotate(135deg); background:var(--azul); border-color:var(--azul)}
.crv-anio[open] .crv-anio__mas::before,.crv-anio[open] .crv-anio__mas::after{background:#fff}
.crv-items{display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:22px; padding:4px 26px 28px}
.crv-item{display:flex; flex-direction:column; gap:12px; min-width:0}
.crv-item[hidden]{display:none}
.crv-item__portada{display:block; padding:18px 18px 16px; border-radius:16px; background:var(--suave); transition:background .3s}
.crv-item__portada .crv-libro__tapa{transform:rotate(-1.5deg)}
.crv-item__portada:hover .crv-libro__tapa{transform:translateY(-4px) rotate(0)}
.crv-item__portada:hover{background:#d8e5f8}
.crv-item__info{display:flex; flex-direction:column; gap:4px}
.crv-item h3{margin:0 !important; font-family:inherit !important; font-size:15.5px !important; line-height:1.35 !important; font-weight:600 !important}
.crv-item h3 a{color:var(--titulo) !important}
.crv-item h3 a:hover{color:var(--azul) !important}
.crv-item .crv-acciones{gap:8px}
.crv-item .crv-btn{min-height:38px; padding:0 14px; font-size:13px}
.crv-item .crv-btn--sec span{display:none}
.crv-item .crv-btn--sec{width:38px; padding:0}
.crv-vacio{margin:0 !important; padding:40px 20px; text-align:center; font-size:15px; color:var(--gris)}

/* Vista de lista */
.crv-anios[data-vista="lista"] .crv-items{display:flex; flex-direction:column; gap:0; padding:0 26px 14px}
.crv-anios[data-vista="lista"] .crv-item{display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:center; gap:18px; padding:14px 0; border-top:1px solid var(--linea)}
.crv-anios[data-vista="lista"] .crv-item__portada{padding:0; background:transparent}
.crv-anios[data-vista="lista"] .crv-item__portada .crv-libro__tapa{transform:none; box-shadow:0 4px 10px rgba(20,32,58,.18)}
.crv-anios[data-vista="lista"] .crv-item__info{flex-direction:row; flex-wrap:wrap; align-items:baseline; column-gap:16px}
.crv-anios[data-vista="lista"] .crv-item .crv-cat{flex-basis:100%}

/* ---------- Lector (ventana) ---------- */
.crv-modal{position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(10,16,32,.82); opacity:0; transition:opacity .3s}
.crv-modal.is-on{opacity:1}
.crv-modal[hidden]{display:none}
.crv-modal__caja{display:flex; flex-direction:column; width:min(1100px,100%); height:min(92vh,1000px); border-radius:18px; overflow:hidden; background:#fff; transform:translateY(16px) scale(.98); transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.crv-modal.is-on .crv-modal__caja{transform:none}
.crv-modal__barra{display:flex; align-items:center; gap:14px; padding:12px 14px 12px 22px; border-bottom:1px solid var(--linea); background:#fff}
.crv-modal__titulo{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; font-weight:600; color:var(--titulo)}
.crv .crv-modal__cerrar{display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:50%; color:var(--titulo); transition:background .25s}
.crv .crv-modal__cerrar:hover{background:var(--fondo)}
.crv-modal__frame{flex:1; width:100%; border:0; background:#525659}

/* ---------- Home ---------- */
.crv-home{background:var(--fondo); padding:88px 24px}
.crv-home__wrap{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:minmax(0,380px) minmax(0,1fr); gap:48px; align-items:center}
.crv-home__head{display:flex; flex-direction:column; gap:14px}
.crv-home__head .crv-k{margin:0 !important}
.crv-home__h{margin:0 !important; font-family:inherit !important; font-size:36px !important; line-height:1.15 !important; font-weight:700 !important; color:var(--titulo) !important}
.crv-home__p{margin:0 !important; font-size:15px; line-height:1.65; color:var(--texto)}
.crv-home__link{display:inline-flex; align-items:center; gap:10px; width:fit-content; margin-top:6px; font-size:15px; font-weight:600; color:var(--azul) !important}
.crv-home__link span{display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; border:1.5px solid var(--linea); transition:background .3s, border-color .3s, color .3s}
.crv-home__link:hover span{background:var(--azul); border-color:var(--azul); color:#fff}
.crv-home__grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px}
.crv-home__card{display:grid; grid-template-columns:132px minmax(0,1fr); gap:22px; padding:18px; border-radius:20px; background:#fff;
  box-shadow:0 1px 2px rgba(20,32,58,.05), 0 10px 28px rgba(20,32,58,.07); transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s}
.crv-home__card:hover{transform:translateY(-4px); box-shadow:0 2px 4px rgba(20,32,58,.06), 0 20px 40px rgba(20,32,58,.13)}
.crv-home__portada{display:flex; align-items:center; justify-content:center; padding:14px; border-radius:14px; background:var(--suave)}
.crv-home__portada .crv-libro{width:100%}
.crv-home__portada .crv-libro__tapa{transform:rotate(-2deg)}
.crv-home__card:hover .crv-libro__tapa{transform:rotate(0) scale(1.04)}
.crv-home__info{display:flex; flex-direction:column; gap:4px; min-width:0; padding:4px 4px 2px 0}
.crv-home__info h3{margin:2px 0 0 !important; font-family:inherit !important; font-size:20px !important; line-height:1.25 !important; font-weight:700 !important}
.crv-home__info h3 a{color:var(--titulo) !important}
.crv-home__pie{margin-top:auto; padding-top:14px; display:flex; flex-direction:column; align-items:flex-start; gap:10px}

/* ---------- Ficha de la edición ---------- */
.crv-ficha{margin:0 0 40px}
.crv-ficha__top{padding:36px; border-radius:24px; background:var(--fondo)}
.crv-ficha__volver{display:inline-block; margin-bottom:22px; font-size:14px; font-weight:600; color:var(--azul) !important}
.crv-ficha__grid{display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:44px; align-items:start}
.crv-ficha__portada .crv-libro{width:100%}
.crv-ficha__info{display:flex; flex-direction:column; gap:12px}
.crv-ficha__h{margin:0 !important; font-size:clamp(26px,3vw,36px); line-height:1.15; font-weight:700; color:var(--titulo)}
.crv-ficha__datos{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:10px 0 8px !important}
.crv-ficha__datos div{padding:14px 16px; border-radius:14px; background:#fff}
.crv-ficha__datos dt{margin:0 0 2px; font-size:11.5px; color:var(--gris)}
.crv-ficha__datos dd{margin:0; font-size:17px; font-weight:700; color:var(--titulo)}
.crv-ficha__otras{margin-top:48px}
.crv-ficha__otras-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px}
.crv-mini{display:flex; flex-direction:column; gap:10px; padding:16px; border-radius:16px; background:var(--fondo); color:var(--titulo) !important; font-size:13.5px; font-weight:600; transition:background .3s}
.crv-mini:hover{background:var(--suave)}

/* ---------- Aparición ---------- */
.crv-rev{opacity:0; transform:translateY(22px); transition:opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); transition-delay:calc(var(--d,0) * 110ms)}
.crv-rev.is-in{opacity:1; transform:none}

/* ---------- Responsive ---------- */
@container crv (max-width:1100px){
  .crv-hero__in{grid-template-columns:1fr; gap:24px}
  .crv-hero__libros{height:330px; max-width:520px}
  .crv-actuales{grid-template-columns:1fr}
  .crv-home__wrap{grid-template-columns:1fr; gap:28px}
  .crv-ficha__datos{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container crv (max-width:767px){
  .crv-sec{padding:64px 0}
  .crv-wrap{padding:0 16px}
  .crv-hero{padding:64px 0 56px}
  .crv-hero__libros{display:none}
  .crv-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .crv-stats div{padding:18px 12px 0 0; margin-right:12px}
  .crv-stats dd{font-size:22px}
  .crv-destacada{grid-template-columns:1fr; padding:18px; gap:20px}
  .crv-destacada__portada{padding:22px 60px}
  .crv-esp{grid-template-columns:88px minmax(0,1fr); gap:16px; padding:16px}
  .crv-esp .crv-btn,.crv-item .crv-btn{min-height:40px; padding:0 14px; font-size:13px}
  .crv-esp .crv-btn--sec span{display:none}
  .crv-esp .crv-btn--sec{width:40px; padding:0}
  .crv-item .crv-btn:not(.crv-btn--sec){flex:1}
  .crv-especiales{grid-template-columns:1fr}
  .crv-barra{border-radius:16px}
  .crv-filtros{width:100%; overflow-x:auto; flex-wrap:nowrap}
  .crv .crv-filtros button{flex-shrink:0}
  .crv-anio summary{padding:18px}
  .crv-items{grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:0 18px 22px}
  .crv-item__portada{padding:12px}
  .crv-anios[data-vista="lista"] .crv-items{padding:0 18px 10px}
  .crv-anios[data-vista="lista"] .crv-item{grid-template-columns:48px minmax(0,1fr); gap:14px}
  .crv-anios[data-vista="lista"] .crv-item .crv-acciones{grid-column:2}
  .crv-home__h{font-size:28px !important}
  .crv-home__grid{grid-template-columns:1fr; gap:14px}
  .crv-home__card{grid-template-columns:104px minmax(0,1fr); gap:16px; padding:14px}
  .crv-home__portada{padding:10px}
  .crv-home__info h3{font-size:17px !important}
  .crv-ficha__top{padding:22px}
  .crv-ficha__grid{grid-template-columns:1fr; gap:24px}
  .crv-ficha__portada{max-width:240px}
  .crv-ficha__otras-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  .crv-home{padding:64px 16px}
  .crv-modal{padding:0}
  .crv-modal__caja{height:100%; border-radius:0}
}
@media (prefers-reduced-motion:reduce){
  .crv *,.crv *::before,.crv *::after{animation:none !important; transition:none !important}
  .crv-rev{opacity:1; transform:none}
}
