/* ─────────────────────────────────────────────────────────────────────────
   EMPIRE BEARD BARBER SHOP · La Serena — arquetipo 18 «Sello Imperial»
   Sistema visual compartido por las 7 páginas. Negro + azul cobalto + plata:
   la paleta REAL del logo de Empire Beard (5-sep-2026, _ref/logo-referencia.md):
   damasco azul sobre negro, filetes de plata, acentos en azul eléctrico. Display en versales romanas (Cinzel), cuerpo en sans del
   sistema. Nada figurativo dibujado a código: la única pieza «gráfica» es
   un sello TIPOGRÁFICO (texto en anillo que gira en bucle, idle, no sigue
   el cursor) y filetes geométricos.
   ───────────────────────────────────────────────────────────────────────── */

:root{
  --negro-0:#0B0B0F;          /* fondo profundo: el negro del logo */
  --negro-1:#12131B;          /* paneles */
  --negro-2:#1B1D2A;          /* bordes / hover */
  --negro-3:#1C2557;          /* azul noche para los resplandores de fondo */
  --azul:#2A55E8;             /* cobalto: rellenos, damasco, botón lleno (texto plata encima, 5,9:1) */
  --azul-2:#4A70FF;           /* azul eléctrico claro: rótulos, cifras, enlaces (4,8:1 sobre negro-0) */
  --azul-3:#1F3FFF;           /* eléctrico profundo: trazos del damasco y grabado del emblema */
  --azul-pal:rgba(42,85,232,.16);
  --plata:#E8E8EE;            /* texto principal y filetes (el blanco-plata del logo) */
  --plata-2:#B9BCC9;          /* texto secundario: 10,6:1 sobre negro-0 */
  --plata-3:#8B8E9E;          /* pies de foto: 6,1:1 sobre negro-0 */
  --wa:#25d366;               /* verde WhatsApp (marca de WhatsApp, no de la paleta); el texto va oscuro encima (9,3:1) */
  --wa-2:#1ebe5b;
  --linea:rgba(232,232,238,.16);
  --linea-2:rgba(232,232,238,.42);
  --sombra:0 18px 50px rgba(0,0,0,.55);
  --display:'Cinzel','Trajan Pro','Cormorant SC',Georgia,'Times New Roman',serif;
  --texto:'Segoe UI',system-ui,-apple-system,Roboto,'Helvetica Neue',Arial,sans-serif;
  --paso:.28s cubic-bezier(.2,.7,.2,1);
  --radio:4px;
  --ancho:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--negro-0);color:var(--plata);
  font-family:var(--texto);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(ellipse at 15% 0%, rgba(42,85,232,.13), transparent 55%),
    radial-gradient(ellipse at 90% 100%, rgba(28,37,87,.6), transparent 60%);
  background-attachment:fixed;
}
/* height:auto es obligatorio: los <img> llevan width/height como atributos (para
   que el navegador conozca el alto antes de cargar) y sin esto el alto queda
   CLAVADO en píxeles cuando el CSS pisa el ancho. Se vio en servicios: un retrato
   de 1352 px de alto. */
img{max-width:100%;height:auto;display:block}
a{color:var(--azul-2);text-decoration:none}
a:hover{color:var(--plata)}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;letter-spacing:.04em;line-height:1.1;margin:0 0 .6em;color:var(--plata)}
h1{font-size:clamp(2.2rem,5.2vw,4.4rem);font-weight:900;letter-spacing:.02em}
h2{font-size:clamp(1.65rem,3.2vw,2.6rem)}
h3{font-size:1.15rem;letter-spacing:.08em}
p{margin:0 0 1em}
.mudo{color:var(--plata-2)}
.chico{font-size:.92rem}
.azul{color:var(--azul-2)}
.env{width:min(var(--ancho),calc(100% - 2.5rem));margin:0 auto}
:focus-visible{outline:2px solid var(--azul-2);outline-offset:3px}
::selection{background:var(--azul);color:var(--plata)}

/* ───────── rótulos con numeral romano ───────── */
.numeral{
  font-family:var(--display);font-size:.8rem;letter-spacing:.32em;color:var(--azul-2);
  display:inline-flex;align-items:center;gap:.9rem;margin-bottom:1rem;text-transform:uppercase;
}
.numeral::before{content:"";width:34px;height:1px;background:var(--plata-2);opacity:.75}
.numeral::after{content:"";width:34px;height:1px;background:var(--plata-2);opacity:.3}

