@charset "UTF-8";
/* ==========================================================================
   Curvas
   Estetica propia, de pista, para que no se confunda con el portfolio:
   negro casi puro, rojo de semaforo, titulares condensados en cursiva y la
   mira del radar como marca. Hoja autonoma: no carga style.css de la web.
   Mobile first. Fichero ASCII, como el de la web.
   ========================================================================== */

:root{
  --negro:#0A0A0C;
  --negro2:#131317;
  --negro3:#1D1D23;
  --blanco:#F5F5F7;
  --gris:#A1A1AA;
  --gris2:#63636D;

  --rojo:#E3121B;
  --rojo-claro:#FF3B42;
  --rojo-oscuro:#A80C13;

  --filete:rgba(255,255,255,.1);
  --filete2:rgba(255,255,255,.24);
  --sombra:0 24px 60px -20px rgba(0,0,0,.9);

  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --texto:"Barlow","Helvetica Neue",Arial,sans-serif;
  --pincel:"Permanent Marker","Brush Script MT",cursive;

  --margen:clamp(16px,4vw,56px);
  --radio:6px;
  --barra:68px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--barra) + 12px); }
body{
  margin:0; background:var(--negro); color:var(--blanco);
  font-family:var(--texto); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; }
h1,h2,h3{ text-wrap:balance; overflow-wrap:anywhere; }
:focus-visible{ outline:2px solid var(--rojo-claro); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

.saltar{
  position:absolute; left:-9999px; top:0; z-index:400;
  background:var(--rojo); color:var(--blanco); padding:12px 18px; text-decoration:none;
  font-family:var(--display); font-weight:800; font-style:italic; text-transform:uppercase; letter-spacing:.08em;
}
.saltar:focus{ left:8px; top:8px; }

/* Epigrafe: mayusculas espaciadas, el "COMPRA . DESCARGA . DISFRUTA" */
.etq{
  margin:0; font-family:var(--display); font-weight:600; font-size:13px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gris);
}

.cv-icono{
  width:26px; height:26px; flex:none; fill:none; stroke:currentColor;
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
}

/* ---------- barra ---------- */
.cv-barra{
  position:sticky; top:0; z-index:90; height:var(--barra);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:0 var(--margen);
  background:rgba(10,10,12,.92); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-bottom:1px solid var(--filete);
}
.cv-logo{ position:relative; display:flex; align-items:baseline; gap:4px; text-decoration:none; padding-left:6px; }
.cv-logo__mira{ position:absolute; left:-6px; top:50%; width:46px; height:46px; transform:translateY(-50%); color:var(--rojo); opacity:.9; }
.cv-logo__nombre{
  position:relative; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:30px; line-height:1; letter-spacing:-.01em; text-transform:uppercase;
}
.cv-logo__fotos{ position:relative; font-family:var(--pincel); font-size:19px; color:var(--rojo); transform:rotate(-6deg) translateY(4px); }
.cv-nav{ display:flex; align-items:center; gap:clamp(14px,3vw,30px); }
.cv-nav a{
  font-family:var(--display); font-weight:700; font-style:italic; font-size:15px;
  letter-spacing:.08em; text-transform:uppercase; text-decoration:none; color:var(--gris);
  padding:8px 0; border-bottom:2px solid transparent; transition:color .2s, border-color .2s;
}
.cv-nav a:hover, .cv-nav a[aria-current="page"]{ color:var(--blanco); border-bottom-color:var(--rojo); }
@media (max-width:560px){
  .cv-nav__web{ display:none; }
}

