:root{--tinta:#14171c;--gris:#5b6470;--linea:#e3e6ea;--fondo:#f6f7f9;--blanco:#fff;--acento:#1f6feb;--acento-osc:#1857bd;--ok:#157f3b;--aviso:#9a6700;--error:#c0261d}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--tinta);background:var(--fondo)}
a{color:var(--acento)}
img{max-width:100%;display:block}
.cab{background:var(--blanco);border-bottom:1px solid var(--linea)}
.cab .in{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.cab .quien{font-weight:600;color:var(--gris);white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.marca{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:700}
.marca img{height:44px;width:auto}
.cab .espacio{flex:1}
.cab nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}
.cab nav a{margin-left:0}
.marca span{line-height:1.15}
.enlace-nav .corto{display:none}
@media (max-width:560px){.enlace-nav .largo{display:none}.enlace-nav .corto{display:inline}.cab .in{gap:10px;padding:10px 12px}.marca img{height:38px}.marca{min-width:0;font-size:.95rem}}
.cab nav a{text-decoration:none;color:var(--tinta);font-weight:600}
.carro{background:var(--tinta);color:#fff!important;padding:7px 14px;border-radius:99px}
main{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:1.6rem;margin:.2em 0 .1em}
h2{font-size:1.2rem;margin:1.4em 0 .5em}
.sub{color:var(--gris);margin:0 0 16px}
.aviso,.error,.ok,.info{padding:10px 14px;border-radius:8px;margin:0 0 16px;border:1px solid}
.aviso{background:#fff8e6;border-color:#f0d58a;color:var(--aviso)}
.info{background:#eef4ff;border-color:#c9dcff;color:var(--tinta)}
.ok{background:#e9f7ee;border-color:#a7dbb7;color:var(--ok)}
.error{background:#fdeceb;border-color:#f3b4af;color:var(--error)}
.eventos{display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.eventos{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.eventos{grid-template-columns:repeat(2,1fr)}}
@media (max-width:440px){.eventos{grid-template-columns:1fr}}
.tarjeta{background:var(--blanco);border:1px solid var(--linea);border-radius:12px;padding:0;overflow:hidden;text-decoration:none;color:inherit;display:block;transition:box-shadow .15s,border-color .15s}
.tarjeta:hover{border-color:var(--acento);box-shadow:0 6px 18px rgba(20,23,28,.12)}
.tarjeta b{display:block;font-size:1.05rem}
.tarjeta span{color:var(--gris);font-size:.92rem}
.grilla{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}
@media(min-width:560px){.grilla{grid-template-columns:repeat(3,1fr)}}
@media(min-width:860px){.grilla{grid-template-columns:repeat(5,1fr)}}
.celda{position:relative;display:block;background:#dde1e6;border-radius:8px;overflow:hidden;aspect-ratio:2/3}
.celda .enlace-foto{display:block;position:relative;width:100%;height:100%}
.celda img{width:100%;height:100%;object-fit:cover}
.celda .num{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);background:rgba(0,0,0,.65);color:#fff;font-size:.68rem;font-weight:700;line-height:1.25;padding:1px 7px;border-radius:99px;letter-spacing:.02em}
.celda .tilde{display:none;position:absolute;right:6px;top:6px;background:var(--ok);color:#fff;font-weight:700;width:24px;height:24px;border-radius:50%;text-align:center;line-height:24px;pointer-events:none}
.celda.en-carrito .tilde{display:block}
.celda.en-carrito{outline:3px solid var(--ok);outline-offset:-3px}
.precios{background:var(--blanco);border:1px solid var(--linea);border-radius:10px;padding:10px 14px;margin:0 0 16px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.95rem}
.visor img{margin:0 auto;border-radius:6px;max-height:78vh;width:auto}
.acciones{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.btn{display:inline-block;border:0;background:var(--acento);color:#fff;font:inherit;font-weight:700;padding:11px 20px;border-radius:10px;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--acento-osc)}
.btn.sec{background:var(--blanco);color:var(--tinta);border:1px solid var(--linea)}
.btn.sec:hover{border-color:var(--tinta)}
.btn.ok{background:var(--ok);border:0;color:#fff}
.btn.peligro{background:var(--blanco);color:var(--error);border:1px solid #f3b4af}
.btn.chico{padding:6px 12px;font-size:.88rem}
.tabla{width:100%;border-collapse:collapse;background:var(--blanco);border:1px solid var(--linea);border-radius:10px;overflow:hidden}
.tabla th,.tabla td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--linea);vertical-align:middle}
.tabla th{background:#f0f2f5;font-size:.85rem;color:var(--gris)}
.tabla img{height:56px;width:auto;border-radius:4px}
.resp{overflow-x:auto}
.total{font-size:1.4rem;font-weight:800}
.caja{background:var(--blanco);border:1px solid var(--linea);border-radius:12px;padding:18px;margin:0 0 16px}
label{display:block;font-weight:600;margin:12px 0 4px}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=tel],input[type=search]{width:100%;max-width:420px;font:inherit;padding:10px 12px;border:1px solid #c9ced6;border-radius:8px;background:#fff}
.err{color:var(--error);font-size:.9rem;margin-top:4px}
.estado{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.82rem;font-weight:700}
.estado.pagado{background:#e9f7ee;color:var(--ok)}
.estado.pendiente{background:#fff8e6;color:var(--aviso)}
.estado.cancelado{background:#fdeceb;color:var(--error)}
.subir{border:2px dashed #b7bec9;border-radius:12px;padding:26px;text-align:center;background:#fff}
.subir.arrastra{border-color:var(--acento);background:#eef4ff}
.cola{list-style:none;padding:0;margin:12px 0 0;max-height:240px;overflow:auto;font-size:.9rem;text-align:left}
.cola li{padding:3px 0;border-bottom:1px solid var(--linea)}
.barra{height:8px;background:var(--linea);border-radius:99px;overflow:hidden;margin-top:12px}
.barra i{display:block;height:100%;width:0;background:var(--acento);transition:width .2s}
.pie{color:var(--gris);font-size:.85rem;text-align:center;padding:24px 16px}
.login{max-width:380px;margin:50px auto}
.logo-login{height:64px;width:auto;margin:0 auto 12px}
.fila-pack{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
.fila-pack input{width:110px!important;max-width:110px}
.ejemplos{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.ejemplos div{background:var(--blanco);border:1px solid var(--linea);border-radius:10px;padding:8px 12px;font-size:.92rem}
.ejemplos span{display:block;font-weight:800;font-size:1.05rem}
.tarjeta .portada{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;background:#dde1e6;transition:transform .25s}
.tarjeta:hover .portada{transform:scale(1.02)}
.tarjeta .portada.vacia{display:flex;align-items:center;justify-content:center;color:var(--gris);font-weight:600}
.tarjeta .tapa{overflow:hidden}
.tarjeta .cuerpo{padding:14px 16px 16px}
.tarjeta .cuerpo span{display:block}
.btn.grande{font-size:1.1rem;padding:14px 26px}
.celda-descarga{min-width:240px}
.celda-descarga input{display:block;width:100%;max-width:260px;margin:6px 0;font-size:.8rem;padding:5px 8px}
.celda-descarga form{margin-top:4px}
.fila-clave{display:flex;gap:6px;align-items:center}
.fila-clave input{max-width:170px;padding:6px 8px}
select{font:inherit;padding:10px 12px;border:1px solid #c9ced6;border-radius:8px;background:#fff;max-width:420px}
textarea{width:100%;max-width:420px;font:inherit;padding:10px 12px;border:1px solid #c9ced6;border-radius:8px;background:#fff}
input[type=file]{max-width:100%}
/* Cobros por transferencia: casilla con su texto al lado y los datos a donde transferir */
.casilla{display:flex;gap:10px;align-items:flex-start;font-weight:600;margin:0 0 6px}
.casilla input{margin-top:5px}
.datos-transferencia{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;margin:10px 0 0}
.datos-transferencia dt{color:var(--gris)}
.datos-transferencia dd{margin:0;font-weight:700;word-break:break-word}
.datos-transferencia dd .sub{font-weight:400;margin:0}
.datos-transferencia .copiable{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:480px){.datos-transferencia{grid-template-columns:1fr;gap:2px}.datos-transferencia dd{margin-bottom:10px}}
.celda-descarga details{margin-top:8px}
.celda-descarga details summary{cursor:pointer}
/* Galería: botones Agregar / Ver sobre la foto al pasar el mouse */
.acciones-celda{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(10,12,16,.38);opacity:0;transition:opacity .15s;pointer-events:none}
.celda:hover .acciones-celda,.celda:focus-within .acciones-celda{opacity:1}
.acciones-celda form{margin:0}
.acciones-celda .mini{pointer-events:auto}
.mini{display:inline-block;border:0;font:inherit;font-size:.95rem;font-weight:700;padding:9px 16px;border-radius:99px;cursor:pointer;text-decoration:none;background:var(--acento);color:#fff;line-height:1.2;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.mini:hover{background:var(--acento-osc)}
.mini.ver{background:#fff;color:var(--tinta)}
.mini.ver:hover{background:#eef0f3}
.mini.quitar{background:#fff;color:var(--error)}
.mini[disabled]{opacity:.6;cursor:wait}
/* En celulares no hay "pasar el mouse": los botones quedan siempre visibles debajo de cada foto */
@media (hover:none),(pointer:coarse),(max-width:700px){
  .celda-galeria{aspect-ratio:auto;background:var(--blanco);border:1px solid var(--linea)}
  .celda-galeria .enlace-foto{aspect-ratio:2/3;height:auto;background:#dde1e6}
  .celda-galeria .acciones-celda{position:static;opacity:1;background:none;padding:8px 6px;pointer-events:auto}
  .celda-galeria .acciones-celda .mini{box-shadow:none;border:1px solid var(--linea);padding:9px 14px;font-size:.9rem}
  .celda-galeria .mini.ver{background:var(--blanco)}
  .celda-galeria.en-carrito{outline-offset:0}
  .solo-mouse{display:none}
}
.ayuda-grilla{font-size:.9rem}
/* Foto ampliada: todo centrado */
.pagina-foto{text-align:center}
.pagina-foto h1{margin:0 0 8px}
.pagina-foto .visor img{margin:0 auto;max-height:max(320px,calc(100vh - 280px))}
.acciones.centradas{justify-content:center}
/* En el celular el dedo hacia los costados pasa de foto (lo maneja el script de la página); arriba/abajo y el pellizco siguen siendo del navegador */
.visor[data-deslizar]{overflow:hidden;overflow:clip;touch-action:pan-y;touch-action:pan-y pinch-zoom}
.solo-tactil{display:none}
@media (hover:none) and (pointer:coarse){.solo-tactil{display:block}}
.pagina-foto .solo-tactil{margin:8px 0 0;font-size:.9rem}
.btn.inactivo{opacity:.4;cursor:default;pointer-events:none}
@media (max-width:560px){
  .acciones.centradas form{flex:1 1 100%;order:-1}
  .acciones.centradas form .btn{width:100%}
  .acciones.centradas>a,.acciones.centradas>span{flex:1 1 40%;text-align:center}
}
/* Inicio con varios fotógrafos */
.fotografos{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.fotografos a{background:var(--blanco);border:1px solid var(--linea);border-radius:99px;padding:6px 14px;text-decoration:none;color:var(--tinta);font-weight:600}
.fotografos a:hover{border-color:var(--acento)}
.fotografos a span{color:var(--gris);font-weight:400;font-size:.85rem;margin-left:4px}
.tarjeta .cuerpo .por{color:var(--acento);font-weight:600}
/* Portada: buscador por nombre o categoría (todavía solo visual) */
.filtro-eventos{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:18px auto 22px;max-width:760px}
.filtro-eventos input[type=search]{flex:1 1 280px;max-width:none;min-width:0}
.filtro-eventos select{flex:0 1 220px}
/* Galería: cierre del pedido debajo de todas las fotos */
.cierre-pedido{text-align:center;margin:28px 0 8px;padding:22px 16px;background:var(--blanco);border:1px solid var(--linea);border-radius:12px}
.cierre-pedido p{margin:0 0 12px;font-weight:600}
/* Carrito: "Quitar" centrado con su foto */
.item-carrito{text-align:center}
.item-carrito form{margin:8px 0 0}
/* Textos legales */
.legal{max-width:760px}
.legal h2{margin-top:1.6em}
.legal-datos{font-size:.9rem;color:var(--gris)}
.pie a{color:inherit}
/* Panel */
.filtros-resumen{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.filtros-resumen input[type=text]{max-width:280px}
.tabla tr.destacado td{background:#eef4ff}
.celda-descarga .sub{margin:4px 0 0;font-size:.85rem}
.celda-descarga .btn{margin-top:6px}
/* Fotos con marca de agua: no se arrastran, no se seleccionan y el toque largo del celular no ofrece "Guardar imagen".
   Es una traba para quien baja una foto sin pensar (con una captura igual se puede: por eso las vistas previas son chicas).
   Como la imagen no recibe el mouse ni el dedo, el clic y el deslizar los recibe el enlace o la caja que la contiene. */
img[src*="/previas/"]{-webkit-user-drag:none;user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;pointer-events:none}
.celda,.visor,.tarjeta,.item-carrito{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
/* Cobros: elegir UN medio de cobro (Mercado Pago o transferencia) */
.opcion-cobro{display:flex;gap:10px;align-items:flex-start;margin:0 0 10px;padding:12px 14px;border:1px solid var(--linea);border-radius:10px;cursor:pointer;font-weight:400}
.opcion-cobro input{margin-top:4px}
.opcion-cobro:has(input:checked){border-color:var(--acento);background:#f5f9ff}

/* Protección dinámica contra capturas de pantalla (la activa cada fotógrafo en "Protección"): debajo va una versión diminuta y
   desenfocada y encima la foto nítida, que solo se ve a través de una banda que se mueve. Una captura saca un pedazo nítido. */
.prot-din{position:relative;display:inline-block;line-height:0;overflow:hidden;vertical-align:top;max-width:100%}
.prot-din .fondo{position:absolute;inset:0;width:100%!important;height:100%!important;max-height:none!important;margin:0!important;object-fit:fill}
.prot-din .nitida{position:relative;display:block;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,transparent 41.5%,#000 45.5%,#000 54.5%,transparent 58.5%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0,transparent 41.5%,#000 45.5%,#000 54.5%,transparent 58.5%,transparent 100%);
  -webkit-mask-size:100% 300%;mask-size:100% 300%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:prot-din-banda 5.5s linear infinite}
.prot-din.relleno{display:block;width:100%;height:100%}
.prot-din.relleno .fondo,.prot-din.relleno .nitida{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.prot-din.relleno .fondo{object-fit:cover!important}
.tarjeta .prot-din.portada{width:100%;height:auto;aspect-ratio:4/5}
.tarjeta .prot-din.portada img{object-position:center 30%}
.visor .prot-din{display:block;width:fit-content;margin:0 auto}
@keyframes prot-din-banda{from{-webkit-mask-position:0 0;mask-position:0 0}to{-webkit-mask-position:0 100%;mask-position:0 100%}}