/* ───────── filetes geométricos ───────── */
.filete{height:1px;background:linear-gradient(90deg,transparent,var(--plata-2) 20%,var(--plata-2) 80%,transparent);opacity:.5;margin:0 auto;max-width:520px}
.filete--doble{height:5px;border-top:1px solid var(--linea-2);border-bottom:1px solid var(--linea-2);background:none;opacity:1;max-width:none}

/* ───────── barra superior ───────── */
.barra{
  position:sticky;top:0;z-index:40;
  background:rgba(11,11,15,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--linea);
}
.barra .env{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:70px;padding:.4rem 0}
/* la marca es el emblema real de Empire Beard (img/marca.webp): la imagen que generó Benja en Gemini el 5-sep-2026
   a partir de su logo (óvalo con filigrana barroca, rey barbado coronado, EMPIRE · BEARD, «El imperio de la barba»),
   recortada al óvalo con fondo transparente. Fuente: _ref/logo-gemini-benja-2026-09-05.png */
.marca{display:inline-flex;align-items:center;color:var(--plata)}
.marca img{width:240px;height:auto;display:block}
.marca--pie img{width:260px}
@media (max-width:520px){.marca img{width:168px}}
.menu{display:flex;gap:1.6rem;list-style:none;margin:0;padding:0}
.menu a{font-family:var(--display);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plata-2);position:relative;padding:.4rem 0}
.menu a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--azul-2);transition:right var(--paso)}
.menu a:hover::after,.menu a[aria-current="page"]::after{right:0}
.menu a[aria-current="page"]{color:var(--azul-2)}
.menu a.menu__wa{color:var(--wa)}
.hamb{display:none;background:none;border:1px solid var(--linea-2);color:var(--plata);border-radius:var(--radio);width:44px;height:44px;cursor:pointer;font-size:0}
.hamb span,.hamb::before,.hamb::after{content:"";display:block;width:20px;height:2px;background:currentColor;margin:4px auto;transition:transform var(--paso),opacity var(--paso)}
.hamb[aria-expanded="true"] span{opacity:0}
.hamb[aria-expanded="true"]::before{transform:translateY(6px) rotate(45deg)}
.hamb[aria-expanded="true"]::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:860px){
  .hamb{display:block}
  .menu{
    position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;
    background:var(--negro-1);border-bottom:1px solid var(--linea-2);
    padding:.5rem 1.25rem 1rem;display:none;
  }
  .menu.abierto{display:flex}
  .menu a{display:block;padding:.9rem 0;border-bottom:1px solid var(--linea);font-size:.86rem}
  .menu a::after{display:none}
}

/* ───────── botones ───────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--display);font-weight:700;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;
  padding:1rem 1.6rem;border-radius:var(--radio);border:1px solid transparent;cursor:pointer;
  position:relative;overflow:hidden;transition:transform var(--paso),box-shadow var(--paso),background var(--paso),color var(--paso);
  text-align:center;
}
.btn::after{ /* brillo que barre al pasar el cursor */
  content:"";position:absolute;top:-30%;bottom:-30%;left:-40%;width:35%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg) translateX(-60px);opacity:0;transition:transform .7s ease,opacity .3s;
}
.btn:hover::after{transform:skewX(-20deg) translateX(420px);opacity:1}
.btn:hover{transform:translateY(-2px)}
.btn--wa{background:var(--wa);color:var(--negro-0)}
.btn--wa:hover{background:var(--wa-2);color:var(--negro-0);box-shadow:0 10px 28px rgba(37,211,102,.28)}
.btn--plata{background:transparent;color:var(--plata);border-color:var(--plata-2)}
.btn--plata:hover{background:var(--azul-pal);border-color:var(--azul-2);color:var(--plata)}
.btn--lleno{background:var(--azul);color:var(--plata)}
.btn--lleno:hover{background:var(--azul-2);color:#fff}
.btn--chico{padding:.7rem 1.1rem;font-size:.72rem;letter-spacing:.14em}
.btn svg{width:18px;height:18px;flex:none}

/* ───────── hero partido con marco de doble filete ───────── */
.hero{position:relative;overflow:hidden;padding:clamp(3rem,7vw,6rem) 0 clamp(3rem,6vw,5rem)}
/* damasco propio (img/damasco.svg): acantos y volutas azules sobre el negro, muy tenue, que se funde hacia abajo */
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:url(../img/damasco.svg) center top/220px 220px repeat;opacity:.16;-webkit-mask-image:linear-gradient(180deg,#000 35%,transparent);mask-image:linear-gradient(180deg,#000 35%,transparent)}
.hero .env{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;position:relative;z-index:2}
.hero__pre{font-family:var(--display);font-size:.78rem;letter-spacing:.34em;color:var(--azul-2);text-transform:uppercase;margin-bottom:1.2rem;display:block}
.hero h1 em{font-style:normal;color:var(--azul-2);display:block}
.hero__texto p.lead{font-size:1.15rem;color:var(--plata-2);max-width:34rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.8rem}
.hero__nota{margin-top:1.4rem;font-size:.9rem;color:var(--plata-3)}
.polvo{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.8}

.marco{position:relative;padding:14px}
.marco::before,.marco::after{content:"";position:absolute;inset:0;border:1px solid var(--linea-2);pointer-events:none}
.marco::after{inset:7px;border-color:var(--plata-2);opacity:.7}
.marco img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.9) contrast(1.05)}
.marco figcaption{position:absolute;left:14px;right:14px;bottom:14px;padding:.6rem .9rem;font-size:.74rem;letter-spacing:.06em;color:var(--plata-2);background:linear-gradient(180deg,transparent,rgba(11,11,15,.9));}

