/* =========================================================
   R-MEDIA · Vista de proyecto (caso)
   Se usa en la página suelta de cada proyecto (/proyectos/*.html)
   y en el panel que se abre por AJAX desde el portfolio.
   ========================================================= */
.case{
  --bg:#f2f3ef; --surface:#fff; --ink:#111518; --muted:#6b757c; --line:rgba(17,21,24,.1);
  --accent:#2D9ABE; --accent-soft:#d8eef6;
  --display:"Funnel Display", system-ui, sans-serif; --body:"Inter Tight", system-ui, sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  background:var(--bg); color:var(--ink); font-family:var(--body); font-size:17px; line-height:1.55;
  padding-bottom:clamp(60px,8vw,110px);
}
.case *{box-sizing:border-box}
.case a{color:inherit;text-decoration:none}
.case img{display:block;max-width:100%}
.case-wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 clamp(16px,3.5vw,40px)}
.case h1,.case h2,.case h3{font-family:var(--display);font-weight:700;letter-spacing:-.035em;line-height:.98;margin:0}
.case p{margin:0}

/* Barra superior */
.case-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0}
.case-back{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;padding:12px 20px 12px 14px;border-radius:99px;background:var(--surface);border:1px solid var(--line);cursor:pointer;transition:background .3s,color .3s}
.case-back:hover{background:var(--ink);color:#fff}
.case-back svg{width:18px;height:18px}
.case-num{font-size:14px;color:var(--muted)}

/* Encabezado */
.case-head{padding:clamp(30px,6vw,80px) 0 clamp(30px,4vw,50px)}
.case-eyebrow{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.case-head h1{font-size:clamp(40px,6.5vw,96px);margin-top:14px}
.case-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-top:clamp(26px,4vw,50px)}
.case-intro p{font-family:var(--display);font-size:clamp(21px,2.2vw,29px);line-height:1.3;letter-spacing:-.015em}
.case-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.case .btn{display:inline-flex;align-items:center;gap:10px;padding:16px 24px;border-radius:99px;font-weight:600;font-size:16px;white-space:nowrap;transition:background .3s,color .3s}
.case .btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.case .btn:hover svg{transform:translate(3px,-3px)}
.case .btn-dark{background:var(--ink);color:#fff}
.case .btn-dark:hover{background:var(--accent)}
.case .btn-line{border:1.5px solid var(--ink)}
.case .btn-line:hover{background:var(--ink);color:#fff}

/* Ficha */
.case-meta{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:clamp(36px,5vw,60px)}
.case-meta div{padding:22px 20px 0 0}
.case-meta small{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.case-meta b{font-weight:600;font-size:16px}

/* Imagen principal */
.case-cover{border-radius:36px;overflow:hidden;aspect-ratio:16/9.6;background:#e9dccb}
.case-cover img{width:100%;height:100%;object-fit:cover}

/* Bloques de texto */
.case-block{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(20px,5vw,80px);padding:clamp(60px,9vw,120px) 0 0}
.case-block h2{font-size:clamp(34px,4vw,56px)}
.case-block h2 span{display:block;font-family:var(--body);font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.case-block .txt p{font-size:clamp(18px,1.6vw,21px);color:#3c464c}
.case-block .txt p + p{margin-top:16px}

.case-features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.case-features div{background:var(--surface);border-radius:24px;padding:26px;transition:transform .5s var(--ease)}
.case-features div:hover{transform:translateY(-6px)}
.case-features i{width:48px;height:48px;border-radius:15px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:22px}
.case-features i svg{width:22px;height:22px}
.case-features h3{font-size:23px;letter-spacing:-.02em;margin-bottom:8px}
.case-features p{color:var(--muted);font-size:16px}

/* Galería */
.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-top:clamp(60px,8vw,110px)}
.case-gallery figure{margin:0;border-radius:32px;overflow:hidden;aspect-ratio:1}
.case-gallery figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.case-gallery figure:hover img{transform:scale(1.04)}

.case-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.case-stack span{font-size:14px;padding:8px 16px;border-radius:99px;background:var(--surface)}

/* Siguiente proyecto */
.case-next{display:block;margin-top:clamp(70px,10vw,140px);border-top:1px solid var(--line);padding-top:30px}
.case-next small{font-size:14px;color:var(--muted)}
.case-next b{display:flex;align-items:center;gap:.3em;font-family:var(--display);font-weight:700;font-size:clamp(34px,5vw,68px);letter-spacing:-.035em;line-height:1;margin-top:8px;transition:color .3s}
.case-next b svg{width:.55em;height:.55em;transition:transform .5s var(--ease)}
.case-next:hover b{color:var(--accent)}
.case-next:hover b svg{transform:translate(.1em,-.1em)}

/* Animación de entrada del contenido */
.case [data-in]{opacity:0;transform:translateY(36px);transition:opacity .9s ease, transform .9s var(--ease)}
.case.ready [data-in]{opacity:1;transform:none}
.case.ready [data-in="2"]{transition-delay:.08s}
.case.ready [data-in="3"]{transition-delay:.16s}
.case.ready [data-in="4"]{transition-delay:.24s}
.case.ready [data-in="5"]{transition-delay:.32s}
.case .scroll-in{opacity:0;transform:translateY(46px);transition:opacity 1s ease, transform 1s var(--ease)}
.case .scroll-in.in{opacity:1;transform:none}

/* ===== Panel que se abre desde el portfolio ===== */
.case-overlay{position:fixed;inset:0;z-index:95;overflow-y:auto;overscroll-behavior:contain;background:#f2f3ef;visibility:hidden}
.case-overlay.open{visibility:visible}
.case-overlay.closing{animation:caseOut .55s var(--ease, cubic-bezier(.2,.8,.2,1)) forwards}
@keyframes caseOut{to{opacity:0;transform:translateY(60px)}}
.case-ghost{position:fixed;z-index:96;overflow:hidden;pointer-events:none;will-change:top,left,width,height,border-radius}
.case-ghost img{width:100%;height:100%;object-fit:cover}
.case-ghost .mock{position:absolute;inset:0}
.case-loading{position:fixed;z-index:97;left:50%;bottom:40px;translate:-50% 0;background:#111518;color:#fff;font:600 14px "Inter Tight",sans-serif;padding:10px 18px;border-radius:99px;opacity:0;transition:opacity .3s}
.case-loading.on{opacity:1}
html.case-lock,html.case-lock body{overflow:hidden}

/* ===== Responsive ===== */
@media (max-width:900px){
  .case-intro,.case-block{grid-template-columns:1fr}
  .case-actions{justify-content:flex-start}
  .case-features{grid-template-columns:1fr}
  .case-meta{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .case-gallery{grid-template-columns:1fr}
  .case-cover{aspect-ratio:4/3;border-radius:24px}
  .case-gallery figure{border-radius:24px}
  .case-num{display:none}
}
@media (prefers-reduced-motion:reduce){
  .case [data-in],.case .scroll-in{opacity:1;transform:none;transition:none}
  .case-overlay.closing{animation:none}
}

/* ===== Visor de sitio completo (captura que se recorre) ===== */
.viewer{max-width:1000px;margin:0 auto;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 40px 90px rgba(17,21,24,.18),0 0 0 1px rgba(17,21,24,.06);position:relative}
.viewer-bar{display:flex;align-items:center;gap:7px;padding:12px 14px;background:#f4f5f6;border-bottom:1px solid #e6e8ea}
.viewer-bar i{width:11px;height:11px;border-radius:50%;background:#d6dadd;flex:none}
.viewer-url{margin-left:10px;flex:1;min-width:0;font-size:13px;color:#7d8a93;background:#fff;padding:6px 14px;border-radius:99px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.case .viewer-go{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:13px;font-weight:600;padding:7px 14px;border-radius:99px;background:var(--ink);color:#fff;transition:background .3s}
.case .viewer-go:hover{background:var(--accent)}
.viewer-go svg{width:14px;height:14px}
.viewer-screen{height:min(76vh,760px);overflow-y:auto;overscroll-behavior-y:auto;scrollbar-width:thin;scrollbar-color:rgba(17,21,24,.25) transparent;cursor:ns-resize;outline:none}
.viewer-screen img{width:100%;display:block}
.viewer-screen::-webkit-scrollbar{width:6px}
.viewer-screen::-webkit-scrollbar-thumb{background:rgba(17,21,24,.25);border-radius:6px}
.viewer-hint{position:absolute;left:50%;bottom:22px;translate:-50% 0;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#fff;background:rgba(17,21,24,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:10px 16px;border-radius:99px;pointer-events:none;transition:opacity .4s, translate .4s}
.viewer-hint svg{width:16px;height:16px;animation:hintBob 1.6s ease-in-out infinite}
@keyframes hintBob{50%{transform:translateY(3px)}}
.viewer.active .viewer-hint{opacity:0;translate:-50% 10px}
.viewer-progress{position:absolute;right:6px;top:56px;bottom:10px;width:3px;border-radius:3px;background:rgba(17,21,24,.06);pointer-events:none}
.viewer-progress b{display:block;width:100%;height:var(--p,0%);background:var(--accent);border-radius:3px}
.case-viewer-wrap{padding-top:clamp(10px,2vw,20px)}
.hint-touch{display:none}
@media (hover:none){.hint-mouse{display:none}.hint-touch{display:inline}.viewer-screen{cursor:auto}}
@media (max-width:560px){.viewer{border-radius:16px}.viewer-screen{height:68vh}.viewer-url{display:none}.case .viewer-go{margin-left:auto}}
/* Pestañas del visor (cuando el proyecto tiene más de una página) */
.viewer-tabs{margin-left:10px;flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.viewer-tabs::-webkit-scrollbar{display:none}
.case .viewer-tabs button{font:inherit;font-size:13px;font-weight:600;padding:6px 14px;border-radius:99px;border:1px solid #e1e5e8;background:#fff;color:#4b565d;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.case .viewer-tabs button:hover{border-color:#b9c2c8}
.case .viewer-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.viewer-screen[hidden]{display:none}

/* Oculta la barra de herramientas de Netlify (solo para usuarios logueados) */
.nl-wrap {
  display: none !important;
}
