/* PFP Single v9 */

/* ═══ Title — H1: Helvetica Light 300, 26px ═══ */
.pfps-title {
    font-family: helvetica, arial, sans-serif;
    font-weight: 300;
    font-size: 26px;
    line-height: 1.2;
    color: #000;
    text-transform: lowercase;
    margin: 0;
    padding: 0 0 10px;
    border-bottom: 1px solid #000;
}

/* ═══ Labels ═══ */
.pfps-label {
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 13px;
    color: #aaa;
    margin: 0 0 4px;
    text-transform: lowercase;
    letter-spacing: 0;
    line-height: 1.2;
}

/* ═══ Description — body text: Helvetica Thin 100, 17px ═══ */
.pfps-desc,
.pfps-concept,
.pfps-process {
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 17px;
    line-height: 1.45;
    color: #000;
    text-transform: none;
}
.pfps-desc p,
.pfps-concept p,
.pfps-process p { margin: 0 0 12px; }
.pfps-concept + .pfps-process { margin-top: 20px; }

/* ═══ Meta Row — 14px ═══ */
.pfps-meta {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 14px;
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 14px;
    line-height: 1.2;
    color: #000;
    padding: 10px 0;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    text-transform: lowercase;
}
.pfps-meta a {
    color: #000;
    text-decoration: none;
    border-bottom: 1px solid #000;
}
.pfps-meta a:hover { opacity: 0.5; }

/* ═══ Standalone fields — 14px ═══ */
.pfps-name, .pfps-location {
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 14px;
    display: inline;
    text-transform: lowercase;
}
.pfps-insta, .pfps-email, .pfps-video-link {
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 14px;
    color: #000;
    text-decoration: none;
    border-bottom: 1px solid #000;
    text-transform: none;
}
.pfps-insta:hover, .pfps-email:hover, .pfps-video-link:hover { opacity: 0.5; }

/* ═══ Number ═══ */
.pfps-number {
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 13px;
    color: #aaa;
}

/* ═══ Back ═══ */
.pfps-back {
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 13px;
    color: #000;
    text-decoration: none;
    text-transform: lowercase;
    opacity: 0.4;
    -webkit-transition: opacity 0.12s;
    transition: opacity 0.12s;
}
.pfps-back:hover { opacity: 1; }

/* ═══ Credits — 14px ═══ */
.pfps-credits {
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 14px;
    line-height: 1.4;
    color: #000;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 14px;
    text-transform: lowercase;
}
.pfps-credit {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: baseline;
    align-items: baseline;
    gap: 6px;
}
.pfps-credit-name { font-size: inherit; }
.pfps-credit-role {
    font-size: 12px;
    color: #aaa;
    text-transform: none;
}
.pfps-credit-insta {
    font-size: 12px;
    color: #000;
    text-decoration: none;
    border-bottom: 1px solid #000;
    text-transform: none;
}
.pfps-credit-insta:hover { opacity: 0.5; }

/* ═══ Categories — 12px ═══ */
.pfps-cats {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 5px;
}
a.pfps-cat {
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    font-size: 12px;
    border: 1px solid #000;
    padding: 3px 10px;
    text-decoration: none;
    color: #000;
    text-transform: lowercase;
    -webkit-transition: opacity 0.12s;
    transition: opacity 0.12s;
    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
}
a.pfps-cat:hover { opacity: 0.5; }

/* ═══ Info (backward compat) ═══ */
.pfps-info .pfps-meta { margin-bottom: 16px; }
.pfps-info .pfps-desc { margin-bottom: 16px; }
.pfps-info .pfps-credits { margin-bottom: 16px; }

/* ═══════════════════════════════════════════════════════════════
   GALLERY CAROUSEL
═══════════════════════════════════════════════════════════════ */
.pfps-gallery {
    position: relative;
    width: 100%;
    background: #fff;
    aspect-ratio: 16/10;
    overflow: hidden;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}