/* ───────── el sello tipográfico (gira en bucle, idle) ───────── */
.sello{
  position:absolute;width:196px;height:196px;right:-34px;top:-38px;z-index:3;
  border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(42,85,232,.38),var(--negro-0) 72%);box-shadow:var(--sombra),0 0 0 1px var(--linea-2),inset 0 0 0 7px var(--negro-0),inset 0 0 0 8px var(--linea);
  display:grid;place-items:center;
}
.sello svg.anillo{position:absolute;inset:0;width:100%;height:100%;animation:girar 26s linear infinite}
.sello svg.anillo text{font-family:var(--display);font-weight:700;font-size:11.5px;letter-spacing:.22em;fill:var(--plata)}
.sello__centro{text-align:center;line-height:1;position:relative;z-index:1;padding-top:.15rem}
.sello__nota{font-family:var(--display);font-weight:900;font-size:2.35rem;color:var(--plata);letter-spacing:0}
.sello__estrellas{display:block;color:var(--azul-2);font-size:.9rem;letter-spacing:.12em;margin:.25rem 0 .3rem}
.sello__pie{display:block;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--plata-2)}
@keyframes girar{to{transform:rotate(360deg)}}
.sello--suelto{position:relative;right:auto;top:auto;margin:0 auto}
.sello--grande{width:230px;height:230px}
.sello--grande svg.anillo text{font-size:12.5px}
.sello--grande .sello__nota{font-size:3.2rem}
.sello--grande .sello__pie{font-size:.68rem}

@media (max-width:920px){
  .hero .env{grid-template-columns:1fr}
  .hero__texto{order:2}
  .hero__visual{order:1;max-width:520px;margin:0 auto;padding-top:26px;padding-right:20px}
  .sello{width:140px;height:140px;right:-10px;top:-12px}
  .sello__nota{font-size:1.9rem}
  .marco img{aspect-ratio:4/3}
}
@media (max-width:520px){
  .sello{width:120px;height:120px;right:-6px;top:-8px}
  .sello svg.anillo text{font-size:10.5px}
  .sello__nota{font-size:1.6rem}
  .sello__estrellas{font-size:.75rem}
  .sello__pie{font-size:.5rem}
}

