/* Proyecto Black Shuck — GlassCristal: cristal ahumado y plata sobre la noche. */
:root{
  --negro:#050506;
  --blanco:#ffffff;
  --claro:#eceef2;
  --texto-c:#d5d9e0;
  --gris:#a3a9b3;
  --borde:rgba(255,255,255,.16);
  --borde-fuerte:rgba(255,255,255,.34);
  --radio:15px;
  --display:'Oswald',sans-serif;
  --texto:'Karla',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;background:var(--negro);color:var(--texto-c);
  font-family:var(--texto);line-height:1.6;
  -webkit-font-smoothing:antialiased;
  padding-top:88px;
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
a{color:inherit}
::selection{background:rgba(255,255,255,.28);color:var(--blanco)}
h1,h2,h3{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;margin:0;color:var(--blanco)}
img,iframe{max-width:100%}
section{position:relative;z-index:1}

/* ---------- fondo: auroras ---------- */
.fondo{position:fixed;inset:0;z-index:-1;background:var(--negro);overflow:hidden}
.fondo i{position:absolute;border-radius:50%;filter:blur(90px);background:rgba(255,255,255,.11)}
.fondo i:nth-child(1){width:52vw;height:52vw;top:-18vw;left:-14vw;animation:deriva1 34s ease-in-out infinite alternate}
.fondo i:nth-child(2){width:38vw;height:38vw;top:32%;right:-16vw;background:rgba(255,255,255,.08);animation:deriva2 41s ease-in-out infinite alternate}
.fondo i:nth-child(3){width:30vw;height:30vw;bottom:-12vw;left:22%;background:rgba(255,255,255,.09);animation:deriva3 29s ease-in-out infinite alternate}
.fondo i:nth-child(4){width:16vw;height:16vw;top:12%;left:56%;background:rgba(255,255,255,.06);animation:deriva2 23s ease-in-out infinite alternate-reverse}
@keyframes deriva1{to{transform:translate(9vw,11vh) scale(1.15)}}
@keyframes deriva2{to{transform:translate(-11vw,-7vh) scale(.9)}}
@keyframes deriva3{to{transform:translate(7vw,-9vh) scale(1.2)}}

/* la lumbre que sigue al cursor */
.lumbre{
  position:fixed;left:var(--lx,50vw);top:var(--ly,38vh);z-index:0;
  width:560px;height:560px;border-radius:50%;pointer-events:none;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(255,255,255,.07), transparent 62%);
}

/* ---------- cristal base ---------- */
.vidrio,
header.site, .cinta,
.manifiesto .nota, .pasos li, .grid-voces blockquote,
.cta-doble>div, .formulario form, .error, .tabla-scroll, .barra-adopta,
.wf-carta, .nivel, .panel-perro{
  background:linear-gradient(155deg, rgba(255,255,255,.10), rgba(255,255,255,.03) 55%);
  -webkit-backdrop-filter:blur(22px) saturate(1.25);
  backdrop-filter:blur(22px) saturate(1.25);
  border:1px solid var(--borde);
  border-radius:var(--radio);
  box-shadow:0 22px 60px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.22);
}