.pfps-carousel { position: absolute; inset: 0; }
.pfps-slide {
    position: absolute;
    inset: 0;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    opacity: 0;
    -webkit-transition: opacity 0.15s;
    transition: opacity 0.15s;
    pointer-events: none;
    padding: 12px 12px 32px;
    box-sizing: border-box;
}
.pfps-slide.active { opacity: 1; pointer-events: all; }
.pfps-slide img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
    cursor: zoom-in;
    -webkit-tap-highlight-color: transparent;
}

/* Audio */
.pfps-slide-audio {
    display: -webkit-flex; display: flex;
    -webkit-flex-direction: column; flex-direction: column;
    -webkit-align-items: center; align-items: center;
    -webkit-justify-content: center; justify-content: center;
    gap: 16px; width: 100%; height: 100%;
}
.pfps-slide-audio span { color: rgba(0,0,0,0.3); font-family: helvetica, arial, sans-serif; font-size: 11px; text-transform: lowercase; }
.pfps-slide-audio audio { width: 240px; max-width: 80%; }

/* PDF */
.pfps-slide-pdf {
    width: 100%; height: 100%; overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: -webkit-flex; display: flex;
    -webkit-flex-direction: column; flex-direction: column;
    -webkit-align-items: center; align-items: center;
    gap: 4px; padding: 8px; box-sizing: border-box;
}
.pfps-slide-pdf canvas { max-width: 100%; display: block; }

/* Arrows */
.pfps-prev, .pfps-next {
    position: absolute; top: 50%;
    -webkit-transform: translateY(-50%); transform: translateY(-50%);
    background: none; border: none; color: #000;
    font-size: 18px; cursor: pointer; z-index: 2; padding: 14px;
    opacity: 0.2;
    -webkit-transition: opacity 0.12s; transition: opacity 0.12s;
    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
    touch-action: manipulation;
}
.pfps-prev { left: 0; }
.pfps-next { right: 0; }
.pfps-prev:hover, .pfps-next:hover { opacity: 0.7; }

/* Dots */
.pfps-dots {
    position: absolute; bottom: 12px; left: 0; right: 0;
    display: -webkit-flex; display: flex;
    -webkit-justify-content: center; justify-content: center;
    gap: 5px; z-index: 2;
}
.pfps-dot {
    width: 5px; height: 5px;
    background: rgba(0,0,0,0.15); border-radius: 50%;
    cursor: pointer; border: none; padding: 0;
    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
    touch-action: manipulation;
}
.pfps-dot.active { background: rgba(0,0,0,0.5); }

/* ═══════════════════════════════════════════════════════════════
   LIGHTBOX — fullscreen image popup
═══════════════════════════════════════════════════════════════ */
.pfps-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,0.97);
    z-index: 99999;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    cursor: zoom-out;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
}
.pfps-lightbox img {
    max-width: 92vw;
    max-height: 92vh;
    object-fit: contain;
    -webkit-user-select: none;
    user-select: none;
}
.pfps-lb-close {
    position: absolute;
    top: 16px; right: 20px;
    font-size: 24px;
    cursor: pointer;
    color: #000;
    opacity: 0.4;
    z-index: 100000;
    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
    touch-action: manipulation;
    background: none;
    border: none;
    font-family: helvetica, arial, sans-serif;
    font-weight: 100;
    padding: 8px;
}
.pfps-lb-close:hover { opacity: 1; }
.pfps-lb-prev, .pfps-lb-next {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%); transform: translateY(-50%);
    font-size: 24px;
    cursor: pointer;
    color: #000;
    opacity: 0.2;
    z-index: 100000;
    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
    touch-action: manipulation;
    background: none;
    border: none;
    padding: 16px;
    -webkit-transition: opacity 0.12s; transition: opacity 0.12s;
}
.pfps-lb-prev { left: 0; }
.pfps-lb-next { right: 0; }
.pfps-lb-prev:hover, .pfps-lb-next:hover { opacity: 0.7; }

/* ═══ Video ═══ */
.pfps-video {
    position: relative; width: 100%; padding-bottom: 56.25%; background: #000;
}
.pfps-video iframe {
    position: absolute; inset: 0; width: 100%; height: 100%;
}
