/* Estilos propios de las páginas de caso */
.caso-hero{padding-block:var(--gap-l) var(--gap-m);}
.caso-hero h1{font-size:clamp(32px,4.6vw,52px);max-width:20ch;text-wrap:balance;}
.caso-hero .lede{font-size:clamp(17px,1.6vw,21px);color:var(--muted);max-width:62ch;margin-top:var(--gap-s);}
.volver{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);display:inline-flex;gap:8px;}
.volver:hover{color:var(--accent);text-decoration:none;}

.ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--gap-s);
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  padding-block:var(--gap-s);margin-top:var(--gap-m);}
.ficha dt{font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--muted);
  letter-spacing:.02em;margin-bottom:6px;}
.ficha dd{margin:0;font-size:15px;font-weight:600;}

.caso-cuerpo{max-width:70ch;}
.caso-cuerpo h2{margin-top:var(--gap-l);margin-bottom:var(--gap-s);text-wrap:balance;}
.caso-cuerpo h3{margin-top:var(--gap-m);margin-bottom:10px;}
.caso-cuerpo p{color:var(--muted);}
.caso-cuerpo p strong,.caso-cuerpo li strong{color:var(--text);font-weight:600;}
.caso-cuerpo ul{color:var(--muted);padding-left:1.15em;margin:0 0 1em;}
.caso-cuerpo li{margin-bottom:.5em;}

/* bloque de decisión: el equivalente visual de "esto es lo que importa" */
.decision{border-left:2px solid var(--accent);padding:2px 0 2px 20px;margin:var(--gap-m) 0;}
.decision h3{margin-top:0;}
.decision p:last-child{margin-bottom:0;}

figure{margin:var(--gap-m) 0;}
figure img{width:100%;height:auto;display:block;border:1px solid var(--border);
  border-radius:8px;background:var(--surface);}
figcaption{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);margin-top:9px;}
.ancho{max-width:none;}
.par{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gap-s);}
.par figure{margin:0;}

.diagrama{background:var(--surface);border:1px solid var(--border);border-radius:10px;
  padding:clamp(18px,3vw,32px);margin:var(--gap-m) 0;}
.diagrama svg{width:100%;height:auto;display:block;overflow:visible;}
/* --- diagramas dibujados a mano --- */
@font-face{font-family:'Caveat';src:url('fonts/caveat-var-latin.woff2') format('woff2-variations');font-weight:400 700;font-display:swap;}
.diagrama svg text{dominant-baseline:auto;}
.diagrama .t,.diagrama .tg,.diagrama .tv,.diagrama .tr,.diagrama .th{
  fill:none;stroke-linecap:round;stroke-linejoin:round;}
.diagrama .t {stroke:var(--muted);stroke-width:1.25;opacity:.85;}
.diagrama .th{stroke:var(--border);stroke-width:1;}
.diagrama .tg{stroke:var(--accent);stroke-width:1.9;}
.diagrama .tv{stroke:var(--accent);stroke-width:1.7;}
.diagrama .tr{stroke:var(--danger);stroke-width:1.7;}
.diagrama .dl{font-family:var(--font-mono);font-size:11.5px;font-weight:600;fill:var(--text);}
.diagrama .ds{font-family:var(--font-mono);font-size:10px;font-weight:500;fill:var(--muted);}
.diagrama .hw{font-family:'Caveat',cursive;font-size:19px;font-weight:600;fill:var(--muted);}
.diagrama .ac{fill:var(--accent);}
.diagrama .da{fill:var(--danger);}
.diagrama .mut{fill:var(--muted);opacity:.9;}


.stack-lista{display:flex;flex-wrap:wrap;gap:8px;margin:var(--gap-s) 0 0;padding:0;list-style:none;}
.stack-lista li{font-family:var(--font-mono);font-size:11px;color:var(--muted);
  border:1px solid var(--border);border-radius:5px;padding:6px 10px;}

.aviso{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);
  border:1px dashed var(--border);border-radius:6px;padding:12px 14px;margin-top:var(--gap-m);}