/* ───────── cinta de datos bajo el hero ───────── */
.cinta{border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);background:rgba(18,19,27,.55)}
.cinta .env{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.cinta__dato{padding:1.25rem 1.5rem;border-left:1px solid var(--linea);display:flex;flex-direction:column;gap:.15rem}
.cinta__dato:first-child{border-left:0;padding-left:0}
.cinta__dato b{font-family:var(--display);font-size:1.35rem;letter-spacing:.06em;color:var(--azul-2)}
.cinta__dato span{font-size:.82rem;color:var(--plata-2);letter-spacing:.04em}
@media (max-width:760px){
  .cinta .env{grid-template-columns:1fr}
  .cinta__dato{border-left:0;border-top:1px solid var(--linea);padding:1rem 0}
  .cinta__dato:first-child{border-top:0}
}

/* ───────── secciones y el índice lateral pegajoso ───────── */
.seccion{padding:clamp(3.5rem,7vw,6.5rem) 0;position:relative}
.seccion--panel{background:linear-gradient(180deg,rgba(18,19,27,.7),rgba(18,19,27,.2));border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.seccion__cab{max-width:46rem;margin-bottom:2.5rem}
.seccion__cab p{color:var(--plata-2);font-size:1.05rem}
.con-indice{display:grid;grid-template-columns:150px 1fr;gap:2rem;align-items:start}
.indice{position:sticky;top:96px;list-style:none;margin:0;padding:0;border-left:1px solid var(--linea)}
.indice li a{display:block;padding:.55rem 0 .55rem 1rem;font-family:var(--display);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plata-3);position:relative;transition:color var(--paso)}
.indice li a::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--azul-2);transform:scaleY(0);transition:transform var(--paso)}
.indice li a.activo{color:var(--azul-2)}
.indice li a.activo::before{transform:scaleY(1)}
.indice li a:hover{color:var(--plata)}
@media (max-width:1000px){
  .con-indice{grid-template-columns:1fr}
  .indice{display:none}
}

/* ───────── portales (tres puertas: corte · barba · vitrina) ───────── */
.portales{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.portal{
  position:relative;display:block;background:var(--negro-1);border:1px solid var(--linea);
  transition:transform var(--paso),border-color var(--paso),box-shadow var(--paso);color:var(--plata);overflow:hidden;
}
.portal:hover{transform:translateY(-6px);border-color:var(--azul-2);box-shadow:var(--sombra)}
.portal__img{aspect-ratio:4/3;overflow:hidden;position:relative}
.portal__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease;filter:saturate(.85)}
.portal:hover .portal__img img{transform:scale(1.06)}
.portal__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(18,19,27,.95))}
.portal__num{position:absolute;top:14px;left:14px;font-family:var(--display);font-size:.72rem;letter-spacing:.3em;color:var(--azul-2);background:rgba(11,11,15,.7);padding:.35rem .6rem;border:1px solid var(--linea-2)}
.portal__cuerpo{padding:1.4rem 1.5rem 1.6rem}
.portal__cuerpo h3{margin-bottom:.5rem}
.portal__cuerpo p{color:var(--plata-2);font-size:.95rem;margin-bottom:1rem}
.portal__mas{font-family:var(--display);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--azul-2)}
.portal__mas::after{content:" →";transition:margin var(--paso)}
.portal:hover .portal__mas::after{margin-left:.4rem}
.portal__pie{font-size:.7rem;color:var(--plata-3);letter-spacing:.04em;margin:0;padding:0 1.5rem 1rem}
@media (max-width:900px){.portales{grid-template-columns:1fr}}

/* ───────── ficha de datos (el local / contacto) ───────── */
.ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:0;border:1px solid var(--linea-2)}
.ficha--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))} /* 6 datos → 3×2 sin celdas vacías */
.ficha > div{padding:1.5rem;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.ficha dt{font-family:var(--display);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--azul-2);margin-bottom:.5rem}
.ficha dd{margin:0;font-size:1.05rem;color:var(--plata)}
.ficha dd small{display:block;color:var(--plata-3);font-size:.8rem;margin-top:.3rem}
.ficha dl{margin:0}

/* ───────── cifras grandes ───────── */
.cifras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;text-align:center}
.cifra{padding:2rem 1rem;border:1px solid var(--linea);background:var(--negro-1);position:relative}
.cifra::before{content:"";position:absolute;inset:6px;border:1px solid var(--linea);pointer-events:none}
.cifra b{display:block;font-family:var(--display);font-weight:900;font-size:clamp(2.4rem,5vw,3.6rem);color:var(--azul-2);line-height:1}
.cifra span{display:block;margin-top:.6rem;font-size:.85rem;letter-spacing:.06em;color:var(--plata-2)}
.cifra small{display:block;margin-top:.35rem;font-size:.72rem;color:var(--plata-3)}
@media (max-width:760px){.cifras{grid-template-columns:1fr}}

