/* ===============================
   Ledarq Projects — Frontend CSS
   =============================== */

/* Grid - tarjetas modernas */
.lp-grid {
  --gap: 16px;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: var(--gap);
}
@media (min-width: 600px) { .lp-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .lp-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px){ .lp-grid { grid-template-columns: repeat(4, 1fr); } }

/* ---------- TARJETAS (rectangulares, sin sombra, fondo título transparente) ---------- */
.lp-grid .lp-card{
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}
.lp-grid .lp-card:hover{
  transform: none !important;
  box-shadow: none !important;
}
.lp-grid .lp-card .lp-card-link{
  display:block;
  text-decoration:none;
  color:inherit;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.lp-grid .lp-card .lp-card-thumb{
  width: 100%;
  padding-top: 62%; /* ratio */
  background-size: cover;
  background-position: center;
  filter: saturate(1.05);
  border-radius: 0 !important;      /* ← sin redondeo */
  box-shadow: none !important;       /* ← sin sombra */
}
.lp-grid .lp-card .lp-card-title{
  font-size: 16px;
  line-height: 1.4;
  font-weight: 600;
  padding: 12px 14px 16px;
  color: #1f2937;
  min-height: 56px;
  background: transparent !important; /* ← fondo del título transparente */
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* Por si el tema aplica radios/sombras a imágenes dentro de widgets */
.lp-grid .lp-card img{
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* ===== MODAL (único, responsive, con scroll interno) ===== */
.lp-modal{ position: fixed; inset: 0; z-index: 99999; display: none; }
.lp-modal.is-open, .lp-modal[aria-hidden="false"]{ display: grid; place-items: center; }
.lp-modal__overlay{ position: absolute; inset: 0; background: rgba(15,23,42,.55); backdrop-filter: blur(2px); }
.lp-modal__dialog{
  position: relative; width: min(1100px, 92vw); max-height: min(88vh, 100dvh);
  margin: 4vh auto; background: #fff; border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,.25); overflow: hidden; display: flex; flex-direction: column;
}
.lp-modal__close{
  position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border-radius: 999px; border: 0;
  cursor: pointer; background: #0f172a; color: #fff; font-size: 22px; line-height: 1; opacity: .9;
}
.lp-modal__close:hover{ opacity: 1; }
.lp-modal__content{
  padding: 20px 22px 26px; min-height: 220px; overflow: auto; -webkit-overflow-scrolling: touch;
  max-height: calc(min(88vh, 100dvh) - 56px);
}
.lp-modal__spinner{
  width: 36px; height: 36px; border-radius: 50%; border: 3px solid #e5e7eb; border-top-color: #111827;
  animation: lp-spin 1s linear infinite; margin: 40px auto; display: none;
}
.lp-modal.loading .lp-modal__spinner{ display: block; }
@keyframes lp-spin{ to { transform: rotate(360deg);} }

/* Bloqueo de scroll del body cuando el modal está abierto */
html.lp-scroll-lock, body.lp-scroll-lock{ overflow: hidden; height: 100dvh; }

/* Responsive móvil */
@media (max-width: 768px){
  .lp-modal{ align-items: end; }
  .lp-modal__dialog{ width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 16px 16px 0 0; }
  .lp-modal__content{ height: calc(100dvh - 56px); max-height: calc(100dvh - 56px); padding-bottom: max(24px, env(safe-area-inset-bottom)); }
  .lp-detail__grid{ grid-template-columns: 1fr; gap: 16px; }
  .lp-detail__right{ order: 2; }
  .lp-detail__thumbs{ grid-template-columns: repeat(3,1fr); gap: 8px; }
}

/* Evita scroll fantasma en móviles */
.lp-modal, .lp-modal__content{ overscroll-behavior: contain; }

/* ===== DETALLE DEL PROYECTO ===== */
.lp-detail__header{ padding: 6px 4px 16px; border-bottom: 1px solid #eef2f7; }
.lp-detail__title{ margin: 0; font-size: 24px; color: #111827; font-weight: 700; }

.lp-detail__grid{
  display: grid; gap: 18px; padding: 16px 0 8px;
  grid-template-columns: 1.2fr 1fr;
}
@media (max-width: 900px){ .lp-detail__grid{ grid-template-columns: 1fr; } }

.lp-detail__meta{ list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.lp-detail__meta li{
  display: flex; gap: 10px; align-items: flex-start;
  padding: 10px 12px;
  border-radius: 10px;
}
.lp-detail__meta .k{ font-weight: 600; color: #0f172a; min-width: 200px; }
.lp-detail__meta .v{ color: #334155; }

/* ====== GALERÍA (columna derecha) ====== */
.lp-detail__thumbs{
  display: flex; flex-direction: column; gap: 16px;
  max-height: 700px; overflow-y: auto; padding-right: 8px;
}
.lp-thumb{
  display: block; width: 100%; height: 340px;
  border-radius: 14px; overflow: hidden;
  border: 1px solid #e5e7eb; box-shadow: 0 6px 18px rgba(0,0,0,.08);
}
.lp-thumb img{
  width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease;
}
.lp-thumb:hover img{ transform: scale(1.02); }
@media (max-width: 768px){ .lp-detail__thumbs{ max-height: 60vh; } }

.lp-detail__memoria{ margin-top: 12px; border-top: 1px solid #eef2f7; padding-top: 16px; }
.lp-detail__memoria h3{ margin: 0 0 10px; font-size: 18px; color: #0f172a; }
.lp-detail__memoria-text{ color: #334155; line-height: 1.7; }
.lp-detail__noimgs{ color: #64748b; }

/* ===== LIGHTBOX ===== */
.lp-lightbox{ position: fixed; inset: 0; z-index: 100000; display: none; }
.lp-lightbox.is-open{ display: block; }
.lp-lightbox__overlay{ position: absolute; inset: 0; background: rgba(0,0,0,.7); }
.lp-lightbox__img{
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  max-width: 90vw; max-height: 85vh; box-shadow: 0 20px 60px rgba(0,0,0,.4); border-radius: 12px;
}
.lp-lightbox__close{
  position: absolute; top: 18px; right: 18px; width: 40px; height: 40px; border-radius: 999px;
  background: #111827; color: #fff; border: 0; font-size: 24px; cursor: pointer; opacity: .9;
}
.lp-lightbox__close:hover{ opacity: 1; }

.lp-detail__memoria-text a{ color: #2563eb; text-decoration: underline; text-underline-offset: 2px; }
.lp-detail__memoria-text a:hover{ text-decoration-thickness: 2px; }

/* Galería en dos columnas (cuando la coloques abajo) */
.lp-detail__thumbs--two{
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px;
}
@media (max-width:700px){ .lp-detail__thumbs--two{ grid-template-columns:1fr; } }

/* --------- EXTRA: por si Elementor agrega radios/sombras en wrappers --------- */
.lp-grid .elementor-widget, 
.lp-grid .elementor-widget-container, 
.lp-grid .e-con-inner{
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* ===== NUKE: tarjetas rectangulares sin sombra ni fondo ===== */
.lp-grid .lp-card,
.lp-grid .lp-card *,
.lp-grid .lp-card *::before,
.lp-grid .lp-card *::after{
  border-radius: 0 !important;
  box-shadow: none !important;
}

.lp-grid .lp-card{
  background: transparent !important;
}

.lp-grid .lp-card .lp-card-title{
  background: transparent !important;
}

/* Por si el tema/Elementor pone radios/sombras en wrappers externos */
.lp-grid .elementor-widget,
.lp-grid .elementor-widget-container,
.lp-grid .e-con,
.lp-grid .e-con-inner{
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Asegura que la miniatura no recorte ni herede radios por overflow */
.lp-grid .lp-card .lp-card-thumb{
  border-radius: 0 !important;
  box-shadow: none !important;
  background-clip: initial !important;
}
.lp-grid .lp-card img{
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

