.jp-private-gallery{width:100%}
.jp-watermark-note{margin:0 0 24px;color:#aaa}
.jp-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.jp-photo-card{border:1px solid rgba(255,255,255,.12);background:#111;overflow:hidden}
.jp-photo-card>img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.jp-photo-actions{padding:14px;display:grid;gap:10px}
.jp-photo-actions button,.jp-photo-actions select{width:100%;padding:11px 12px}
.jp-select.active,.jp-add-physical.active{outline:1px solid #bca686}
.jp-gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;bottom:0;margin-top:28px;padding:18px 0;background:rgba(12,12,12,.94);backdrop-filter:blur(10px);z-index:2}
.gallery-login{max-width:520px;margin:80px auto;padding:32px;border:1px solid rgba(255,255,255,.12);background:#111}
.gallery-login input{width:100%;padding:12px;margin-bottom:12px}
@media(max-width:900px){.jp-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.jp-gallery-grid{grid-template-columns:1fr}.jp-gallery-toolbar{align-items:stretch;flex-direction:column}.jp-gallery-toolbar .btn{width:100%}}

/* v1.1.3 · Área clientes */
.jp-client-area{width:100%}
.jp-client-area-heading{max-width:760px;margin:0 0 38px}
.jp-client-kicker{display:block;margin-bottom:10px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#9b8a74}
.jp-client-area-heading h2{margin:0 0 14px}
.jp-client-area-heading p{margin:0;color:#aaa}
.jp-client-area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.jp-client-gallery-card{border:1px solid rgba(255,255,255,.12);background:#111;overflow:hidden}
.jp-client-gallery-link{display:block;color:inherit;text-decoration:none}
.jp-client-gallery-cover{aspect-ratio:4/3;overflow:hidden;background:#0e0e0e}
.jp-client-gallery-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.jp-client-gallery-link:hover .jp-client-gallery-cover img{transform:scale(1.025)}
.jp-brand-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#0e0e0e,#171511);position:relative}
.jp-brand-cover:after{content:"";position:absolute;inset:18px;border:1px solid rgba(188,166,134,.16)}
.jp-brand-mark{font-family:Georgia,serif;font-size:clamp(4rem,8vw,7rem);line-height:1;color:#2a251f;letter-spacing:-.05em}
.jp-brand-name{margin-top:10px;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#bca686}
.jp-client-gallery-meta{padding:20px 20px 22px}
.jp-client-gallery-meta h3{margin:0 0 7px;font-size:1.25rem}
.jp-client-gallery-meta span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#9b8a74}
.jp-client-area-back{margin:0 0 26px}
.jp-client-area-back a{text-decoration:none;color:#bca686}
@media(max-width:900px){.jp-client-area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.jp-client-area-grid{grid-template-columns:1fr}}


/* v1.1.4 · Pulido visual del Área de clientes */
.jp-client-area{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:12px 0 22px;
}
.jp-client-area-heading{
  max-width:760px;
  margin:0 0 46px;
}
.jp-client-kicker{
  display:block;
  margin-bottom:12px;
  font-size:.68rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:#bca686;
}
.jp-client-area-heading h2{
  margin:0 0 16px;
  max-width:720px;
  font-size:clamp(2.2rem,4.4vw,4.2rem);
  line-height:1.03;
  letter-spacing:-.025em;
}
.jp-client-area-heading p{
  max-width:650px;
  margin:0;
  color:#aaa49c;
  font-size:1.02rem;
  line-height:1.7;
}
.jp-client-area-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}
.jp-client-gallery-card{
  border:1px solid rgba(255,255,255,.11);
  background:#101010;
  overflow:hidden;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.jp-client-gallery-card:hover{
  transform:translateY(-3px);
  border-color:rgba(188,166,134,.34);
  box-shadow:0 18px 42px rgba(0,0,0,.22);
}
.jp-client-gallery-link{
  display:block;
  color:inherit;
  text-decoration:none;
}
.jp-client-gallery-cover{
  aspect-ratio:4/3;
  overflow:hidden;
  background:#0d0d0d;
  position:relative;
}
.jp-client-gallery-cover:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.18),transparent 42%);
  pointer-events:none;
}
.jp-client-gallery-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s ease,filter .35s ease;
}
.jp-client-gallery-link:hover .jp-client-gallery-cover img{
  transform:scale(1.035);
}
.jp-brand-cover{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 50% 38%,rgba(188,166,134,.08),transparent 38%),
    linear-gradient(145deg,#0d0d0d,#181511 58%,#0c0c0c);
}
.jp-brand-cover:before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(188,166,134,.15);
}
.jp-brand-mark{
  position:relative;
  z-index:1;
  font-family:Georgia,serif;
  font-size:clamp(4.4rem,8vw,7.5rem);
  line-height:.9;
  color:#2c261f;
  letter-spacing:-.065em;
}
.jp-brand-name{
  position:relative;
  z-index:1;
  margin-top:14px;
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#bca686;
}
.jp-client-gallery-meta{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:22px 22px 24px;
}
.jp-client-gallery-meta h3{
  margin:0;
  font-size:1.28rem;
  line-height:1.25;
}
.jp-client-gallery-meta span{
  flex:0 0 auto;
  font-size:.67rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#9b8a74;
  white-space:nowrap;
}
.jp-client-gallery-meta span:after{
  content:"  →";
}
.jp-client-area-privacy{
  max-width:760px;
  margin:42px 0 0;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.09);
  color:#8f8981;
  font-size:.86rem;
  line-height:1.65;
}
.jp-client-area-back{
  margin:0 0 28px;
}
.jp-client-area-back a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#bca686;
  text-decoration:none;
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.jp-client-area-back a:hover{opacity:.72}

@media(max-width:1020px){
  .jp-client-area-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
}
@media(max-width:640px){
  .jp-client-area-heading{margin-bottom:32px}
  .jp-client-area-grid{grid-template-columns:1fr;gap:20px}
  .jp-client-gallery-meta{padding:19px 18px 21px}
  .jp-client-gallery-meta span{font-size:.63rem}
  .jp-client-area-privacy{margin-top:32px}
}


/* v1.1.5 · Previews completas y visor fullscreen */
.jp-preview-open{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  background:#0b0b0b;
  cursor:zoom-in;
}
.jp-preview-open img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  background:#0b0b0b;
}

/* Neutraliza el recorte 4:5 de versiones anteriores. */
.jp-photo-card>img{aspect-ratio:auto;object-fit:contain}
.jp-photo-card .jp-preview-open img{aspect-ratio:auto}

.jp-lightbox{
  position:fixed;
  inset:0;
  z-index:999999;
  display:none;
  background:rgba(5,5,5,.97);
  touch-action:pan-y;
  overscroll-behavior:contain;
}
.jp-lightbox.is-open{display:block}
.jp-lightbox-stage{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:58px 58px 74px;
}
.jp-lightbox-image{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  user-select:none;
  -webkit-user-drag:none;
}
.jp-lightbox-close,
.jp-lightbox-prev,
.jp-lightbox-next{
  position:absolute;
  z-index:2;
  border:0;
  background:rgba(0,0,0,.32);
  color:#f3efe9;
  cursor:pointer;
  line-height:1;
  -webkit-tap-highlight-color:transparent;
}
.jp-lightbox-close{
  top:14px;
  right:14px;
  width:46px;
  height:46px;
  border-radius:50%;
  font-size:34px;
}
.jp-lightbox-prev,
.jp-lightbox-next{
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:64px;
  font-size:48px;
}
.jp-lightbox-prev{left:10px}
.jp-lightbox-next{right:10px}
.jp-lightbox-counter{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  z-index:2;
  color:#bdb7ae;
  font-size:.78rem;
  letter-spacing:.13em;
}
.jp-lightbox button:hover{background:rgba(188,166,134,.18)}

@media(max-width:600px){
  .jp-photo-card .jp-preview-open img{
    width:100%;
    height:auto;
    object-fit:contain;
  }
  .jp-lightbox-stage{padding:52px 8px 62px}
  .jp-lightbox-prev,
  .jp-lightbox-next{
    top:auto;
    bottom:12px;
    width:44px;
    height:44px;
    border-radius:50%;
    font-size:34px;
  }
  .jp-lightbox-prev{left:12px}
  .jp-lightbox-next{right:12px}
  .jp-lightbox-counter{bottom:26px}
}


/* v1.1.6 · Alineación uniforme vertical/horizontal */
.jp-gallery-grid{
  align-items:stretch;
}
.jp-photo-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.jp-preview-open{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  aspect-ratio:4/5;
  min-height:0;
  overflow:hidden;
  background:#0b0b0b;
}
.jp-preview-open img{
  width:100%;
  height:100%;
  max-height:none;
  object-fit:contain;
  object-position:center center;
  background:#0b0b0b;
}
.jp-photo-actions{
  margin-top:auto;
}

/* En móvil mantenemos la misma lógica: todas las tarjetas alineadas,
   pero la imagen completa sigue visible dentro del marco. */
@media(max-width:600px){
  .jp-preview-open{
    aspect-ratio:4/5;
  }
  .jp-preview-open img{
    width:100%;
    height:100%;
    object-fit:contain;
  }
}