/* ---------- hero de la portada ---------- */
.cv-hero{
  position:relative; isolation:isolate; overflow:hidden;
  min-height:min(88svh,760px); display:flex; align-items:flex-end;
  padding:clamp(48px,10vh,120px) var(--margen) clamp(40px,8vh,90px);
  background:radial-gradient(120% 90% at 85% 20%, #2a0d10 0%, var(--negro) 60%);
}
.cv-hero__foto{
  position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover;
  filter:saturate(.9) contrast(1.05);
}
.cv-hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, rgba(10,10,12,.92) 0%, rgba(10,10,12,.62) 42%, rgba(10,10,12,.05) 75%),
    linear-gradient(0deg, var(--negro) 0%, rgba(10,10,12,0) 32%);
}
/* En vertical la foto queda detras del texto: se oscurece de abajo arriba. */
@media (max-width:700px){
  .cv-hero::before{
    background:linear-gradient(0deg, var(--negro) 0%, rgba(10,10,12,.86) 45%, rgba(10,10,12,.35) 100%);
  }
}
.cv-hero__texto{ max-width:640px; }
.cv-marca{ position:relative; display:inline-block; padding:clamp(18px,4vw,40px) 0 0 clamp(8px,2vw,20px); }
.cv-marca__mira{
  position:absolute; left:-4%; top:-14%; width:clamp(150px,34vw,300px); height:auto;
  color:var(--rojo); opacity:.85; z-index:-1;
}
.cv-marca h1{ margin:0; line-height:.82; }
.cv-marca__nombre{
  display:block; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:clamp(72px,17vw,168px); letter-spacing:-.02em; text-transform:uppercase;
  text-shadow:0 6px 30px rgba(0,0,0,.6);
}
.cv-marca__fotos{
  display:block; margin:-.12em 0 0 .9em; font-family:var(--pincel); font-weight:400;
  font-size:clamp(52px,11vw,110px); color:var(--rojo); transform:rotate(-7deg);
  text-shadow:0 4px 20px rgba(0,0,0,.55);
}
.cv-hero__titular{
  margin:clamp(22px,4vw,36px) 0 0; font-family:var(--display); font-weight:800;
  font-size:clamp(26px,4.4vw,40px); line-height:1.02; text-transform:uppercase;
}
.cv-hero__pasos{
  margin:14px 0 0; font-family:var(--display); font-weight:600; font-size:clamp(14px,1.8vw,18px);
  letter-spacing:.32em; text-transform:uppercase; color:var(--gris);
}
.cv-hero__pasos i{ font-style:normal; color:var(--rojo); padding:0 .3em; }
.curvas-boton.cv-hero__cta{ margin-top:clamp(26px,4vw,40px); min-height:56px; padding:14px 26px; font-size:19px; gap:14px; }

/* ---------- franja de ventajas ---------- */
.cv-ventajas{
  list-style:none; margin:0; padding:22px var(--margen);
  display:grid; grid-template-columns:repeat(2,1fr); gap:18px 12px;
  background:var(--negro2); border-top:1px solid var(--filete); border-bottom:1px solid var(--filete);
}
.cv-ventajas li{
  display:flex; align-items:center; gap:12px;
  font-family:var(--display); font-weight:600; font-size:14px; line-height:1.25;
  letter-spacing:.1em; text-transform:uppercase; color:var(--blanco);
}
.cv-ventajas .cv-icono{ width:34px; height:34px; color:var(--rojo); }
@media (min-width:860px){
  .cv-ventajas{ grid-template-columns:repeat(4,1fr); }
  .cv-ventajas li{ justify-content:center; }
  .cv-ventajas li + li{ border-left:1px solid var(--filete2); }
}

/* ---------- secciones ---------- */
.cv-seccion{ padding:clamp(44px,7vw,84px) var(--margen) clamp(56px,8vw,96px); }
.cv-titulo{
  display:flex; align-items:center; gap:16px; margin:0;
  font-family:var(--display); font-weight:900; font-style:italic;
  font-size:clamp(34px,6vw,56px); line-height:1; text-transform:uppercase;
}
.cv-titulo::after{ content:""; flex:1; height:2px; background:linear-gradient(90deg,var(--rojo),transparent); }

/* ---------- cabeceras de galeria ---------- */
.curvas-cab{ position:relative; isolation:isolate; overflow:hidden; padding:28px var(--margen) 28px; }
.curvas-cab--sesion{ padding-top:clamp(40px,8vw,90px); border-bottom:1px solid var(--filete); }
.curvas-cab__foto{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.curvas-cab:has(.curvas-cab__foto)::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, rgba(10,10,12,.94) 0%, rgba(10,10,12,.7) 55%, rgba(10,10,12,.35) 100%);
}
.curvas-cab .etq{ color:var(--rojo-claro); }
.curvas-cab h1{
  margin:8px 0 0; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:clamp(44px,10vw,96px); line-height:.9; text-transform:uppercase; letter-spacing:-.01em;
}
.curvas-precios{
  display:flex; flex-wrap:wrap; gap:8px 18px; margin:18px 0 0; color:var(--gris);
  font-family:var(--display); font-weight:600; font-size:16px; letter-spacing:.06em; text-transform:uppercase;
}
.curvas-precios b{ color:var(--blanco); font-weight:800; font-style:italic; font-size:22px; letter-spacing:0; }

