/* ===== Case Study — shared system (editorial / itti-style) ===== */
:root{
  --bg:#FFFFFF;
  --card:#F4F4F4;
  --ink:#000000;
  --muted:#8E8E8E;
  --muted-2:#B4B4B4;
  --line:#E5E5E5;
  --line-2:#DCDCDC;
  --accent:#BF5674;
  --accent-dk:#A8485F;
  --maxw:920px;
  --sans:"Geist", system-ui, sans-serif;
  --mono:"Geist Mono", ui-monospace, monospace;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  line-height:1.5;
}
::selection{background:#000;color:#fff;}
img{display:block;max-width:100%;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}

/* ---------- top nav ---------- */
.cs-nav{position:sticky;top:0;z-index:50;display:flex;justify-content:center;padding:18px 0;
  background:linear-gradient(#fff 70%, rgba(255,255,255,0));}
.cs-pill{
  display:flex;align-items:center;gap:6px;
  background:rgba(255,255,255,0.85);backdrop-filter:blur(16px) saturate(1.4);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid rgba(0,0,0,0.07);border-radius:100px;padding:6px;
  box-shadow:0 1px 2px rgba(0,0,0,0.04),0 12px 30px -14px rgba(0,0,0,0.22);
}
.cs-pill .brand{font-weight:800;font-size:13px;letter-spacing:-0.02em;padding:9px 14px 9px 16px;display:flex;align-items:center;gap:8px;}
.cs-pill .brand .av{width:18px;height:18px;border-radius:50%;background:#000;}
.cs-pill a.back{
  font-size:13px;font-weight:600;letter-spacing:-0.01em;color:#000;text-decoration:none;
  padding:9px 16px;border-radius:100px;display:inline-flex;align-items:center;gap:8px;transition:background .2s,color .2s;
}
.cs-pill a.back:hover{background:#000;color:#fff;}
.cs-pill a.back svg{width:14px;height:14px;}

/* ---------- hero ---------- */
.cs-hero{padding:54px 0 40px;}
.eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--muted);font-weight:500;display:inline-flex;align-items:center;gap:8px;margin-bottom:26px;
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);}
.cs-hero h1{font-size:clamp(2.2rem,5.4vw,3.9rem);font-weight:800;letter-spacing:-0.045em;line-height:1.02;text-wrap:balance;}
.cs-hero h1 .sub{display:block;color:var(--muted-2);font-weight:700;margin-top:6px;font-size:0.62em;letter-spacing:-0.03em;}

/* ---------- overview / ficha técnica ---------- */
.overview{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
  margin:40px 0 8px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.ov-item .ov-label{font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:9px;}
.ov-item .ov-value{font-size:15px;font-weight:600;letter-spacing:-0.01em;line-height:1.45;color:#111;}
.ov-item.span-all{grid-column:1 / -1;}

/* ---------- sections ---------- */
.cs-section{padding:46px 0;}
.cs-section.tight{padding:30px 0;}
.sec-tag{font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:16px;}
.cs-section h2{font-size:clamp(1.5rem,2.8vw,2.1rem);font-weight:800;letter-spacing:-0.04em;line-height:1.05;margin-bottom:18px;}
.cs-section h3{font-size:1.25rem;font-weight:700;letter-spacing:-0.03em;margin-bottom:10px;}
.cs-section p{font-size:17px;line-height:1.62;letter-spacing:-0.01em;color:#222;max-width:680px;text-wrap:pretty;}
.cs-section p + p{margin-top:16px;}

/* subblocks list */
.subblock{padding:30px 0;border-top:1px solid var(--line);}
.subblock:first-of-type{border-top:none;}
.subblock .sb-num{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:0.08em;font-weight:500;display:block;margin-bottom:8px;}

/* structured numbered list (Frecuencia) */
.dev-list{display:flex;flex-direction:column;gap:0;margin-top:8px;}
.dev-item{display:grid;grid-template-columns:44px 1fr;gap:18px;padding:22px 0;border-top:1px solid var(--line);align-items:start;}
.dev-item:first-child{border-top:none;}
.dev-item .di-num{font-family:var(--mono);font-size:13px;color:var(--accent);font-weight:600;padding-top:2px;}
.dev-item .di-body h3{font-size:1.15rem;font-weight:700;letter-spacing:-0.025em;margin-bottom:6px;}
.dev-item .di-body p{font-size:15.5px;line-height:1.55;color:#333;max-width:620px;}

/* ---------- image grids ---------- */
.img-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:26px 0 6px;}
/* always symmetric — every image cell is the same size across all grids */
.img-grid.asym,.img-grid.asym-r{grid-template-columns:1fr 1fr;}
.img-grid.trio{grid-template-columns:repeat(3,1fr);}
.img-cell{
  position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;
  background:var(--card);border:1px solid var(--line);
}
.img-cell image-slot{display:block;width:100%;height:100%;}
.img-caption{font-family:var(--mono);font-size:11px;letter-spacing:0.04em;color:var(--muted-2);margin-top:12px;text-align:center;}

/* single wide image — real screen proportions (Behance style) */
.img-single{margin:30px 0 6px;}
.img-single .img-cell{aspect-ratio:16/10;}
.img-single.tall .img-cell{aspect-ratio:4/3;}
/* contained wide image — wider than text but not full-bleed */
.img-hero{
  position:relative;width:calc(100% - 56px);max-width:864px;margin:38px auto;
  aspect-ratio:16/9;
  border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--card);
}
.img-hero image-slot{display:block;width:100%;height:100%;}
/* mobile pair — portrait phone proportions */
.img-grid.mobile .img-cell{aspect-ratio:9/16;}

/* ---------- next project / footer ---------- */
.cs-next{border-top:1px solid var(--line);margin-top:30px;padding:54px 0 70px;}
.cs-next .nx-label{font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;display:block;}
.cs-next a{
  display:flex;align-items:center;justify-content:space-between;gap:20px;text-decoration:none;color:#000;
  background:var(--card);border:1px solid var(--line);border-radius:20px;padding:30px 34px;
  transition:box-shadow .3s,transform .3s;
}
.cs-next a:hover{transform:translateY(-3px);box-shadow:0 30px 50px -34px rgba(0,0,0,0.4);}
.cs-next a h3{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:800;letter-spacing:-0.04em;}
.cs-next a .arr{width:54px;height:54px;flex:0 0 54px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;transition:transform .3s;}
.cs-next a:hover .arr svg{transform:translate(3px,-3px);}
.cs-next a .arr svg{width:20px;height:20px;transition:transform .3s;}

.cs-foot{border-top:1px solid var(--line);padding:30px 0 50px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.cs-foot span{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:0.04em;}
.cs-foot a{color:var(--accent);text-decoration:none;font-weight:600;}

@media(max-width:760px){
  .overview{grid-template-columns:1fr 1fr;gap:22px;}
  .cs-section p{font-size:16px;}
}
@media(max-width:520px){
  .wrap{padding:0 18px;}
  .overview{grid-template-columns:1fr;}
  .img-grid,.img-grid.asym,.img-grid.asym-r,.img-grid.trio{grid-template-columns:1fr;}
  .cs-pill .brand{display:none;}
  .dev-item{grid-template-columns:1fr;gap:6px;}
}