.btn{
  display:inline-block;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.14em;font-size:.85rem;font-weight:600;text-decoration:none;
  padding:14px 28px;border-radius:12px;cursor:pointer;
  color:var(--blanco);border:1px solid var(--borde-fuerte);
  background:linear-gradient(155deg, rgba(255,255,255,.14), rgba(255,255,255,.04));
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 10px 30px rgba(0,0,0,.4);
  transition:background .2s,color .2s,transform .2s,box-shadow .2s;
}
.btn:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 16px 40px rgba(0,0,0,.55), 0 0 30px rgba(255,255,255,.12)}
.btn-blanco{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.btn-blanco:hover{background:var(--claro)}
.btn-borde,.btn-negro{color:var(--blanco)}
.chip{
  display:inline-block;font-family:var(--display);text-transform:uppercase;
  font-size:.7rem;letter-spacing:.24em;padding:7px 14px;border-radius:8px;
  color:var(--blanco);border:1px solid var(--borde-fuerte);
  background:rgba(255,255,255,.08);text-decoration:none;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  animation:latido 2.6s ease-in-out infinite;
}
@keyframes latido{
  0%,100%{transform:scale(1)}
  6%{transform:scale(1.07)}12%{transform:scale(1)}
  18%{transform:scale(1.05)}24%{transform:scale(1)}
}
.eyebrow{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.5em;
  font-size:.85rem;margin:0;color:var(--gris);
}

/* ---------- cabecera ---------- */
header.site{
  position:fixed;top:14px;left:0;right:0;margin:0 auto;z-index:50;
  width:min(1100px, calc(100% - 28px));
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:10px 22px;flex-wrap:wrap;color:var(--blanco);
  transition:box-shadow .3s;
}
header.site.oscuro{box-shadow:0 22px 60px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.22), 0 0 40px rgba(255,255,255,.06)}
.marca{display:block;text-decoration:none;line-height:1.1}
.marca-pre{
  display:block;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.42em;font-size:.58rem;font-weight:300;color:var(--gris);
}
.marca-nombre{
  display:block;font-family:var(--display);text-transform:uppercase;
  font-size:1.2rem;font-weight:700;letter-spacing:.05em;color:var(--blanco);
}
header.site nav{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
header.site nav a{
  font-family:var(--display);text-transform:uppercase;font-size:.78rem;
  letter-spacing:.12em;text-decoration:none;font-weight:500;color:var(--claro);
}
header.site nav a:hover{color:var(--blanco);text-shadow:0 0 18px rgba(255,255,255,.6)}
.btn-nav{
  padding:9px 18px;border-radius:10px;background:var(--blanco);
  color:var(--negro) !important;border:1px solid var(--blanco);
  transition:transform .15s,box-shadow .15s;
}
.btn-nav:hover{transform:translateY(-1px);box-shadow:0 0 24px rgba(255,255,255,.35);text-shadow:none !important}
.btn-nav-2{
  background:rgba(255,255,255,.1);color:var(--blanco) !important;
  border:1px solid var(--borde-fuerte);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.hamb{display:none;background:none;border:0;cursor:pointer;padding:10px;z-index:80;position:relative}
.hamb span{display:block;width:24px;height:2px;background:var(--blanco);margin:5px 0;transition:transform .25s,opacity .25s}
.hamb.x span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamb.x span:nth-child(2){opacity:0}
.hamb.x span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:899px){
  .hamb{display:block}
  header.site nav{display:none}
  /* ventana desplegable colgando de la cabecera */
  body.menu-abierto header.site nav{
    display:flex;position:absolute;top:calc(100% + 10px);left:0;right:0;
    flex-direction:column;align-items:stretch;text-align:center;gap:6px;
    padding:18px;border-radius:var(--radio);
    background:rgba(10,10,12,.92);
    -webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);
    border:1px solid var(--borde);
    box-shadow:0 22px 60px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.18);
    animation:despliega .22s ease;
  }
  body.menu-abierto header.site nav a{padding:12px;font-size:.95rem;letter-spacing:.16em}
  body.menu-abierto header.site nav .btn-nav{margin-top:6px}
}
@keyframes despliega{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---------- hero ---------- */
.hero{position:relative;text-align:center;padding:96px 24px;overflow:hidden}
.hero-home{min-height:calc(100svh - 120px);display:flex;flex-direction:column;justify-content:center;align-items:center}
.hero-foto{
  position:absolute;inset:0;pointer-events:none;
  background:url("https://images.unsplash.com/photo-1477936432016-8172ed08637e?q=80&w=1800&auto=format&fit=crop") center 38%/cover no-repeat;
  filter:grayscale(1) contrast(1.05) brightness(.45);
}
.hero-foto::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(90% 80% at 50% 45%, transparent 40%, rgba(5,5,6,.92) 100%),
             linear-gradient(rgba(5,5,6,.3), rgba(5,5,6,.6));
}
.foto-candil{
  background-image:url("https://images.unsplash.com/photo-1602941953280-ea523175bcfc?q=80&w=1800&auto=format&fit=crop");
}
.hero-home>*{position:relative}
.hero h1{
  font-size:clamp(4rem,14vw,10.5rem);font-weight:700;line-height:.92;
  letter-spacing:.015em;color:var(--blanco);
}
.h1-pre{
  display:block;font-size:clamp(.72rem,1.4vw,.9rem);font-weight:300;
  letter-spacing:.62em;color:var(--claro);margin-bottom:18px;
}
.h1-grande{display:block}
.hero .lema{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.42em;
  font-size:.9rem;margin:30px 0 0;color:var(--claro);
}
.hero .sub{max-width:54ch;margin:18px auto 0;color:var(--gris)}
.hero-home .sub{color:#c4c9d2}
.hero-claim{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.26em;
  font-size:.78rem;color:var(--blanco);margin:20px 0 0;
}
.hero .acciones{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:34px 0 0}
.cue{
  position:absolute;bottom:22px;left:50%;translate:-50% 0;color:var(--claro);
  font-family:var(--display);font-size:1.4rem;animation:flota 1.8s ease-in-out infinite;
}
@keyframes flota{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}
@keyframes aparece{to{opacity:1}}

.ojos{display:flex;gap:22px;justify-content:center;margin-bottom:34px}
.ojos span{
  width:13px;height:13px;border-radius:50%;background:var(--blanco);
  box-shadow:0 0 22px rgba(255,255,255,.9), 0 0 60px rgba(255,255,255,.4);
  animation:parpadeo 6.5s ease-in-out 2s infinite;
}
@keyframes parpadeo{0%,91%,95%,100%{transform:scaleY(1)}93%{transform:scaleY(.06)}}
.polvo{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

.hero-perro{padding:120px 24px 72px}
.hero-perro h1{font-size:clamp(3rem,9vw,6.5rem)}
.hero-perro .chip{margin-bottom:20px;position:relative}
.hero-perro .sub{color:var(--gris);position:relative}
.hero-perro a{color:var(--blanco)}
.hero-candil h1,.hero-candil .chip,.hero-candil .sub{position:relative}

/* ---------- cinta ---------- */
.cinta{overflow:hidden;padding:15px 0;border-left:0;border-right:0;border-radius:0}
.cinta>div{display:flex;gap:44px;width:max-content;animation:cinta 26s linear infinite}
.cinta:hover>div{animation-play-state:paused}
.cinta span{
  font-family:var(--display);text-transform:uppercase;font-weight:700;
  font-size:1.35rem;letter-spacing:.08em;white-space:nowrap;color:var(--blanco);
}
.cinta .out{color:transparent;-webkit-text-stroke:1.3px rgba(255,255,255,.7)}
@keyframes cinta{to{transform:translateX(-50%)}}

/* ---------- cabeceras de sección ---------- */
.sec-head{text-align:center;margin-bottom:44px}
.sec-head .eyebrow{letter-spacing:.4em;font-size:.75rem}
.sec-head h2{font-size:clamp(2rem,5.5vw,3.6rem);font-weight:700;margin-top:10px}

/* ---------- manifiesto ---------- */
.manifiesto{max-width:900px;margin:0 auto;padding:88px 24px 64px;text-align:center}
.manifiesto blockquote{margin:0;padding:0}
.manifiesto blockquote p{
  font-family:var(--display);font-weight:600;text-transform:uppercase;
  font-size:clamp(1.5rem,4vw,2.5rem);line-height:1.25;margin:0 0 26px;
  text-wrap:balance;
  color:transparent;-webkit-text-stroke:1.3px rgba(255,255,255,.85);
  transition:color 1.1s ease;
}
.manifiesto.vis blockquote p:first-child{color:var(--blanco);transition-delay:.4s}
.manifiesto.vis blockquote p:nth-child(2){color:var(--blanco);transition-delay:1.1s}
.manifiesto cite{display:block;font-style:normal;font-size:.95rem;color:var(--gris);margin-top:10px}
.manifiesto cite a{color:var(--claro)}
.manifiesto .nota{margin:52px auto 0;max-width:66ch;color:var(--texto-c);padding:30px 32px;text-align:left}

/* ---------- linterna (visible al 50% fuera del haz) ---------- */
.foco-oscuro{
  position:relative;background:rgba(0,0,0,.45);color:var(--blanco);
  min-height:66vh;display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;padding:96px 24px;cursor:crosshair;
  border-top:1px solid var(--borde);border-bottom:1px solid var(--borde);
}
.fo-contenido{
  -webkit-mask-image:radial-gradient(circle 210px at var(--mx,50%) var(--my,45%), #000 40%, rgba(0,0,0,.5) 75%);
  mask-image:radial-gradient(circle 210px at var(--mx,50%) var(--my,45%), #000 40%, rgba(0,0,0,.5) 75%);
}
.fo-contenido h2{font-size:clamp(2.2rem,6.5vw,4.6rem);font-weight:700;margin:18px 0 26px}
.fo-nombres{
  font-family:var(--display);text-transform:uppercase;font-weight:600;
  font-size:clamp(1rem,2.6vw,1.5rem);letter-spacing:.12em;margin:0;
  color:transparent;-webkit-text-stroke:1.2px var(--blanco);
}
.fo-pista{
  position:absolute;bottom:24px;left:0;right:0;text-align:center;margin:0;
  font-family:var(--display);text-transform:uppercase;font-size:.72rem;
  letter-spacing:.3em;color:#8a8f98;
}

/* ---------- banda con foto (CTA a /perros) ---------- */
.banda{position:relative;overflow:hidden;text-align:center;padding:110px 24px;border-top:1px solid var(--borde);border-bottom:1px solid var(--borde)}
.banda-foto{
  position:absolute;inset:0;
  background:url("https://images.unsplash.com/photo-1553882809-a4f57e59501d?q=80&w=1800&auto=format&fit=crop") center 30%/cover no-repeat;
  filter:grayscale(1) contrast(1.05) brightness(.5);
}
.banda-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(5,5,6,.5), rgba(5,5,6,.72))}
.banda-contenido{position:relative;max-width:640px;margin:0 auto}
.banda-contenido h2{font-size:clamp(2rem,5.5vw,3.6rem);margin:12px 0 14px}
.banda-contenido p{color:#c4c9d2;margin:0 0 26px}

/* ---------- galería de perros (/perros): lista o cuadrícula ---------- */
.vista-conmutador{display:flex;gap:10px;justify-content:center;margin:0 0 26px}
.vc{animation:none;cursor:pointer;font-size:.72rem}
.chip.activo{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}

.galeria{
  display:grid;gap:26px;max-width:1120px;margin:0 auto;padding:0 24px 72px;
}
.carta-perro{overflow:hidden;display:flex;flex-direction:column;text-decoration:none;transition:transform .25s,box-shadow .25s}
.carta-perro:hover{transform:translateY(-6px);box-shadow:0 30px 80px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.26), 0 0 50px rgba(255,255,255,.08)}
.cp-foto{overflow:hidden;border-bottom:1px solid var(--borde)}
.cp-foto img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05);transition:transform .4s}
.carta-perro:hover .cp-foto img{transform:scale(1.05)}