/* ---------- migas ---------- */
.migas{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:18px var(--margen) 0;
  font-family:var(--display); font-weight:600; font-size:13px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gris);
}
.migas a{ text-decoration:none; }
.migas a:hover{ color:var(--rojo-claro); }
.migas i{ font-style:normal; color:var(--gris2); }
.migas span{ color:var(--blanco); }
.migas + .curvas-cab{ padding-top:18px; }

/* ---------- formularios ---------- */
.curvas select, .curvas input, .curvas textarea{
  width:100%; margin:0; border-radius:var(--radio); font-family:var(--texto);
  font-size:16px;            /* 16px: iOS no hace zoom al enfocar */
  color:var(--blanco); background:var(--negro3);
  border:1px solid var(--filete2); padding:12px 14px;
}
.curvas select{
  -webkit-appearance:none; appearance:none; padding-right:44px; cursor:pointer;
  font-family:var(--display); font-weight:700; font-size:18px; letter-spacing:.04em;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2712%27%20height%3D%278%27%3E%3Cpath%20d%3D%27M1%201l5%205%205-5%27%20fill%3D%27none%27%20stroke%3D%27%23E3121B%27%20stroke-width%3D%272%27%2F%3E%3C%2Fsvg%3E");
  background-repeat:no-repeat; background-position:right 16px center;
}
.curvas input[type="checkbox"]{ width:20px; height:20px; padding:0; accent-color:var(--rojo); }
.curvas select:focus, .curvas input:focus, .curvas textarea:focus{ border-color:var(--rojo); outline:none; box-shadow:0 0 0 3px rgba(227,18,27,.25); }
.curvas-filtro{ display:grid; gap:8px; max-width:380px; margin-top:24px; }
.curvas-filtro .etq{ color:var(--blanco); }
.curvas-campo{ display:grid; gap:6px; margin-top:14px; }
.curvas-check{ display:flex; align-items:center; gap:10px; margin-top:16px; }
.curvas-form{ max-width:620px; }
.curvas-form__fila{ display:grid; gap:0 12px; }
@media (min-width:560px){ .curvas-form__fila{ grid-template-columns:1fr 1fr; } }
.curvas-form__acciones{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.curvas-error{ color:#FF8A8F; margin:12px 0 0; }
.curvas-nota{ color:var(--gris); }

/* ---------- botones ---------- */
.curvas-boton{
  -webkit-appearance:none; appearance:none; display:inline-flex; gap:10px;
  align-items:center; justify-content:center; min-height:46px;
  font-family:var(--display); font-weight:800; font-style:italic; font-size:16px;
  letter-spacing:.1em; text-transform:uppercase; text-decoration:none;
  padding:11px 22px; cursor:pointer; border-radius:var(--radio);
  background:var(--rojo); color:var(--blanco); border:2px solid var(--rojo);
  transition:background-color .2s, color .2s, border-color .2s, transform .2s;
}
.curvas-boton:hover{ background:var(--rojo-claro); border-color:var(--rojo-claro); }
.curvas-boton:active{ transform:translateY(1px); }
.curvas-boton--linea{ background:rgba(10,10,12,.35); color:var(--blanco); border-color:var(--rojo); }
.curvas-boton--linea:hover{ background:var(--rojo); border-color:var(--rojo); color:var(--blanco); }
.curvas-boton:disabled{ opacity:.55; cursor:progress; }
.curvas-enlace{
  -webkit-appearance:none; appearance:none; background:none; border:0; cursor:pointer;
  padding:10px 4px; font-family:var(--texto); font-size:14px; color:var(--gris); text-decoration:underline;
}
.curvas-enlace:hover{ color:var(--blanco); }

/* ---------- listado de sesiones ---------- */
.curvas-sesiones{
  list-style:none; margin:28px 0 0; padding:0;
  display:grid; gap:18px; grid-template-columns:1fr;
}
@media (min-width:640px){ .curvas-sesiones{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1100px){ .curvas-sesiones{ grid-template-columns:repeat(3,1fr); } }
.curvas-sesion{
  position:relative; display:block; overflow:hidden; text-decoration:none;
  border-radius:var(--radio); background:var(--negro3); aspect-ratio:3/2;
}
.curvas-sesion img, .curvas-sesion__vacia{
  position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover;
  transition:transform .6s cubic-bezier(.16,.85,.24,1), filter .4s;
  filter:brightness(.8);
}
.curvas-sesion:hover img{ transform:scale(1.04); filter:brightness(.95); }
.curvas-sesion::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(10,10,12,.95) 0%, rgba(10,10,12,.2) 55%, transparent 100%);
}
.curvas-sesion__texto{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:18px 18px 16px; border-left:4px solid var(--rojo); }
.curvas-sesion .etq{ display:block; color:var(--gris); font-size:12px; }
.curvas-sesion__titulo{
  display:block; margin-top:4px; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:clamp(28px,4vw,36px); line-height:.95; text-transform:uppercase;
}
.curvas-sesion__ver{
  display:inline-block; margin-top:10px; font-family:var(--display); font-weight:700; font-style:italic;
  font-size:14px; letter-spacing:.12em; text-transform:uppercase; color:var(--rojo-claro);
}

/* ---------- galeria ---------- */
.curvas-estado{ padding:20px var(--margen) 0; margin:0; color:var(--gris); }
.cv-seccion .curvas-estado{ padding:20px 0 0; }
.curvas-estado[hidden]{ display:none; }
.curvas-rejilla{
  list-style:none; margin:0; padding:20px var(--margen) 48px;
  display:grid; gap:4px; grid-template-columns:repeat(3,1fr);
}
@media (min-width:700px){
  .curvas-rejilla{ gap:8px; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); }
}
.curvas-miniatura{
  position:relative; display:block; width:100%; padding:0; margin:0; border:0;
  aspect-ratio:3/2; overflow:hidden; cursor:pointer; background:var(--negro3); border-radius:3px;
}
.curvas-miniatura img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.curvas-miniatura:hover img{ transform:scale(1.05); }
.curvas-miniatura__hora{
  position:absolute; left:0; bottom:0; padding:2px 8px 2px 6px;
  font-family:var(--display); font-weight:800; font-style:italic; font-size:13px; letter-spacing:.04em;
  color:var(--blanco); background:var(--rojo);
}
.curvas-miniatura[aria-pressed="true"]{ outline:3px solid var(--rojo); outline-offset:-3px; }
.curvas-miniatura[aria-pressed="true"]::after{
  content:"\2713"; position:absolute; top:6px; right:6px; width:26px; height:26px;
  display:grid; place-items:center; border-radius:50%;
  background:var(--rojo); color:var(--blanco); font-size:15px; font-weight:700;
}
.curvas-sentinela{ height:1px; }

