/* =====================================================
   Elementor PDF Gallery – Frontend
   ===================================================== */

/* Grid */
.epg-gallery-wrap { width:100%; }
.epg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

/* Card */
.epg-card {
	background:#fff; border-radius:8px; overflow:hidden; cursor:pointer;
	transition:transform .22s ease, box-shadow .22s ease;
	box-shadow:0 1px 4px rgba(0,0,0,.08); outline:none;
}
.epg-card:hover, .epg-card:focus-visible {
	transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.13);
}
.epg-card:focus-visible { outline:3px solid #2563eb; outline-offset:2px; }

/* Thumbnail */
.epg-card-thumb {
	position:relative; height:200px;
	background:#e2e8f0 center/cover no-repeat; overflow:hidden;
}
.epg-thumb-placeholder {
	position:absolute; inset:0; display:flex; align-items:center;
	justify-content:center;
}
/* Per-type gradients */
.epg-type-pdf   .epg-thumb-placeholder { background:linear-gradient(135deg,#fef2f2,#fee2e2); }
.epg-type-image .epg-thumb-placeholder { background:linear-gradient(135deg,#f0fdf4,#dcfce7); }
.epg-type-doc   .epg-thumb-placeholder { background:linear-gradient(135deg,#eff6ff,#dbeafe); }

.epg-type-icon-wrap {
	display:flex; flex-direction:column; align-items:center; gap:8px;
}
.epg-file-icon { font-size:56px; line-height:1; }
.epg-type-pdf   .epg-file-icon { color:#ef4444; }
.epg-type-image .epg-file-icon { color:#22c55e; }
.epg-type-doc   .epg-file-icon { color:#3b82f6; }
.epg-file-ext {
	font-size:.65rem; font-weight:800; letter-spacing:.1em;
	padding:2px 8px; border-radius:4px;
}
.epg-type-pdf   .epg-file-ext { background:#fef2f2; color:#dc2626; border:1.5px solid #fca5a5; }
.epg-type-image .epg-file-ext { background:#f0fdf4; color:#16a34a; border:1.5px solid #86efac; }
.epg-type-doc   .epg-file-ext { background:#eff6ff; color:#2563eb; border:1.5px solid #93c5fd; }

/* Hover overlay */
.epg-card-thumb::after {
	content:''; position:absolute; inset:0;
	background:rgba(37,99,235,.82); opacity:0; transition:opacity .22s;
}
.epg-card:hover .epg-card-thumb::after,
.epg-card:focus-visible .epg-card-thumb::after { opacity:1; }

.epg-card-overlay {
	position:absolute; inset:0; z-index:2;
	display:flex; align-items:center; justify-content:center;
}
.epg-open-icon {
	color:#fff; opacity:0; transform:scale(.6);
	transition:opacity .22s, transform .22s; display:flex;
}
.epg-open-icon svg { width:38px; height:38px; }
.epg-card:hover .epg-open-icon,
.epg-card:focus-visible .epg-open-icon { opacity:1; transform:scale(1); }

/* Card footer */
.epg-card-footer {
	display:flex; flex-direction:column; gap:4px;
	padding:12px 14px; text-align:left;
}
.epg-file-type-badge {
	display:inline-block; font-size:.62rem; font-weight:700; letter-spacing:.07em;
	padding:1px 6px; border-radius:4px; align-self:flex-start; margin-bottom:2px;
}
.epg-type-pdf   .epg-file-type-badge { color:#dc2626; border:1.5px solid #fca5a5; background:#fff5f5; }
.epg-type-image .epg-file-type-badge { color:#16a34a; border:1.5px solid #86efac; background:#f0fdf4; }
.epg-type-doc   .epg-file-type-badge { color:#2563eb; border:1.5px solid #93c5fd; background:#eff6ff; }
.epg-card-footer[style*="text-align:center"] .epg-file-type-badge { align-self:center; }
.epg-card-footer[style*="text-align:right"]  .epg-file-type-badge { align-self:flex-end; }

.epg-card-title { margin:0; font-size:1rem; font-weight:600; color:#1e293b; line-height:1.4; word-break:break-word; }
.epg-card-desc  { margin:0; font-size:.82rem; color:#64748b; line-height:1.5; word-break:break-word; }

/* Editor empty */
.epg-editor-empty {
	display:flex; flex-direction:column; align-items:center;
	padding:48px; border:2px dashed #e2e8f0; border-radius:10px;
	color:#94a3b8; text-align:center; background:#f8fafc;
}
.epg-editor-empty .dashicons { font-size:40px; width:40px; height:40px; margin-bottom:8px; }
.epg-editor-empty p { margin:0; }

/* ═════════════════════════════════════
   LIGHTBOX
   ═════════════════════════════════════ */
.epg-lightbox-overlay {
	position:fixed; inset:0; z-index:999999;
	background:rgba(0,0,0,.9);
	display:flex; align-items:center; justify-content:center;
	padding:16px; animation:epgFadeIn .2s ease;
}
@keyframes epgFadeIn  { from{opacity:0} to{opacity:1} }
@keyframes epgSlideUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }

.epg-lightbox-inner {
	background:#1e293b; border-radius:12px;
	width:100%; max-width:1040px; height:92vh; max-height:880px;
	display:flex; flex-direction:column; overflow:hidden;
	box-shadow:0 30px 80px rgba(0,0,0,.6);
	animation:epgSlideUp .25s ease;
}

/* Header */
.epg-lb-header {
	display:flex; align-items:center; justify-content:space-between;
	padding:12px 16px; border-bottom:1px solid rgba(255,255,255,.1);
	flex-shrink:0; gap:12px;
}
.epg-lb-title-wrap { display:flex; align-items:center; gap:8px; flex:1; min-width:0; }
.epg-lb-type-dot {
	width:8px; height:8px; border-radius:50%; flex-shrink:0;
}
#epg-lb-title {
	font-size:.88rem; font-weight:600; color:#e2e8f0;
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.epg-lb-actions { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.epg-lb-btn {
	display:flex; align-items:center; justify-content:center;
	width:34px; height:34px; border-radius:7px; border:none;
	background:rgba(255,255,255,.09); color:#cbd5e1; cursor:pointer;
	transition:background .14s, color .14s; text-decoration:none;
}
.epg-lb-btn:hover { background:rgba(255,255,255,.2); color:#fff; }
.epg-lb-btn svg { width:16px; height:16px; }

/* Body */
.epg-lb-body-wrap {
	flex:1; position:relative; overflow:hidden; background:#0f172a;
	display:flex; align-items:center; justify-content:center;
}

/* Spinner */
.epg-lb-spinner {
	position:absolute; inset:0; z-index:10;
	display:flex; flex-direction:column; align-items:center; justify-content:center;
	gap:14px; background:#0f172a; transition:opacity .3s;
}
.epg-lb-spinner.epg-hidden { opacity:0; pointer-events:none; }
.epg-spin-ring {
	width:44px; height:44px;
	border:3px solid rgba(255,255,255,.1); border-top-color:#2563eb;
	border-radius:50%; animation:epgSpin .75s linear infinite;
}
.epg-spin-label { font-size:.78rem; color:#64748b; }
@keyframes epgSpin { to{transform:rotate(360deg)} }

/* Image viewer */
.epg-img-wrap {
	display:flex; align-items:center; justify-content:center;
	width:100%; height:100%; padding:16px; box-sizing:border-box;
	overflow:auto;
}
.epg-lb-img {
	max-width:100%; max-height:100%; object-fit:contain;
	border-radius:4px; box-shadow:0 4px 24px rgba(0,0,0,.5);
	display:block;
}

/* PDF container */
.epg-pdf-container {
	position:relative; width:100%; height:100%;
}
.epg-lb-embed {
	position:absolute; inset:0; width:100%; height:100%; border:none;
}
/* PDF.js iframe sits behind embed; visible when embed not supported */
.epg-pdf-container .epg-lb-iframe {
	position:absolute; inset:0; width:100%; height:100%; border:none; z-index:1;
}
.epg-pdf-container .epg-lb-embed { z-index:2; background:transparent; }

/* Generic iframe (DOC) */
.epg-lb-iframe { width:100%; height:100%; border:none; display:block; }

/* Error */
.epg-lb-error {
	display:flex; flex-direction:column; align-items:center; justify-content:center;
	gap:10px; color:#94a3b8; text-align:center; padding:40px;
}
.epg-lb-error .dashicons { font-size:40px; width:40px; height:40px; color:#ef4444; }
.epg-lb-error p { margin:0; font-size:.9rem; }

/* Responsive */
@media(max-width:1024px){ .epg-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:767px){
	.epg-grid{grid-template-columns:1fr;}
	.epg-lightbox-inner{height:96vh;border-radius:8px;}
}