/* ───────── cita (frase de ellos) ───────── */
.cita{text-align:center;max-width:52rem;margin:0 auto;padding:1rem 0}
.cita blockquote{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,3.4vw,2.6rem);color:var(--plata);letter-spacing:.05em;line-height:1.25}
.cita blockquote::before{content:"«";color:var(--azul-2)}
.cita blockquote::after{content:"»";color:var(--azul-2)}
.cita cite{display:block;margin-top:1.1rem;font-style:normal;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--plata-3)}

/* ───────── galería a dos alturas (el local) ───────── */
.galeria{display:grid;grid-template-columns:1.4fr 1fr;grid-auto-rows:minmax(200px,auto);gap:1.2rem}
.galeria figure{margin:0;position:relative;overflow:hidden;border:1px solid var(--linea)}
.galeria figure:first-child{grid-row:span 2}
.galeria img{width:100%;height:100%;object-fit:cover;min-height:220px;filter:saturate(.85);transition:transform .9s ease}
.galeria figure:hover img{transform:scale(1.04)}
.galeria figcaption{position:absolute;left:0;right:0;bottom:0;padding:.6rem .9rem;font-size:.72rem;letter-spacing:.06em;color:var(--plata-2);background:linear-gradient(180deg,transparent,rgba(11,11,15,.92))}
@media (max-width:760px){.galeria{grid-template-columns:1fr}.galeria figure:first-child{grid-row:auto}}

/* ───────── tabla de servicios (arquetipo: TABLA, no carta de puntitos) ───────── */
.tabla{width:100%;border-collapse:collapse;border:1px solid var(--linea-2)}
.tabla thead th{font-family:var(--display);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--azul-2);text-align:left;padding:1rem 1.2rem;border-bottom:1px solid var(--linea-2);background:rgba(18,19,27,.7)}
.tabla tbody td{padding:1.2rem;border-bottom:1px solid var(--linea);vertical-align:top}
.tabla tbody tr{transition:background var(--paso)}
.tabla tbody tr:hover{background:var(--azul-pal)}
.tabla .serv{font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:.06em;color:var(--plata)}
.tabla .serv small{display:block;font-family:var(--texto);font-weight:400;font-size:.78rem;letter-spacing:.04em;color:var(--plata-3);margin-top:.25rem}
.tabla .desc{color:var(--plata-2);font-size:.95rem}
.tabla .precio{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--azul-2);white-space:nowrap;text-align:right}
.tabla .precio small{display:block;font-family:var(--texto);font-weight:400;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--plata-3)}
.tabla .accion{text-align:right;white-space:nowrap}
@media (max-width:760px){
  .tabla thead{display:none}
  .tabla,.tabla tbody,.tabla tr,.tabla td{display:block;width:100%}
  .tabla tr{border-bottom:1px solid var(--linea-2);padding:.4rem 0}
  .tabla tbody td{border:0;padding:.5rem 1rem}
  .tabla .precio,.tabla .accion{text-align:left}
  .tabla .accion .btn{width:100%}
}

/* ───────── el aviso de «esto es de ejemplo» ───────── */
.aviso{
  border:1px solid var(--azul-2);background:var(--azul-pal);padding:1.1rem 1.3rem;
  display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;margin:2rem 0 0;
}
.aviso__tag{font-family:var(--display);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--azul-2);padding-top:.25rem;white-space:nowrap}
.aviso p{margin:0;color:var(--plata-2);font-size:.95rem}
.aviso p strong{color:var(--plata)}
@media (max-width:560px){.aviso{grid-template-columns:1fr}}