/* ---------- la seleccion, fija abajo y siempre a mano del pulgar ---------- */
.curvas-seleccion{
  position:fixed; left:0; right:0; bottom:0; z-index:85;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px var(--margen) calc(12px + env(safe-area-inset-bottom));
  background:rgba(10,10,12,.96); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-top:3px solid var(--rojo);
}
.curvas-seleccion[hidden]{ display:none; }
.curvas-seleccion .etq{ color:var(--gris); }
.curvas-seleccion__total{
  margin:0; font-family:var(--display); font-weight:900; font-style:italic; font-size:28px; line-height:1.05;
}
.curvas-seleccion__acciones{ display:flex; gap:8px; }
.curvas-con-seleccion main{ padding-bottom:84px; }

/* ---------- visor ---------- */
.visor{
  position:fixed; inset:0; z-index:300; display:none;
  background:rgba(6,6,8,.97); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
}
.visor[open]{ display:grid; grid-template-rows:auto 1fr auto; }
.visor__barra{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px clamp(14px,4vw,40px); border-bottom:1px solid var(--filete);
}
.visor__barra .etq{ font-size:20px; font-weight:800; font-style:italic; letter-spacing:.06em; color:var(--blanco); }
.visor__escena{ position:relative; min-height:0; touch-action:pan-y; }
/* La foto se centra con inset+margin auto: un max-height en porcentaje no se
   resuelve contra un area de rejilla y la imagen se sale del marco. */