/* cuadrícula: foto horizontal arriba */
.vista-cuadricula{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.vista-cuadricula .cp-foto{aspect-ratio:4/3}

/* lista: foto cuadrada a la izquierda, texto a la derecha */
.vista-lista{grid-template-columns:repeat(2,minmax(0,1fr))}
.vista-lista .carta-perro{flex-direction:row;align-items:stretch}
.vista-lista .cp-foto{width:42%;min-width:130px;aspect-ratio:1;border-bottom:0;border-right:1px solid var(--borde);flex-shrink:0}
.vista-lista .cp-cuerpo{padding:18px 20px;gap:6px;justify-content:center}
.vista-lista .cp-cuerpo h2{font-size:clamp(1.5rem,3vw,2rem)}
.vista-lista .cp-titulo{font-size:.9rem}
.vista-lista .btn{padding:9px 16px;font-size:.66rem;margin-top:6px}
@media (max-width:899px){
  .vista-lista{grid-template-columns:1fr}
}
.cp-cuerpo{padding:26px 26px 30px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.cp-cuerpo h2{font-size:clamp(2.2rem,5vw,3.2rem);line-height:1}
.cp-titulo{color:var(--texto-c);margin:0}
.cp-historia{color:var(--gris);margin:0}
.cp-prote{
  font-family:var(--display);text-transform:uppercase;font-size:.7rem;
  letter-spacing:.24em;color:var(--gris);margin:4px 0 10px;
}

/* ---------- relato: la historia del perro con scroll ---------- */
.relato{max-width:980px;margin:0 auto;padding:40px 24px 20px;display:grid;gap:34px}
.cap{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
.cap.par .cap-foto{order:2}
.cap-foto{overflow:hidden;padding:0}
.cap-foto img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05)}
.cap-num{
  font-family:var(--display);font-weight:700;font-size:2.4rem;line-height:1;
  color:transparent;-webkit-text-stroke:1.4px rgba(255,255,255,.7);display:block;margin-bottom:8px;
}
.cap-texto h3{font-size:clamp(1.5rem,3.4vw,2.1rem);margin-bottom:10px}
.cap-texto p{margin:0;color:var(--gris);font-size:1.05rem}
@media (max-width:719px){
  .cap{grid-template-columns:1fr}
  .cap.par .cap-foto{order:0}
}

/* ---------- línea de tiempo ---------- */
.tiempo{max-width:680px;margin:0 auto;padding:48px 24px 24px}
.tiempo ol{list-style:none;margin:0;padding:0;position:relative}
.tiempo ol::before{
  content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;
  background:linear-gradient(rgba(255,255,255,.35), rgba(255,255,255,.08));
}
.tiempo li{position:relative;padding:0 0 30px 44px}
.tiempo li:last-child{padding-bottom:0}
.tiempo li::before{
  content:"";position:absolute;left:1px;top:5px;width:14px;height:14px;border-radius:50%;
  background:var(--negro);border:2px solid var(--blanco);
  box-shadow:0 0 14px rgba(255,255,255,.45);
}
.tiempo .cuando{
  display:block;font-family:var(--display);text-transform:uppercase;
  font-weight:700;font-size:1.05rem;letter-spacing:.08em;color:var(--blanco);
}
.tiempo .que{color:var(--gris)}

/* ---------- foco en acción ---------- */
.foco{max-width:980px;margin:0 auto;padding:80px 24px}
.reels{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.reels iframe{
  width:100%;height:470px;border:1px solid var(--borde);border-radius:var(--radio);
  background:rgba(255,255,255,.04);box-shadow:0 22px 60px rgba(0,0,0,.55);
}
.micro{
  text-align:center;margin:26px auto 0;color:var(--gris);
  font-family:var(--display);text-transform:uppercase;font-size:.72rem;letter-spacing:.2em;
}
.micro a{color:var(--claro)}

/* ---------- pasos ---------- */
.pasos{max-width:880px;margin:0 auto;padding:80px 24px}
.pasos ol{list-style:none;counter-reset:paso;margin:0;padding:0;display:grid;gap:18px}
.pasos li{
  counter-increment:paso;display:grid;grid-template-columns:110px 1fr;gap:26px;
  align-items:center;padding:28px 32px;
}
.pasos li::before{
  content:counter(paso, decimal-leading-zero);
  font-family:var(--display);font-weight:700;font-size:3.8rem;line-height:1;
  color:transparent;-webkit-text-stroke:1.6px rgba(255,255,255,.75);
}
.pasos b{
  display:block;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.05em;font-weight:600;font-size:1.12rem;margin-bottom:4px;color:var(--blanco);
}
.pasos li div{color:var(--gris)}

/* ---------- voces ---------- */
.voces{padding:80px 24px}
.grid-voces{
  display:grid;gap:22px;max-width:1040px;margin:0 auto;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.grid-voces blockquote{
  margin:0;padding:28px 26px;display:flex;flex-direction:column;gap:16px;
  transition:transform .25s,box-shadow .25s;
}
.grid-voces blockquote:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 80px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.26), 0 0 50px rgba(255,255,255,.08);
}
.grid-voces blockquote::before{
  content:"“";font-family:var(--display);font-weight:700;font-size:3.2rem;
  line-height:.6;display:block;color:var(--blanco);
}
.grid-voces p{margin:0;font-size:1.02rem;color:var(--texto-c)}
.grid-voces cite{
  font-style:normal;margin-top:auto;color:var(--gris);
  font-family:var(--display);text-transform:uppercase;font-size:.72rem;letter-spacing:.18em;
}

/* ---------- candil (CTA donativos) ---------- */
.candil{max-width:760px;margin:0 auto;padding:80px 24px;text-align:center}
.candil-txt{max-width:56ch;margin:0 auto 28px;color:var(--gris)}
.candil-cta{margin:0}

/* ---------- niveles de padrino ---------- */
.niveles{max-width:1040px;margin:0 auto;padding:20px 24px 40px}
.grid-niveles{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.nivel{padding:34px 26px;text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center}
.nivel-precio{
  font-family:var(--display);font-weight:700;font-size:3rem;line-height:1;
  color:var(--blanco);margin:0;
}
.nivel-freq{
  font-family:var(--display);text-transform:uppercase;font-size:.72rem;
  letter-spacing:.24em;color:var(--gris);margin:0 0 16px;
}

/* ---------- cómo ayudar ---------- */
.ayudar{max-width:1040px;margin:0 auto;padding:80px 24px 40px}
.grid-ayudar{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.tarjeta-ayuda{
  padding:32px 28px;text-decoration:none;display:flex;flex-direction:column;gap:10px;
  transition:transform .25s,box-shadow .25s;
}
.tarjeta-ayuda:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 80px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.26), 0 0 50px rgba(255,255,255,.08);
}
.ta-num{
  font-family:var(--display);font-weight:700;font-size:2.2rem;line-height:1;
  color:transparent;-webkit-text-stroke:1.4px rgba(255,255,255,.7);
}
.tarjeta-ayuda h3{font-size:1.5rem}
.tarjeta-ayuda p{margin:0;color:var(--gris)}

/* ---------- quién hay detrás ---------- */
.detras{text-align:center;padding:88px 24px}
.arroba{
  display:inline-block;margin:22px 0 18px;text-decoration:none;line-height:1;
  font-family:var(--display);font-weight:700;
  font-size:clamp(2.2rem,8vw,5rem);letter-spacing:.02em;
  color:transparent;-webkit-text-stroke:2px var(--blanco);
  transition:color .2s;overflow-wrap:anywhere;
}
.arroba:hover{color:var(--blanco)}
.detras .bio{max-width:52ch;margin:0 auto;color:var(--gris)}

/* ---------- cta doble ---------- */
.cta-doble{
  display:grid;gap:24px;max-width:1040px;margin:0 auto;padding:20px 24px 88px;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
}
.cta-doble>div{padding:54px 32px;text-align:center;transition:transform .25s,box-shadow .25s}
.cta-doble>div:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 80px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.26), 0 0 50px rgba(255,255,255,.08);
}
.cta-doble h3{font-size:clamp(1.5rem,3.4vw,2rem);margin-bottom:14px}
.cta-doble p{max-width:44ch;margin:0 auto 26px;color:var(--gris)}