/* ───────── catálogo: chips que filtran + fichas con selector ───────── */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem}
.chip{
  font-family:var(--display);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  padding:.65rem 1rem;border:1px solid var(--linea-2);background:transparent;color:var(--plata-2);cursor:pointer;border-radius:var(--radio);
  transition:background var(--paso),color var(--paso),border-color var(--paso);
}
.chip:hover{color:var(--plata);border-color:var(--azul-2)}
.chip[aria-pressed="true"]{background:var(--azul);color:var(--plata);border-color:var(--azul)}
.catalogo{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:1.4rem}
.prod{
  background:var(--negro-1);border:1px solid var(--linea);display:flex;flex-direction:column;position:relative;
  transition:transform var(--paso),border-color var(--paso),box-shadow var(--paso),opacity .35s,scale .35s;
}
.prod:hover{transform:translateY(-4px);border-color:var(--azul-2);box-shadow:var(--sombra)}
.prod[hidden]{display:none}
.prod__img{aspect-ratio:4/3;overflow:hidden;position:relative;background:var(--negro-2)}
.prod__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease}
.prod:hover .prod__img img{transform:scale(1.05)}
.prod__ej{
  position:absolute;top:10px;left:10px;font-family:var(--display);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--negro-0);background:var(--plata);padding:.3rem .55rem;
}
.prod__cat{position:absolute;bottom:10px;left:10px;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--plata-2);background:rgba(11,11,15,.78);padding:.3rem .55rem;border:1px solid var(--linea)}
.prod__cuerpo{padding:1.2rem 1.25rem 1.3rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.prod__cuerpo h3{margin:0;font-size:1.05rem}
.prod__desc{margin:0;color:var(--plata-2);font-size:.9rem;flex:1}
.pres{display:flex;flex-wrap:wrap;gap:.4rem}
.pres button{
  font-family:var(--texto);font-size:.78rem;letter-spacing:.04em;padding:.4rem .7rem;border-radius:var(--radio);
  border:1px solid var(--linea-2);background:transparent;color:var(--plata-2);cursor:pointer;transition:all var(--paso);
}
.pres button[aria-pressed="true"]{border-color:var(--azul-2);color:var(--azul-2);background:var(--azul-pal)}
.prod__pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;margin-top:.2rem}
.prod__precio{font-family:var(--display);font-weight:700;font-size:1.2rem;color:var(--azul-2);line-height:1}
.prod__precio small{display:block;font-family:var(--texto);font-weight:400;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--plata-3);margin-top:.3rem}
.prod__add{
  font-family:var(--display);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  padding:.7rem .9rem;border:1px solid var(--azul-2);background:transparent;color:var(--azul-2);cursor:pointer;border-radius:var(--radio);
  transition:all var(--paso);white-space:nowrap;
}
.prod__add:hover{background:var(--azul);color:var(--plata)}
.prod__add.listo{background:var(--azul);color:var(--plata)}
.prod__foto-nota{font-size:.66rem;color:var(--plata-3);letter-spacing:.04em;margin:0}
.catalogo__vacio{display:none;padding:2rem;border:1px dashed var(--linea-2);color:var(--plata-2);text-align:center}
.catalogo__vacio.ver{display:block}

/* ───────── la consulta que se arma y sale por WhatsApp ───────── */
.pedido{
  position:fixed;right:1rem;bottom:5.6rem;z-index:45;width:min(380px,calc(100vw - 2rem));
  background:var(--negro-1);border:1px solid var(--azul-2);box-shadow:var(--sombra);
  transform:translateY(12px);opacity:0;pointer-events:none;transition:transform var(--paso),opacity var(--paso);
}
.pedido.ver{transform:none;opacity:1;pointer-events:auto}
.pedido__cab{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--linea);cursor:pointer}
.pedido__cab b{font-family:var(--display);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--azul-2)}
.pedido__cab span{font-size:.8rem;color:var(--plata-2)}
.pedido__lista{list-style:none;margin:0;padding:.4rem 1.1rem;max-height:220px;overflow:auto}
.pedido__lista li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--linea);font-size:.9rem}
.pedido__lista li:last-child{border-bottom:0}
.pedido__lista small{color:var(--plata-3);display:block;font-size:.74rem}
.pedido__q{display:inline-flex;align-items:center;gap:.35rem}
.pedido__q button{width:26px;height:26px;border-radius:50%;border:1px solid var(--linea-2);background:transparent;color:var(--plata);cursor:pointer;font-size:.9rem;line-height:1}
.pedido__q button:hover{border-color:var(--azul-2)}
.pedido__pie{padding:.9rem 1.1rem 1.1rem;display:grid;gap:.6rem}
.pedido__pie .btn{width:100%}
.pedido__pie p{margin:0;font-size:.72rem;color:var(--plata-3);text-align:center}
.pedido.plegado .pedido__lista,.pedido.plegado .pedido__pie{display:none}

/* ───────── bloque de contacto / mapa ───────── */
.contacto{display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;align-items:start}
.mapa{position:relative;border:1px solid var(--linea-2);padding:10px;background:var(--negro-1)}
.mapa iframe{display:block;width:100%;aspect-ratio:16/11;border:0;filter:grayscale(.35) contrast(1.05)}
.mapa__pie{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;align-items:center;padding:.9rem .4rem .2rem;font-size:.85rem;color:var(--plata-2)}
@media (max-width:900px){.contacto{grid-template-columns:1fr}}

