/* Juno · página temporal */
:root{
  --bg:#161616;
  --bg-2:#1e1e1e;
  --text:#f2f0ed;
  --muted:#9c9892;
  --line:#2c2b2a;
  --accent:#ee3347;
  --accent-hover:#ff4a5d;
  --wrap:1300px;
  --gutter:24px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}

/* Cabecera */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 0}
.top img{height:56px;width:auto}
.top p{margin:0;font-size:14px;color:var(--muted);text-align:right}

/* Aviso de renovación */
.intro{padding:40px 0 56px}
.intro h1{text-wrap:balance;
  margin:0 0 12px;font-weight:600;
  font-size:clamp(30px,4.2vw,48px);line-height:1.1;letter-spacing:-.03em;
}
.intro p{margin:0;font-size:clamp(17px,1.6vw,20px);color:var(--muted)}
.intro p a{
  color:var(--text);text-decoration:none;
  border-bottom:1px solid var(--accent);padding-bottom:1px;transition:color .15s;
}
.intro p a:hover{color:var(--accent)}
.intro p a span{display:inline-block;transition:transform .2s}
.intro p a:hover span{transform:translateY(2px)}

/* Secciones */
section{padding:48px 0;border-top:1px solid var(--line)}
.head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
h2{font-size:clamp(22px,2.2vw,28px);letter-spacing:-.02em;line-height:1.2;font-weight:600;margin:0}

/* Carrusel */
.nav{display:flex;gap:8px;flex-shrink:0}
.nav button{
  width:50px;height:50px;border-radius:50%;border:1px solid var(--line);background:transparent;
  color:var(--text);font:inherit;font-size:21px;line-height:1;cursor:pointer;transition:border-color .15s,opacity .15s;
}
.nav button:hover:not(:disabled){border-color:var(--muted)}
.nav button:disabled{opacity:.3;cursor:default}
.track{
  display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 20px) / 4);gap:20px;
  overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;
}
.track::-webkit-scrollbar{display:none}
.card{scroll-snap-align:start;min-width:0;display:block;text-decoration:none}
.card .shot{
  position:relative;aspect-ratio:16/10;border:1px solid var(--line);border-radius:6px;
  overflow:hidden;background:var(--bg-2);container-type:inline-size;
}
/* La captura es más alta que el cuadro: al pasar el mouse se desplaza lento hacia abajo y al salir vuelve arriba.
   Se mueve con transform (lo hace la tarjeta gráfica), por eso no tiembla al empezar. */
.card .shot img{
  position:absolute;top:0;left:0;width:100%;height:auto;
  transform:translate3d(0,0,0);will-change:transform;backface-visibility:hidden;
  transition:transform 2s cubic-bezier(.45,0,.25,1);
}
@media (hover:hover){
  .card:hover .shot img{
    transform:translate3d(0,calc(-100% + 62.5cqw),0);
    transition-duration:5s;
  }
}
.card .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:12px}
.card h3{margin:0;font-size:15px;font-weight:600}
.card .arrow{display:inline-block;margin-left:6px;font-size:13px;font-weight:400;color:var(--muted);transition:color .15s,transform .2s}
a.card:hover .arrow{color:var(--text);transform:translate(2px,-2px)}
.card p{margin:2px 0 0;font-size:13px;color:var(--muted)}

/* Servicios */
.svc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line)}
.svc li{padding:18px 20px 4px 0}
.svc li + li{padding-left:20px;border-left:1px solid var(--line)}
.svc h3{margin:0 0 6px;font-size:15px;font-weight:600}
.svc p{margin:0;font-size:14px;color:var(--muted);line-height:1.55}

/* Contacto */
.contact{padding-bottom:40px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 40px;align-items:center}
.contact h2{font-size:clamp(26px,3vw,38px);letter-spacing:-.03em;line-height:1.08;margin:0}
.links{display:flex;flex-direction:column}
.links a{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:color .15s;
}
.links a:last-child{border-bottom:0}
.links small{font-size:13px;color:var(--muted);min-width:90px}
.links strong{flex:1;font-size:clamp(17px,1.5vw,20px);font-weight:500}
.links span{color:var(--muted);transition:color .15s,transform .2s}
.links a:hover strong,.links a:hover span{color:var(--accent)}
.links a:hover span{transform:translate(2px,-2px)}

/* Pie */
footer .wrap{padding-top:20px;padding-bottom:28px;font-size:13px;color:var(--muted)}
/* 4 datos con la misma distancia entre ellos */
footer ul{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 24px}

/* Responsive */
@media (max-width:980px){
  .track{grid-auto-columns:calc((100% - 20px) / 2.3)}
  .svc{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svc li,.svc li + li{padding:16px 0;border-left:0;border-bottom:1px solid var(--line)}
  .svc li:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}
  .svc li:last-child:nth-child(odd){grid-column:1 / -1;border-bottom:0;padding-bottom:0}
  .contact-grid{grid-template-columns:1fr;gap:24px}
}
@media (max-width:560px){
  :root{--gutter:16px}
  body{font-size:15px}
  .top{padding:16px 0}
  .top img{height:44px}
  .top p{font-size:12.5px;max-width:16ch}
  .intro{padding:16px 0 32px}
  .intro h1{font-size:28px;margin-bottom:8px}
  .intro p{font-size:16px}
  section{padding:32px 0}
  .head{margin-bottom:16px}
  h2{font-size:21px}
  .track{grid-auto-columns:78%;gap:14px}
  .nav{display:none}
  .card .row{margin-top:10px}
  /* servicios en 2 columnas para acortar la página */
  .svc li,.svc li + li{padding:14px 0}
  .svc li:nth-child(even){padding-left:14px}
  .svc li:nth-child(odd){padding-right:6px}
  .svc h3{font-size:14px;margin-bottom:4px}
  .svc p{font-size:13px;line-height:1.5}
  .contact{border-top:0;padding-top:16px}
  .contact h2{font-size:26px}
  .links strong{font-size:17px}
  .contact-grid{gap:20px}
  .links a{padding:12px 0}
  footer .wrap{padding-top:16px;padding-bottom:22px;font-size:12px}
  footer ul{flex-direction:column;gap:2px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