.visor__escena img{
  position:absolute; inset:0; margin:auto; max-width:100%; max-height:100%; width:auto; height:auto;
  -webkit-user-select:none; user-select:none; box-shadow:var(--sombra);
}
.visor__barra button, .curvas-visor__pie [data-paso]{
  -webkit-appearance:none; appearance:none; background:none; cursor:pointer;
  border:1px solid var(--filete2); border-radius:var(--radio); color:var(--blanco);
  font-family:var(--display); font-weight:700; font-style:italic; font-size:15px;
  letter-spacing:.1em; text-transform:uppercase; padding:9px 16px;
  transition:background-color .2s, border-color .2s;
}
.visor__barra button:hover, .curvas-visor__pie [data-paso]:hover{ background:var(--rojo); border-color:var(--rojo); }
.curvas-visor__pie{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px;
  padding:12px clamp(10px,3vw,40px) calc(12px + env(safe-area-inset-bottom));
  border-top:1px solid var(--filete);
}
.curvas-visor__acciones{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; }
.curvas-visor__pie [data-paso]{ min-width:46px; min-height:46px; font-size:20px; padding:0; }
@media (max-width:560px){
  .curvas-visor__acciones .curvas-boton{ flex:1 1 100%; }
}

/* ---------- dialogo de retirada y avisos ---------- */
.curvas-dialogo{
  width:min(520px, calc(100vw - 32px)); padding:0; border:1px solid var(--filete2);
  border-top:4px solid var(--rojo); border-radius:var(--radio);
  background:var(--negro2); color:var(--blanco);
}
.curvas-dialogo::backdrop{ background:rgba(6,6,8,.85); }
.curvas-dialogo form{ padding:24px; }
.curvas-dialogo h2{ font-family:var(--display); font-weight:900; font-style:italic; margin:0; font-size:30px; text-transform:uppercase; }
.curvas-dialogo p{ margin:10px 0 0; color:var(--gris); }
.curvas-aviso{
  position:fixed; z-index:320; left:50%; transform:translateX(-50%);
  bottom:calc(96px + env(safe-area-inset-bottom)); margin:0;
  width:max-content; max-width:calc(100vw - 24px);
  padding:12px 18px; border-radius:var(--radio); border-left:4px solid var(--rojo);
  background:var(--blanco); color:var(--negro); box-shadow:var(--sombra); font-size:15px;
}
.curvas-aviso[hidden]{ display:none; }

/* ---------- paginas de texto: pedido, descarga, aviso, panel, error ---------- */
.hoja{ max-width:76ch; margin:0 auto; padding:clamp(44px,8vw,96px) var(--margen) clamp(60px,9vw,110px); }
.hoja--ancha{ max-width:1100px; }
.hoja > .etq{ color:var(--rojo-claro); }
.hoja h1{
  margin:8px 0 0; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:clamp(40px,8vw,76px); line-height:.92; text-transform:uppercase;
}
.hoja h2{
  margin:clamp(30px,4vw,44px) 0 8px; font-family:var(--display); font-weight:800; font-style:italic;
  font-size:clamp(22px,3vw,28px); text-transform:uppercase; letter-spacing:.02em;
}
.hoja p, .hoja li{ color:var(--gris); }
.hoja a:not(.curvas-boton){ color:var(--rojo-claro); }
.entradilla{ margin:16px 0 0; color:var(--blanco) !important; font-size:clamp(17px,2vw,20px); }
.volver{
  display:inline-block; margin-top:clamp(30px,4vw,44px);
  font-family:var(--display); font-weight:700; font-style:italic; font-size:15px;
  letter-spacing:.12em; text-transform:uppercase; text-decoration:none;
  border-bottom:2px solid var(--rojo); padding-bottom:3px; color:var(--blanco) !important;
}
.curvas-hoja .curvas-boton{ margin-top:24px; }
.curvas-cargador{
  width:34px; height:34px; margin-top:28px; border-radius:50%;
  border:3px solid var(--filete2); border-top-color:var(--rojo);
  animation:curvas-gira .9s linear infinite;
}
@keyframes curvas-gira{ to{ transform:rotate(360deg); } }
.curvas-descargas{ list-style:none; margin:28px 0 0; padding:0; display:grid; }
.curvas-descargas li{
  display:grid; grid-template-columns:96px 1fr auto; align-items:center; gap:14px;
  padding:12px 0; border-top:1px solid var(--filete);
}
/* height:auto: si no, el atributo height de la etiqueta gana al aspect-ratio. */
.curvas-descargas img{ width:96px; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:3px; }
.curvas-descargas .etq{ color:var(--blanco); font-size:16px; font-weight:800; font-style:italic; }
.curvas-descargas .curvas-boton{ margin:0; }