/* ───────── remate ───────── */
.remate{text-align:center;padding:clamp(3.5rem,8vw,7rem) 0;position:relative;border-top:1px solid var(--linea)}
.remate h2{font-size:clamp(1.9rem,4.4vw,3.4rem);font-weight:900}
.remate p{max-width:38rem;margin:0 auto 2rem;color:var(--plata-2)}
.remate .btn{min-width:260px}

/* ───────── pie ───────── */
footer{border-top:1px solid var(--linea-2);background:var(--negro-1);padding:3rem 0 2rem;margin-top:2rem;position:relative;overflow:hidden}
footer::before{content:"";position:absolute;inset:0;pointer-events:none;background:url(../img/damasco.svg) center/200px 200px repeat;opacity:.09}
footer .env{position:relative;z-index:1}
.pie{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
.pie h4{font-size:.72rem;letter-spacing:.28em;color:var(--azul-2);margin-bottom:1rem}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.pie a{color:var(--plata-2);font-size:.95rem}
.pie a:hover{color:var(--azul-2)}
.pie p{color:var(--plata-2);font-size:.95rem;max-width:32rem}
.pie__legal{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--linea);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;font-size:.78rem;color:var(--plata-3)}
@media (max-width:820px){.pie{grid-template-columns:1fr}}

/* ───────── flotante de WhatsApp (SIEMPRE WhatsApp) ───────── */
.wa-float{
  position:fixed;right:1.1rem;bottom:1.1rem;z-index:50;width:60px;height:60px;border-radius:50%;
  background:var(--wa);color:var(--negro-0);display:grid;place-items:center;box-shadow:0 12px 30px rgba(37,211,102,.35);
  transition:transform var(--paso),box-shadow var(--paso);
}
.wa-float:hover{transform:scale(1.06);color:var(--negro-0);box-shadow:0 16px 36px rgba(37,211,102,.45)}
.wa-float svg{width:30px;height:30px}
.wa-float::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--wa);opacity:.6;animation:latir 2.6s ease-out infinite}
@keyframes latir{0%{transform:scale(.9);opacity:.7}100%{transform:scale(1.35);opacity:0}}

/* ───────── revelados al deslizar (plan B sin JS: todo visible) ───────── */
.js .rev{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .rev.in{opacity:1;transform:none}
.js .rev.d1{transition-delay:.08s}.js .rev.d2{transition-delay:.16s}.js .rev.d3{transition-delay:.24s}

/* ───────── página legal (texto plano, a una columna) ───────── */
.legal{max-width:46rem;margin:0 auto;padding:clamp(3rem,6vw,5rem) 0}
.legal h1{font-size:clamp(1.8rem,4vw,2.8rem)}
.legal h2{font-size:1.2rem;letter-spacing:.14em;margin-top:2.4rem;color:var(--azul-2)}
.legal p,.legal li{color:var(--plata-2)}
.legal ul{padding-left:1.2rem}
.legal .fecha{font-size:.85rem;color:var(--plata-3);letter-spacing:.06em}

/* ───────── cabecera de página interior ───────── */
.cabecera{padding:clamp(3rem,6vw,5rem) 0 clamp(2rem,4vw,3rem);position:relative}
.cabecera .env{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end}
.cabecera h1{font-size:clamp(2rem,4.6vw,3.6rem)}
.cabecera p{max-width:40rem;color:var(--plata-2);font-size:1.08rem;margin:0}
@media (max-width:820px){.cabecera .env{grid-template-columns:1fr}.cabecera .sello--suelto{display:none}}

/* ───────── página 404 ───────── */
.perdido{min-height:70vh;display:grid;place-items:center;text-align:center;padding:3rem 0}
.perdido b{display:block;font-family:var(--display);font-weight:900;font-size:clamp(4rem,14vw,9rem);color:var(--azul-2);line-height:1}

/* ───────── movimiento reducido ───────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .sello svg.anillo,.wa-float::before{animation:none}
  .btn::after{display:none}
  .js .rev{opacity:1;transform:none;transition:none}
  *{transition-duration:.01ms!important}
}