.siguiente{border-top:1px solid var(--hair);margin-top:var(--gap-l);padding-top:var(--gap-m);
  display:flex;flex-wrap:wrap;gap:var(--gap-s);align-items:center;justify-content:space-between;}

.diagrama .ta{fill:none;stroke:var(--accent-2);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.diagrama .am{fill:var(--accent-2);}

/* rejilla de sitios (caso de landings) */
.rejilla-sitios{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:clamp(16px,2.2vw,26px);margin:var(--gap-m) 0;}
.rejilla-sitios .sitio{margin:0;}
.rejilla-sitios img{width:100%;height:auto;display:block;border:1px solid var(--border);
  border-radius:8px;background:var(--surface);}
.rejilla-sitios figcaption{margin-top:11px;display:flex;flex-direction:column;gap:3px;}
.rejilla-sitios figcaption b{font-size:15.5px;font-weight:600;color:var(--text);letter-spacing:-.01em;}
.rejilla-sitios figcaption span{font-size:14px;color:var(--muted);}
.rejilla-sitios figcaption em{font-family:var(--font-mono);font-size:10.5px;font-style:normal;
  color:var(--muted);margin-top:2px;}

/* índice de la bitácora */
.log-lista{border-top:1px solid var(--hair);}
.log-fila{display:grid;grid-template-columns:120px minmax(0,1fr);gap:clamp(14px,2.5vw,32px);
  padding-block:var(--gap-m);border-bottom:1px solid var(--hair);align-items:start;color:var(--text);}
.log-fila:hover{text-decoration:none;background:var(--surface);
  box-shadow:0 0 0 14px var(--surface);border-radius:2px;}
.log-fila:hover h3{color:var(--accent);}
.log-fila time{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);padding-top:5px;}
.log-fila h3{margin-bottom:8px;}
.log-fila p{color:var(--muted);font-size:15.5px;margin:0;max-width:64ch;}
@media(max-width:720px){
  .log-fila{grid-template-columns:1fr;gap:6px;}
  .log-fila:hover{box-shadow:none;background:transparent;}
}

/* lista de servicios */
.svc-lista{border-top:1px solid var(--hair);margin-bottom:var(--gap-l);}
.svc-fila{display:grid;grid-template-columns:56px minmax(0,1fr);gap:clamp(14px,2.5vw,32px);
  padding-block:var(--gap-m);border-bottom:1px solid var(--hair);align-items:start;}
.svc-fila .svc-n{font-family:var(--font-mono);font-size:11px;color:var(--muted);font-weight:500;
  padding-top:6px;}
.svc-fila h3{margin-bottom:10px;}
.svc-fila p{color:var(--muted);max-width:62ch;margin-bottom:10px;}
.svc-quien{font-size:14.5px;}
.svc-quien span:first-child{font-family:var(--font-mono);font-size:11px;color:var(--muted);
  text-transform:uppercase;letter-spacing:.04em;margin-right:6px;}
.svc-link{font-family:var(--font-mono);font-size:11.5px;}
@media(max-width:720px){.svc-fila{grid-template-columns:1fr;gap:6px;}}

/* ───────── videos ───────── */
.videos{margin:var(--gap-l) 0;}
.videos figure{margin:0 0 var(--gap-s);}
.videos video{width:100%;height:auto;display:block;border:1px solid var(--border);
  border-radius:8px;background:var(--surface);}
.videos figcaption{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);
  margin-top:9px;line-height:1.7;}
.v-destacado{max-width:420px;}
.v-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:clamp(14px,2vw,22px);margin-block:var(--gap-m);}
.v-grid figure{margin:0;}
.v-manual{margin-top:var(--gap-m);}
.v-manual figcaption{display:flex;flex-direction:column;gap:7px;}
.v-audio{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;
  font-weight:700;color:var(--accent-2);letter-spacing:.02em;
  background:color-mix(in srgb,var(--accent-2) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--accent-2) 30%,transparent);
  padding:5px 10px;border-radius:999px;}
@media(max-width:720px){.v-destacado{max-width:none;}}