/* ---------- pie ---------- */
.cv-pie{ padding:34px var(--margen) calc(30px + env(safe-area-inset-bottom)); background:var(--negro2); border-top:1px solid var(--filete); }
.cv-pie__lema{
  display:flex; align-items:center; gap:18px; margin:0 0 26px;
  font-family:var(--display); font-weight:600; font-size:14px; letter-spacing:.28em;
  text-transform:uppercase; color:var(--gris); text-align:center;
}
.cv-pie__lema::before, .cv-pie__lema::after{ content:""; flex:1; height:1px; background:var(--filete2); }
.cv-pie__fila{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px 30px; }
.cv-pie__enlaces, .cv-pie__legal{ display:flex; flex-wrap:wrap; gap:8px 22px; align-items:center; }
.cv-pie__enlaces a{ font-family:var(--display); font-weight:700; font-style:italic; font-size:17px; text-decoration:none; }
.cv-pie__enlaces a:hover{ color:var(--rojo-claro); }
.cv-pie__legal{ font-size:13px; color:var(--gris2); }
.cv-pie__legal a{ text-decoration:none; color:var(--gris); }
.cv-pie__legal a:hover{ color:var(--blanco); }

/* ---------- panel ---------- */
.curvas-pestanas{ display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 20px; }
.curvas-pestanas [aria-selected="true"]{ background:var(--rojo); color:var(--blanco); border-color:var(--rojo); }
.curvas-admin h2{ font-family:var(--display); font-weight:900; font-style:italic; font-size:30px; text-transform:uppercase; margin-top:10px; }
.curvas-admin h3{ font-family:var(--display); font-weight:800; font-style:italic; font-size:21px; text-transform:uppercase; margin:34px 0 0; }
.curvas-tabla-caja{ overflow-x:auto; margin-top:20px; }
.curvas-tabla{ width:100%; border-collapse:collapse; font-size:15px; }
.curvas-tabla th{
  text-align:left; padding:8px; font-family:var(--display); font-weight:700; font-size:13px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--gris);
}
.curvas-tabla td{ padding:10px 8px; border-top:1px solid var(--filete); vertical-align:middle; color:var(--blanco); }
.curvas-tabla td .curvas-boton{ min-height:36px; padding:6px 12px; margin:2px; font-size:14px; }
.curvas-tabla a{ color:var(--rojo-claro); }
.curvas-subida{
  margin-top:14px; padding:18px; border:2px dashed var(--filete2); border-radius:var(--radio);
  transition:border-color .2s, background-color .2s;
}
.curvas-subida--encima{ border-color:var(--rojo); background:rgba(227,18,27,.08); }
.curvas-subida .curvas-form__acciones{ margin-top:0; }
.curvas-subida .curvas-form__acciones[hidden]{ display:none; }
.curvas-progreso{ display:block; width:100%; height:8px; margin-top:12px; accent-color:var(--rojo); }
.curvas-progreso[hidden]{ display:none; }
.curvas-fallos{ margin:10px 0 0; padding-left:18px; color:#FF8A8F; font-size:14px; }
.curvas-portadas{ display:grid; gap:6px; margin-top:12px; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); }
.curvas-portada{ padding:0; border:0; cursor:pointer; background:none; }
.curvas-portada img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.curvas-portada[aria-pressed="true"]{ outline:3px solid var(--rojo); outline-offset:-3px; }
.curvas-retiradas{ list-style:none; margin:0; padding:0; }
.curvas-retiradas li{
  display:grid; grid-template-columns:120px 1fr; gap:16px; padding:18px 0; border-top:1px solid var(--filete);
}
.curvas-retiradas img{ width:120px; height:auto; aspect-ratio:3/2; object-fit:cover; }
.curvas-retiradas p{ margin:4px 0 0; }
.curvas-mensaje{ white-space:pre-wrap; color:var(--blanco) !important; }
