/*
 * Dallas Media Company — Portfolio single + archive templates.
 * Dynamic CPT display (title, category, content, featured image).
 */

.pf-wrap { max-width: 1280px; margin: 0 auto; }

/* ── SINGLE: media frame ── */
.pf-media { padding: 120px 60px 0; background: var(--navy); }
.pf-media-frame { max-width: 1280px; margin: 0 auto; aspect-ratio: 16/9; border: 1px solid rgba(0,212,255,0.25); background: linear-gradient(135deg,#071428,#1d4ea3); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.pf-media-frame .wp-block-post-featured-image { margin: 0; width: 100%; height: 100%; }
.pf-media-frame .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
/* Lead media via [dmc_portfolio_media]: embedded video when set, else featured image */
.pf-media-frame .pf-video, .pf-media-frame .pf-media-img { width: 100%; height: 100%; }
.pf-media-frame .pf-video iframe, .pf-media-frame .pf-video video, .pf-media-frame .pf-video embed { width: 100% !important; height: 100% !important; display: block; border: 0; }
.pf-media-frame .pf-media-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ── SINGLE: title + body ── */
.pf-title-section { padding: 56px 60px 100px; background: var(--navy); }
.pf-title-wrap { max-width: 900px; margin: 0 auto; }
.pf-title-wrap > * { margin-top: 0; }
.pf-tags { display: inline-flex; gap: 10px; flex-wrap: wrap; margin: 0 0 20px; font-size: 10px; letter-spacing: 2.5px; text-transform: uppercase; }
.pf-tags a, .pf-tags { color: var(--cyan); text-decoration: none; }
.pf-tags a { border: 1px solid rgba(0,212,255,0.3); padding: 6px 14px; }
/* Single portfolio: category + industry + serving-area chips together in one row */
.pf-tagrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 26px; }
.pf-tagrow .pf-tags { margin: 0 !important; }
.pf-tagrow .wp-block-post-terms__separator { display: none; }
.pf-tagrow .pf-tags-ind a, .pf-tagrow .pf-tags-area a { color: var(--gray); border-color: rgba(136,153,187,0.35); }
.pf-tagrow .pf-tags-ind a:hover, .pf-tagrow .pf-tags-area a:hover { color: var(--cyan); border-color: rgba(0,212,255,0.4); }
.pf-title { font-family: 'Bebas Neue', sans-serif !important; font-size: clamp(48px, 6vw, 84px) !important; line-height: 0.95 !important; letter-spacing: 2px; color: var(--white); margin: 0 0 28px; }
.pf-body { font-size: 17px; line-height: 1.8; color: var(--white); opacity: 0.92; margin: 0 0 36px; }
.pf-body p { margin: 0 0 20px; }
.pf-body p:last-child { margin-bottom: 0; }
/* Serving area meta line (single portfolio) */
.pf-areas { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gray); margin: 0 0 32px; }
.pf-areas a { color: var(--cyan); text-decoration: none; border: 1px solid rgba(0,212,255,0.3); padding: 4px 11px; }
.pf-areas a:hover { background: rgba(0,212,255,0.12); }
.pf-areas .wp-block-post-terms__separator { display: none; }
.pf-areas:empty { display: none; }
.pf-industries { margin-bottom: 14px; }