/* ---------- ficha de perro ---------- */
.ficha{max-width:980px;margin:0 auto;padding:48px 24px}
.ficha .historia{font-size:1.18rem;max-width:60ch;margin:0 auto 44px;text-align:center;color:var(--texto-c)}
.ficha .nota{color:var(--gris);max-width:62ch;margin:36px auto 0;text-align:center}
.ficha .nota a{color:var(--claro)}

/* ---------- wallform ---------- */
.wallform{max-width:720px;margin:0 auto;padding:48px 24px 110px}
.wf-progreso{
  height:4px;border-radius:4px;background:rgba(255,255,255,.12);
  overflow:hidden;margin-bottom:22px;
}
.wf-progreso i{display:block;height:100%;width:0;background:var(--blanco);transition:width .35s ease}
.wf-carta{position:relative;padding:44px 40px;min-height:300px}
.wf-carta.wf-entra{animation:wfentra .35s ease}
@keyframes wfentra{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.wf-carta h2{font-size:clamp(1.4rem,3.6vw,2.1rem);margin-bottom:14px;text-wrap:balance}
.wf-detalle{color:var(--gris);margin:0 0 22px}
.wf-num{
  font-family:var(--display);font-size:.72rem;letter-spacing:.24em;
  color:var(--gris);text-transform:uppercase;margin:0 0 10px;
}
.wf-atras{
  position:absolute;top:16px;right:18px;background:none;border:0;cursor:pointer;
  color:var(--gris);font-size:1.3rem;font-family:var(--display);
}
.wf-atras:hover{color:var(--blanco)}
.wf-ops{display:grid;gap:12px}
.wf-op{
  text-align:left;font-family:var(--texto);font-size:1.05rem;cursor:pointer;
  padding:15px 18px;border-radius:12px;color:var(--claro);
  border:1px solid var(--borde);background:rgba(255,255,255,.05);
  transition:background .15s,border-color .15s,transform .15s;
}
.wf-op:hover{background:rgba(255,255,255,.14);border-color:var(--borde-fuerte);transform:translateX(4px);color:var(--blanco)}
.wf-in{
  width:100%;font-family:var(--texto);font-size:1.1rem;padding:13px 16px;
  border:1px solid var(--borde);border-radius:10px;
  background:rgba(255,255,255,.06);color:var(--blanco);margin-bottom:14px;
}
.wf-in:focus{outline:none;border-color:var(--borde-fuerte);background:rgba(255,255,255,.1);box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.wf-botones{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.wf-salta{
  background:none;border:0;cursor:pointer;color:var(--gris);
  font-family:var(--display);text-transform:uppercase;font-size:.75rem;letter-spacing:.18em;
}
.wf-salta:hover{color:var(--blanco)}
.wf-err{color:var(--blanco);background:rgba(255,255,255,.1);border:1px solid var(--borde-fuerte);border-radius:10px;padding:8px 12px;margin:0 0 14px}
.wf-resumen{
  list-style:none;margin:0 0 24px;padding:0;display:grid;gap:8px;max-height:300px;
  overflow-y:auto;text-align:left;
}
.wf-resumen li{font-size:.92rem;color:var(--gris);border-bottom:1px solid var(--borde);padding-bottom:8px}
.wf-resumen b{color:var(--claro);display:block;font-size:.8rem}
.wf-ayuda{
  text-align:center;margin:14px 0 0;color:#7a7f88;
  font-family:var(--display);text-transform:uppercase;font-size:.68rem;letter-spacing:.24em;
}

/* ---------- formularios clásicos (apadrina, login) ---------- */
.formulario{max-width:640px;margin:0 auto;padding:32px 24px 96px}
.formulario form{display:grid;gap:22px;padding:36px 32px}
.formulario label{
  display:grid;gap:8px;font-family:var(--display);text-transform:uppercase;
  font-size:.74rem;letter-spacing:.18em;font-weight:600;color:var(--claro);
}
.formulario input,.formulario select,.formulario textarea{
  font-family:var(--texto);font-size:1.02rem;padding:12px 14px;
  border:1px solid var(--borde);border-radius:10px;
  background:rgba(255,255,255,.06);color:var(--blanco);
}
.formulario select option{background:var(--negro);color:var(--blanco)}
.formulario input:focus,.formulario select:focus,.formulario textarea:focus{
  outline:none;border-color:var(--borde-fuerte);background:rgba(255,255,255,.1);
  box-shadow:0 0 0 3px rgba(255,255,255,.12);
}
.formulario button{justify-self:stretch;font-size:.95rem;padding:15px;background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.error{border-radius:12px;padding:14px 18px;font-weight:600;text-align:center;color:var(--blanco);border-color:var(--borde-fuerte);max-width:640px;margin:0 auto 20px}
.hp{position:absolute;left:-5000px;height:0;width:0;overflow:hidden}

/* ---------- panel / dashboard ---------- */
.panel{max-width:1180px;margin:0 auto;padding:32px 24px 96px}
.panel-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.panel-cab h1{font-size:clamp(1.8rem,4vw,2.6rem);margin-top:6px}
.panel-acciones{display:flex;gap:10px;margin:0;flex-wrap:wrap}
.panel-sub{font-size:1.15rem;margin:0 0 18px}
.bloque{padding:26px 28px;margin-bottom:22px}
.dos-col{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}

/* métricas */
.kpis{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:22px}
.kpi{padding:24px 22px;display:flex;flex-direction:column;gap:4px}
.kpi-n{font-family:var(--display);font-weight:700;font-size:2.8rem;line-height:1;color:var(--blanco)}
.kpi-t{font-family:var(--display);text-transform:uppercase;font-size:.68rem;letter-spacing:.2em;color:var(--gris)}
.kpi.destaca{background:linear-gradient(155deg, rgba(255,255,255,.22), rgba(255,255,255,.08) 55%)}

/* gráfico de barras */
.grafico{display:flex;align-items:flex-end;gap:6px;height:150px}
.barra{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%}
.barra-v{
  display:block;width:100%;min-height:2px;border-radius:6px 6px 0 0;
  background:linear-gradient(rgba(255,255,255,.9), rgba(255,255,255,.35));
  transition:height .4s ease;
}
.barra-n{font-family:var(--display);font-size:.7rem;color:var(--blanco);height:14px}
.barra-d{font-family:var(--display);font-size:.62rem;color:var(--gris);letter-spacing:.06em}

/* barras horizontales */
.barras-h{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.barras-h li{display:grid;grid-template-columns:130px 1fr 34px;gap:12px;align-items:center}
.bh-t{font-family:var(--display);text-transform:uppercase;font-size:.7rem;letter-spacing:.14em;color:var(--claro)}
.bh-p{height:8px;border-radius:8px;background:rgba(255,255,255,.1);overflow:hidden}
.bh-p i{display:block;height:100%;background:var(--blanco);border-radius:8px;min-width:2px}
.bh-n{font-family:var(--display);font-weight:600;text-align:right;color:var(--blanco)}

/* perros */
.panel-perros{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.panel-perro{
  display:flex;gap:12px;align-items:center;padding:12px 14px;
  border:1px solid var(--borde);border-radius:12px;background:rgba(255,255,255,.05);
}
.panel-perro img{width:52px;height:52px;object-fit:cover;border-radius:10px;filter:grayscale(1)}
.pp-datos{display:flex;flex-direction:column;flex:1;min-width:0}
.panel-perro b{font-family:var(--display);text-transform:uppercase;color:var(--blanco)}
.pp-sol{font-size:.75rem;color:var(--gris)}
.panel-perro select,.panel select,.panel input[type=search]{
  font-family:var(--texto);padding:9px 11px;border-radius:10px;
  border:1px solid var(--borde);background:rgba(255,255,255,.06);color:var(--blanco);
}
.panel select option{background:var(--negro)}
.panel input[type=search]{flex:1 1 220px}
.panel .btn{padding:9px 16px;font-size:.7rem}

/* salud del sitio */
.salud{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.salud li{padding-left:26px;position:relative}
.salud li::before{position:absolute;left:0;top:0;font-size:1rem}
.salud .ok::before{content:"✓";color:#fff}
.salud .aviso::before{content:"!";font-weight:700;color:#fff}
.salud b{display:block;font-family:var(--display);text-transform:uppercase;font-size:.85rem;letter-spacing:.06em;color:var(--blanco)}
.salud span{color:var(--gris);font-size:.9rem}

/* filtros */
.panel-filtros{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px;align-items:center}

/* fichas de solicitud */
.fichas-sol{display:grid;gap:10px}
.sol{border:1px solid var(--borde);border-radius:12px;background:rgba(255,255,255,.04);overflow:hidden}
.sol summary{
  cursor:pointer;list-style:none;padding:14px 16px;
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;
}
.sol summary::-webkit-details-marker{display:none}
.sol-id{font-family:var(--display);font-size:.72rem;color:var(--gris)}
.sol-nombre{font-family:var(--display);text-transform:uppercase;font-weight:600;color:var(--blanco);letter-spacing:.04em}
.sol .chip{animation:none;font-size:.62rem;padding:5px 10px}
.sol-perro{font-size:.78rem;color:var(--claro)}
.sol-fecha{margin-left:auto;font-size:.75rem;color:var(--gris);font-variant-numeric:tabular-nums}
.sol.estado-nueva{border-left:3px solid var(--blanco)}
.sol.estado-aceptada{border-left:3px solid rgba(255,255,255,.55)}
.sol.estado-descartada{opacity:.6}
.sol-cuerpo{padding:0 16px 18px;display:grid;gap:14px}
.sol-contacto a{color:var(--claro)}
.sol-mensaje{margin:0;color:var(--texto-c);white-space:pre-line}
.sol-datos{margin:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.sol-datos div{border-top:1px solid var(--borde);padding-top:7px}
.sol-datos dt{font-family:var(--display);text-transform:uppercase;font-size:.62rem;letter-spacing:.16em;color:var(--gris)}
.sol-datos dd{margin:2px 0 0;color:var(--texto-c);font-size:.92rem}
.sol-acciones{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--borde);padding-top:14px}

.tabla-scroll{overflow-x:auto;padding:16px}
table{border-collapse:collapse;width:100%;font-size:.88rem;color:var(--texto-c)}
th,td{border:1px solid var(--borde);padding:8px 10px;text-align:left;vertical-align:top;min-width:90px}
th{font-family:var(--display);text-transform:uppercase;font-size:.68rem;letter-spacing:.12em;color:var(--blanco)}

/* ---------- pie ---------- */
footer.site{
  position:relative;z-index:1;text-align:center;color:var(--texto-c);
  padding:64px 24px 52px;border-top:1px solid var(--borde);
}
.guau{
  display:inline-block;text-decoration:none;line-height:.9;
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(3.6rem,13vw,8.5rem);
  color:transparent;-webkit-text-stroke:2.5px var(--blanco);
  transition:color .2s;
}
.guau:hover{color:var(--blanco)}
footer.site .lema{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.4em;
  font-size:.8rem;margin:22px 0 20px;color:var(--claro);
}
footer.site a{color:var(--claro)}
footer.site p{margin:6px 0}

/* ---------- migas de pan ---------- */
.migas{
  max-width:1100px;margin:0 auto;padding:14px 24px 0;
  font-family:var(--display);text-transform:uppercase;font-size:.68rem;
  letter-spacing:.18em;color:var(--gris);position:relative;z-index:1;
}
.migas a{text-decoration:none;color:var(--gris)}
.migas a:hover{color:var(--blanco)}
.migas span{color:var(--claro)}

/* ---------- preguntas frecuentes ---------- */
.faq{max-width:760px;margin:0 auto;padding:80px 24px 40px}
.faq-lista{display:grid;gap:14px}
.faq details{padding:0;overflow:hidden}
.faq summary{
  cursor:pointer;list-style:none;padding:20px 24px;
  font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;
  font-weight:600;font-size:1.02rem;color:var(--blanco);
  display:flex;justify-content:space-between;align-items:center;gap:14px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;font-weight:500;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0;padding:0 24px 22px;color:var(--gris)}
.faq details a{color:var(--claro)}

/* ---------- otros perros ---------- */
.otros-perros{max-width:760px;margin:0 auto;padding:24px 24px 80px;text-align:center}
.otros-lista{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:0}

/* ---------- páginas legales ---------- */
.legal{max-width:720px;margin:0 auto;padding:48px 24px 96px}
.legal h2{font-size:1.35rem;margin:36px 0 12px}
.legal h3{font-size:1.05rem;margin:22px 0 8px;color:var(--claro)}
.legal p,.legal li{color:var(--gris)}
.legal ul{padding-left:20px;display:grid;gap:10px;margin:12px 0}
.legal a{color:var(--claro)}
.legal b{color:var(--claro)}
.legal-fecha{margin-top:40px;font-family:var(--display);text-transform:uppercase;font-size:.7rem;letter-spacing:.2em}
.legal-enlaces{font-size:.85rem}
.legal-enlaces a{color:var(--gris)}

/* ---------- banner de cookies ---------- */
.galleta{
  position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:66;
  width:min(680px, calc(100% - 28px));
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:18px 22px;border-radius:var(--radio);
  background:rgba(10,10,12,.94);
  -webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);
  border:1px solid var(--borde);
  box-shadow:0 22px 60px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.18);
}
.galleta[hidden]{display:none !important}
.galleta p{margin:0;font-size:.9rem;color:var(--texto-c);flex:1 1 300px}
.galleta a{color:var(--claro)}
.galleta-botones{display:flex;gap:10px;flex-wrap:wrap}
.galleta .btn{padding:10px 18px;font-size:.72rem}

/* ---------- vídeos de Instagram con carga diferida ---------- */
.ig-caja{position:relative;height:470px}
.ig-caja iframe{height:100%}
.ig-carga{
  position:absolute;inset:0;width:100%;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;
  font-size:.85rem;font-weight:600;color:var(--blanco);
  background:linear-gradient(155deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  border:1px solid var(--borde);border-radius:var(--radio);
  transition:background .2s;
}
.ig-carga:hover{background:rgba(255,255,255,.14)}
.ig-carga small{
  font-family:var(--texto);text-transform:none;letter-spacing:0;
  font-weight:400;color:var(--gris);font-size:.78rem;
}
.ig-caja.cargado .ig-carga{display:none}

/* ---------- huella del perro invisible: capa del fondo, nunca sobre el contenido ---------- */
.huella{
  position:fixed;width:27px;z-index:-1;pointer-events:none;
  opacity:0;transition:opacity .5s ease;
  filter:drop-shadow(0 0 8px rgba(255,255,255,.4));
}
.huella svg{display:block;width:100%;height:auto}
.huella svg *{fill:#fff}
.huella.on{opacity:var(--op,.3)}

/* ---------- telón ---------- */
.velo{
  position:fixed;inset:0;background:var(--negro);z-index:70;
  opacity:0;pointer-events:none;transition:opacity .24s ease;
}
.velo.on{opacity:1;pointer-events:auto}

/* ---------- barra fija de adopción ---------- */
.barra-adopta{
  position:fixed;left:50%;transform:translate(-50%,140%);bottom:14px;z-index:45;
  display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;
  padding:12px 22px;color:var(--blanco);
  width:max-content;max-width:calc(100% - 28px);
  transition:transform .35s ease;
}
.barra-adopta.on{transform:translate(-50%,0)}
.barra-adopta span{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;
  font-weight:600;font-size:.88rem;
}
.barra-adopta .btn{padding:10px 20px;font-size:.72rem}

/* ---------- revelados ---------- */
html.anima .rev{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
html.anima .rev.vis{opacity:1;transform:none}

@media (max-width:719px){
  .pasos li{grid-template-columns:64px 1fr;gap:16px;padding:22px 20px}
  .pasos li::before{font-size:2.4rem}
  .wf-carta{padding:32px 22px}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  html.anima .rev{opacity:1;transform:none}
  .cinta>div{transform:none}
  .fo-contenido{-webkit-mask-image:none!important;mask-image:none!important}
  .manifiesto blockquote p{color:var(--blanco)}
  .huella{display:none}
  .fo-pista{display:none}
  .lumbre{display:none}
}

/* ---------- admin: navegación lateral tipo escritorio ---------- */
.admin{
  display:grid;grid-template-columns:210px 1fr;gap:26px;
  max-width:1240px;margin:0 auto;padding:24px 24px 96px;
}
.admin-nav{position:sticky;top:104px;align-self:start}
.admin-nav .eyebrow{margin-bottom:14px;font-size:.66rem}
.admin-nav nav{display:grid;gap:2px}
.admin-nav a{
  display:block;padding:11px 14px;border-radius:10px;text-decoration:none;
  font-family:var(--display);text-transform:uppercase;font-size:.74rem;
  letter-spacing:.12em;color:var(--claro);
  border:1px solid transparent;transition:background .15s,border-color .15s;
}
.admin-nav a:hover{background:rgba(255,255,255,.08);color:var(--blanco)}
.admin-nav a.activo{
  background:rgba(255,255,255,.12);border-color:var(--borde);color:var(--blanco);
}
.admin-cuerpo{min-width:0}
.admin-cab{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:24px}
.admin-cab h1{font-size:clamp(1.6rem,3.4vw,2.3rem)}
.aviso-ok{
  border:1px solid var(--borde-fuerte);border-radius:12px;padding:12px 16px;
  background:rgba(255,255,255,.1);color:var(--blanco);margin:0 0 20px;
}

/* lista de perros del admin */
.lista-admin{display:grid;gap:12px}
.fila-admin{display:flex;gap:16px;align-items:center;padding:14px 16px;flex-wrap:wrap}
.fila-admin img{width:64px;height:64px;object-fit:cover;border-radius:10px;filter:grayscale(1)}
.fa-datos{flex:1;min-width:200px;display:flex;flex-direction:column;gap:4px}
.fa-datos b{font-family:var(--display);text-transform:uppercase;font-size:1.1rem;color:var(--blanco)}
.fa-meta{font-size:.8rem;color:var(--gris);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fa-meta .chip{animation:none;font-size:.6rem;padding:4px 9px}
.fa-slug{font-family:var(--display);font-size:.68rem;letter-spacing:.12em;color:var(--gris)}
.fa-acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fa-acciones form{margin:0}
.btn-peligro{border-color:rgba(255,255,255,.5)}
.btn-peligro:hover{background:var(--blanco);color:var(--negro)}

/* formularios del admin */
.admin-form{display:grid;gap:20px}
.admin-form fieldset{border:1px solid var(--borde);border-radius:var(--radio);padding:22px 24px;margin:0}
.admin-form legend{
  font-family:var(--display);text-transform:uppercase;font-size:.72rem;
  letter-spacing:.18em;color:var(--blanco);padding:0 8px;
}
.admin-form label{
  display:grid;gap:6px;margin-bottom:14px;
  font-family:var(--display);text-transform:uppercase;font-size:.68rem;
  letter-spacing:.14em;color:var(--claro);
}
.admin-form input,.admin-form textarea,.admin-form select{
  font-family:var(--texto);font-size:.98rem;padding:11px 13px;
  border:1px solid var(--borde);border-radius:10px;
  background:rgba(255,255,255,.06);color:var(--blanco);width:100%;
}
.admin-form textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem;line-height:1.5}
.admin-form select option{background:var(--negro)}
.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus{
  outline:none;border-color:var(--borde-fuerte);background:rgba(255,255,255,.1);
  box-shadow:0 0 0 3px rgba(255,255,255,.12);
}
.ff-2{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.ff-ayuda{color:var(--gris);font-size:.85rem;margin:0 0 14px}
.ff-ayuda code{background:rgba(255,255,255,.1);padding:2px 6px;border-radius:6px;font-size:.85em}
.ff-previa{width:160px;height:110px;object-fit:cover;border-radius:10px;filter:grayscale(1);margin-bottom:14px}
.ff-checks{display:flex;gap:20px;flex-wrap:wrap}
.ff-check{display:flex;flex-direction:row;align-items:center;gap:9px;text-transform:none;font-size:.9rem;letter-spacing:0;font-family:var(--texto);color:var(--texto-c)}
.ff-check input{width:auto}
.ff-guardar{display:flex;gap:12px;flex-wrap:wrap;margin:0}

@media (max-width:899px){
  .admin{grid-template-columns:1fr;gap:18px}
  .admin-nav{position:static}
  .admin-nav nav{display:flex;gap:8px;flex-wrap:wrap}
}

/* ---------- barra propia del panel (sin la web pública) ---------- */
body.es-admin{padding-top:0}
.admin-barra{
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  flex-wrap:wrap;padding:14px 24px;border-bottom:1px solid var(--borde);
  background:rgba(10,10,12,.85);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  position:sticky;top:0;z-index:50;
}
.admin-barra .marca{text-decoration:none}
.admin-yo{
  display:flex;gap:16px;align-items:center;margin:0;flex-wrap:wrap;
  font-family:var(--display);text-transform:uppercase;font-size:.72rem;
  letter-spacing:.14em;color:var(--gris);
}
.admin-yo a{color:var(--claro);text-decoration:none}
.admin-yo a:hover{color:var(--blanco);text-decoration:underline;text-underline-offset:4px}
.admin-entrar{max-width:420px;margin:0 auto;padding:80px 24px}
.admin-entrar .vidrio{padding:36px 32px}
.admin-entrar h1{font-size:2.2rem;margin:8px 0 22px}
.admin-entrar .admin-form{gap:6px}
.admin-entrar button{margin-top:10px;width:100%}
.fa-acciones input[type=password]{
  font-family:var(--texto);font-size:.9rem;padding:9px 12px;width:170px;
  border:1px solid var(--borde);border-radius:10px;
  background:rgba(255,255,255,.06);color:var(--blanco);
}
.fa-acciones form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ---------- biblioteca de fotos ---------- */
.medios{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin-top:20px}
.medio{margin:0;overflow:hidden;display:flex;flex-direction:column}
.medio img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.medio figcaption{padding:12px 14px;display:grid;gap:8px}
.medio-n{font-size:.78rem;color:var(--claro);word-break:break-all}
.medio-kb{font-family:var(--display);font-size:.66rem;letter-spacing:.14em;color:var(--gris)}
.medio input{
  font-family:ui-monospace,Menlo,monospace;font-size:.72rem;padding:7px 9px;
  border:1px solid var(--borde);border-radius:8px;
  background:rgba(255,255,255,.06);color:var(--claro);width:100%;
}
.medio .btn{padding:7px 12px;font-size:.64rem;justify-self:start}
.tit-pagina{
  font-family:var(--display);text-transform:uppercase;font-size:1rem;letter-spacing:.04em;
  padding:8px 10px;border:1px solid var(--borde);border-radius:8px;
  background:rgba(255,255,255,.06);color:var(--blanco);width:100%;max-width:340px;
}
.admin-form input[type=file]{padding:10px;background:rgba(255,255,255,.06)}

/* ---------- constructor de perros ---------- */
.fotocampo{
  display:grid;gap:10px;margin-bottom:16px;
  border:1px dashed var(--borde);border-radius:12px;padding:12px;
}
.fc-previa{width:100%;max-width:220px;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.fc-botones{display:flex;gap:8px;flex-wrap:wrap}
.fc-botones .btn{padding:8px 14px;font-size:.66rem}
.fc-url{font-size:.82rem !important}
.bloques{display:grid;gap:14px;margin-bottom:14px}
.bloque-cap{border:1px solid var(--borde);border-radius:12px;padding:14px 16px;background:rgba(255,255,255,.04)}
.bc-cab{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.bc-n{font-family:var(--display);text-transform:uppercase;font-size:.72rem;letter-spacing:.16em;color:var(--gris)}
.bc-acciones{display:flex;gap:6px}
.bc-acciones .btn{padding:6px 12px;font-size:.64rem}
.bc-cuerpo{display:grid;gap:16px;grid-template-columns:240px 1fr;align-items:start}
.bc-textos label{margin-bottom:10px}
.bloque-hito{
  display:grid;gap:10px;grid-template-columns:130px 1fr auto;align-items:center;
  border:1px solid var(--borde);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.04);
}
@media (max-width:719px){
  .bc-cuerpo{grid-template-columns:1fr}
  .bloque-hito{grid-template-columns:1fr}
}
#biblioteca{
  border:1px solid var(--borde);border-radius:var(--radio);padding:22px;
  width:min(900px,92vw);max-height:82vh;background:var(--fondo-admin,#fff);color:inherit;
}
#biblioteca::backdrop{background:rgba(0,0,0,.6)}
.bib-cab{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}
.bib-rejilla{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));overflow-y:auto;max-height:62vh}
.bib-foto{
  border:1px solid var(--borde);border-radius:10px;overflow:hidden;padding:0;
  background:none;cursor:pointer;display:grid;
}
.bib-foto img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.bib-foto span{font-size:.68rem;padding:6px;color:var(--gris)}
.bib-foto:hover{border-color:var(--borde-fuerte)}

/* ---------- panel en claro (más cómodo para editar) ---------- */
body.es-admin{
  --superficie:#ffffff;     /* fondo de las tarjetas */
  --fondo-admin:#f4f5f7;
  --tinta:#15171b;
  --negro:#15171b;
  --blanco:#15171b;         /* el token "blanco" se usa para TEXTO: aquí es tinta */
  --claro:#3c414a;
  --texto-c:#23262b;
  --gris:#646b76;
  --borde:rgba(20,22,28,.14);
  --borde-fuerte:rgba(20,22,28,.34);
  background:var(--fondo-admin);
  color:var(--texto-c);
}
body.es-admin::after{display:none}
body.es-admin .fondo,body.es-admin .lumbre,body.es-admin .huella{display:none}

/* superficies */
body.es-admin .vidrio,
body.es-admin .bloque,body.es-admin .kpi,body.es-admin .fila-admin,
body.es-admin .panel-perro,body.es-admin .medio,body.es-admin .sol,
body.es-admin .admin-form fieldset,body.es-admin #biblioteca,
body.es-admin .admin-barra{
  background:var(--superficie);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  border:1px solid var(--borde);
  box-shadow:0 2px 10px rgba(20,22,28,.06);
}
body.es-admin .admin-barra{border-width:0 0 1px 0;border-radius:0;box-shadow:none}
body.es-admin .bloque-cap,body.es-admin .bloque-hito,
body.es-admin .fotocampo{background:#fafbfc}

/* textos */
body.es-admin h1,body.es-admin h2,body.es-admin h3,
body.es-admin .admin-form legend,body.es-admin .fa-datos b,
body.es-admin .sol-nombre,body.es-admin .kpi-n,body.es-admin .bh-n,
body.es-admin .barra-n,body.es-admin .medio-n,body.es-admin .salud b,
body.es-admin .panel-perro b,body.es-admin .sol-datos dd{color:var(--tinta)}
body.es-admin .eyebrow,body.es-admin .micro,body.es-admin .ff-ayuda,
body.es-admin .fa-meta,body.es-admin .fa-slug,body.es-admin .bc-n,
body.es-admin .medio-kb,body.es-admin .sol-fecha,body.es-admin .sol-id,
body.es-admin .kpi-t,body.es-admin .bh-t,body.es-admin .barra-d,
body.es-admin .salud span,body.es-admin .sol-datos dt{color:var(--gris)}
body.es-admin a{color:var(--tinta)}
body.es-admin .admin-yo{color:var(--gris)}
body.es-admin .admin-yo a{color:var(--claro)}
body.es-admin .marca-nombre{color:var(--tinta)}
body.es-admin .ff-ayuda code{background:#eef0f3;color:var(--tinta)}

/* botones */
body.es-admin .btn{
  background:var(--superficie);color:var(--tinta);
  border:1px solid var(--borde-fuerte);box-shadow:none;
}
body.es-admin .btn:hover{background:#eceef1;transform:none;box-shadow:none}
body.es-admin .btn-blanco{background:var(--tinta);color:#fff;border-color:var(--tinta)}
body.es-admin .btn-blanco:hover{background:#2b2f36;color:#fff}
body.es-admin .btn-peligro{color:#a3261c;border-color:rgba(163,38,28,.4);background:var(--superficie)}
body.es-admin .btn-peligro:hover{background:#a3261c;color:#fff;border-color:#a3261c}
body.es-admin .chip{background:#eef0f3;color:var(--tinta);border-color:var(--borde);animation:none}

/* formularios */
body.es-admin input,body.es-admin textarea,body.es-admin select{
  background:var(--superficie) !important;color:var(--tinta) !important;
  border:1px solid var(--borde) !important;
}
body.es-admin input:focus,body.es-admin textarea:focus,body.es-admin select:focus{
  border-color:var(--tinta) !important;box-shadow:0 0 0 3px rgba(20,22,28,.1) !important;
}
body.es-admin select option{background:#fff;color:var(--tinta)}
body.es-admin .admin-form label,body.es-admin .ff-check{color:var(--claro)}

/* navegación */
body.es-admin .admin-nav a{color:var(--claro)}
body.es-admin .admin-nav a:hover{background:#e9ebee;color:var(--tinta)}
body.es-admin .admin-nav a.activo{background:var(--tinta);color:#fff;border-color:var(--tinta)}

/* datos */
body.es-admin .kpi.destaca{background:var(--tinta)}
body.es-admin .kpi.destaca .kpi-n{color:#fff}
body.es-admin .kpi.destaca .kpi-t{color:#c9ccd2}
body.es-admin .barra-v{background:linear-gradient(var(--tinta),#5a616c)}
body.es-admin .bh-p{background:#e4e7ea}
body.es-admin .bh-p i{background:var(--tinta)}
body.es-admin .sol.estado-nueva{border-left:3px solid var(--tinta)}
body.es-admin .salud .ok::before,body.es-admin .salud .aviso::before{color:var(--tinta)}
body.es-admin table{color:var(--texto-c)}
body.es-admin th{color:var(--tinta)}

/* avisos */
body.es-admin .aviso-ok{background:#e8f2ea;border-color:#9ec5a8;color:#1f4a2c}
body.es-admin .error{background:#fdecea;border-color:#e0a49c;color:#8a2318;box-shadow:none}
body.es-admin ::selection{background:rgba(20,22,28,.18);color:var(--tinta)}