/* ── MORE WORK + ARCHIVE grid (Query Loop) ── */
.pf-more { padding: 100px 60px; background: var(--navy2); }
.pf-archive-body { padding: 72px 60px 100px; background: var(--navy); }
.pf-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1280px; margin: 40px auto 0; list-style: none; padding: 0; }
.pf-grid > li { position: relative; overflow: hidden; aspect-ratio: 16/9; display: flex; flex-direction: column; justify-content: flex-end; padding: 22px; margin: 0; background: linear-gradient(135deg,#071428,#1a3a6e); }
.pf-grid > li:nth-child(3n+2) { background: linear-gradient(135deg,#0d1f3c,#1e5fbf); }
.pf-grid > li:nth-child(3n) { background: linear-gradient(135deg,#040d1a,#2e7de6); }
.pf-grid > li::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(4,13,26,0.95) 0%, rgba(4,13,26,0.3) 55%, transparent 100%); }
.pf-grid > li > * { position: relative; z-index: 1; margin-top: 0; }
.pf-card-tag, .pf-card-tag a { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--cyan); margin: 0 0 6px; text-decoration: none; }
.pf-card-title, .pf-card-title a { font-family: 'Bebas Neue', sans-serif !important; font-size: 22px !important; color: var(--white); letter-spacing: 0.5px; line-height: 1.1; margin: 0 0 8px; text-decoration: none; }
.pf-card-title a:hover { color: var(--cyan); }
.pf-card-desc { font-size: 12px; color: rgba(240,244,255,0.7); line-height: 1.5; margin: 0; }
.pf-card-desc .wp-block-post-excerpt__more-text, .pf-card-desc .wp-block-post-excerpt__more-link { display: none; }

/* ── ARCHIVE hero ── */
.pf-archive-hero { padding: 130px 60px 64px; background: radial-gradient(ellipse 60% 80% at 20% 30%, rgba(30,95,191,0.2) 0%, transparent 60%), var(--navy); border-bottom: 1px solid rgba(0,212,255,0.08); }
.pf-archive-hero .pf-wrap > * { margin-top: 0; }
.pf-archive-title { font-family: 'Bebas Neue', sans-serif !important; font-size: clamp(56px, 7vw, 100px) !important; line-height: 0.92 !important; letter-spacing: 2px; color: var(--white); margin: 12px 0 20px; }
.pf-archive-sub { font-size: 17px; line-height: 1.65; color: var(--gray); max-width: 640px; margin: 0; }

/* ── pagination ── */
.pf-loop .wp-block-query-pagination { max-width: 1280px; margin: 48px auto 0; justify-content: center; gap: 16px; }
.pf-loop .wp-block-query-pagination a, .pf-loop .wp-block-query-pagination .wp-block-query-pagination-numbers { color: var(--gray); text-decoration: none; }
.pf-loop .wp-block-query-pagination .current { color: var(--cyan); }

/* ── section heading helper ── */
.pf-more-head { max-width: 1280px; margin: 0 auto; }
.pf-more-head .section-title { font-family: 'Bebas Neue', sans-serif !important; }

@media (max-width: 1100px) {
  .pf-media { padding: 100px 24px 0; }
  .pf-title-section { padding: 40px 24px 64px; }
  .pf-more, .pf-archive-body { padding: 56px 24px; }
  .pf-archive-hero { padding: 110px 24px 48px; }
  .pf-grid { grid-template-columns: 1fr; }
}

/* Lead-media photo gallery (single portfolio) */
.pf-media-frame:has(.pf-gallery){aspect-ratio:auto;border:none;background:none;display:block;overflow:visible;}
.pf-gallery .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0;}
/* Exactly 4 images → 2x2 quadrants (instead of 3 + 1) */
.pf-gallery .gallery:has(.gallery-item:nth-child(4):last-child){grid-template-columns:repeat(2,1fr);}
.pf-gallery .gallery-item{margin:0 !important;width:auto !important;padding:0 !important;float:none !important;}
.pf-gallery .gallery-icon{margin:0 !important;}
.pf-gallery .gallery-item img{width:100% !important;height:100% !important;aspect-ratio:4/3;object-fit:cover;border:1px solid rgba(0,212,255,0.2) !important;display:block;}
.pf-gallery .gallery-caption{display:none !important;}
.pf-gallery br{display:none;}
@media (max-width:782px){.pf-gallery .gallery{grid-template-columns:repeat(2,1fr);}}

/* Portfolio gallery lightbox */
.pf-lb{position:fixed;inset:0;background:rgba(4,13,26,0.96);z-index:99999;display:none;align-items:center;justify-content:center;}
.pf-lb.open{display:flex;}
.pf-lb-img{max-width:90vw;max-height:86vh;object-fit:contain;border:1px solid rgba(0,212,255,0.3);box-shadow:0 20px 60px rgba(0,0,0,0.5);}
.pf-lb-btn{position:absolute;background:rgba(4,13,26,0.7);border:1px solid rgba(0,212,255,0.4);color:#00d4ff;font-size:28px;line-height:1;width:48px;height:48px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;}
.pf-lb-btn:hover{background:#00d4ff;color:#040d1a;}
.pf-lb-close{top:24px;right:24px;}
.pf-lb-prev{left:24px;top:50%;transform:translateY(-50%);}
.pf-lb-next{right:24px;top:50%;transform:translateY(-50%);}
.pf-lb-single .pf-lb-prev,.pf-lb-single .pf-lb-next{display:none;}
.pf-gallery .gallery-item a{cursor:zoom-in;display:block;height:100%;}
@media (max-width:782px){.pf-lb-prev{left:10px;}.pf-lb-next{right:10px;}.pf-lb-btn{width:40px;height:40px;font-size:24px;}}
