.pb-project-page{
    --pb-project-bg:#f2efe8;
    --pb-project-text:#111;
    --pb-project-muted:#686868;
    --pb-project-line:rgba(17,17,17,.18);
    --pb-project-dark:#171716;
    min-height:100vh;
    background:var(--pb-project-bg);
    color:var(--pb-project-text);
    font-family:var(--pb-font-body, Arial, Helvetica, sans-serif);
}

.pb-project-main,
.pb-project-footer{
    width:min(1600px,calc(100% - 84px));
    margin:0 auto;
}

.pb-project-page>.pbx-site-header{padding:30px 42px 0}

/* =========================================================
   HERO
   ========================================================= */

.pb-project-hero{
    padding:17vh 0 105px;
}

.pb-project-kicker,
.pb-project-film-head,
.pb-project-lead-label,
.pb-project-story-label,
.pb-project-gallery-head{
    font-size:9px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--pb-project-muted);
}

.pb-project-kicker{margin-bottom:30px}

.pb-project-title-main{
    max-width:1450px;
    margin:0;
    font-size:clamp(60px,8.5vw,146px);
    line-height:.82;
    letter-spacing:-.07em;
    text-transform:uppercase;
}

.pb-project-meta-row{
    display:flex;
    flex-wrap:wrap;
    gap:12px 30px;
    margin-top:34px;
    font-size:9px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--pb-project-muted);
}

.pb-project-hero-media{
    width:100%;
    margin:58px 0 0;
    background:#dedbd4;
    overflow:hidden;
}

.pb-project-hero-image img{
    display:block;
    width:100%;
    height:min(88vh,980px);
    object-fit:cover;
}

.pb-project-hero-video{
    min-height:min(78vh,900px);
    background:#111;
    display:flex;
    align-items:center;
    justify-content:center;
}

.pb-project-hero-video video,
.pb-project-hero-video iframe{
    display:block;
    width:100%;
    height:min(88vh,980px);
    border:0;
}

.pb-project-hero-video video{object-fit:cover}

/* =========================================================
   INTRO
   ========================================================= */

.pb-project-lead{
    display:grid;
    grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);
    gap:clamp(45px,7vw,120px);
    padding:100px 0 125px;
    border-top:1px solid var(--pb-project-line);
}

.pb-project-lead-content{max-width:1030px}

.pb-project-lead-copy{
    font-family:var(--pb-font-accent, Georgia, "Times New Roman", serif);
    font-size:clamp(34px,4.4vw,72px);
    line-height:.98;
    letter-spacing:-.05em;
}

.pb-project-lead-support{
    max-width:720px;
    margin-top:42px;
    font-size:clamp(15px,1.15vw,19px);
    line-height:1.55;
    color:#4f4d49;
}

.pb-project-lead-support p{margin:0 0 1em}

/* =========================================================
   PRIMARY FEATURE IMAGE
   ========================================================= */

.pb-project-feature{
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding:0 0 130px;
}

.pb-project-feature figure{margin:0}

.pb-project-feature img{
    display:block;
    width:100%;
    max-height:96vh;
    object-fit:cover;
}

.pb-project-feature figcaption{
    width:min(1600px,calc(100% - 84px));
    margin:12px auto 0;
    font-size:9px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--pb-project-muted);
}

/* =========================================================
   STORY
   ========================================================= */

.pb-project-story{
    display:grid;
    grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);
    gap:clamp(45px,7vw,120px);
    padding:105px 0 135px;
    border-top:1px solid var(--pb-project-line);
}

.pb-project-story-main{max-width:1030px}

.pb-project-story h2{
    max-width:980px;
    margin:0;
    font-family:var(--pb-font-accent, Georgia, "Times New Roman", serif);
    font-weight:400;
    font-size:clamp(38px,4.9vw,80px);
    line-height:.96;
    letter-spacing:-.052em;
}

.pb-project-story-copy{
    display:grid;
    grid-template-columns:minmax(0,680px);
    margin-top:48px;
    font-size:clamp(15px,1.15vw,19px);
    line-height:1.6;
    color:#484640;
}

.pb-project-story-copy p{margin:0 0 1em}

/* =========================================================
   DIPTYCH
   ========================================================= */

.pb-project-diptych{
    display:grid;
    grid-template-columns:1.12fr .88fr;
    gap:clamp(16px,2vw,32px);
    align-items:start;
    padding:10px 0 145px;
}

.pb-project-diptych figure{margin:0}

.pb-project-diptych-left img,
.pb-project-diptych-right img{
    display:block;
    width:100%;
    object-fit:cover;
}

.pb-project-diptych-left img{height:min(78vh,900px)}
.pb-project-diptych-right{padding-top:10vh}
.pb-project-diptych-right img{height:min(62vh,730px)}

.pb-project-diptych figcaption{
    margin-top:10px;
    font-size:9px;
    line-height:1.4;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--pb-project-muted);
}

.pb-project-diptych-single{
    grid-template-columns:minmax(0,1fr);
    max-width:1150px;
    margin:0 auto;
}

.pb-project-diptych-single .pb-project-diptych-right{padding-top:0}
.pb-project-diptych-single img{height:auto;max-height:88vh}

/* =========================================================
   STATEMENT
   ========================================================= */

.pb-project-statement{
    padding:120px 0 150px;
    border-top:1px solid var(--pb-project-line);
}

.pb-project-statement>div{
    max-width:1350px;
    font-size:clamp(48px,7vw,120px);
    font-weight:700;
    line-height:.86;
    letter-spacing:-.065em;
    text-transform:uppercase;
}

/* =========================================================
   FILM
   ========================================================= */

.pb-project-film-zone{
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding:110px 0 135px;
    background:var(--pb-project-dark);
    color:#f2efe8;
}

.pb-project-film-inner{
    width:min(1600px,calc(100% - 84px));
    margin:0 auto;
}

.pb-project-film-head{
    display:flex;
    justify-content:space-between;
    gap:30px;
    margin-bottom:25px;
    color:#aaa59c;
}

.pb-project-film-frame{
    position:relative;
    width:100%;
    min-height:54vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#090909;
    overflow:hidden;
}

.pb-project-film-frame iframe,
.pb-project-film-frame video{
    display:block;
    width:100%;
    aspect-ratio:16/9;
    height:auto;
    border:0;
}

.pb-project-video-link{
    color:#f2efe8;
    text-decoration:none;
    font-size:10px;
    letter-spacing:.15em;
    text-transform:uppercase;
}

/* =========================================================
   GALLERY - SHARED
   ========================================================= */

.pb-project-gallery{
    padding:125px 0 150px;
    border-top:1px solid var(--pb-project-line);
}

.pb-project-gallery-head{
    display:flex;
    justify-content:space-between;
    gap:30px;
    margin-bottom:28px;
}

.pb-project-gallery-grid figure{margin:0;position:relative}
.pb-project-gallery-grid img{display:block;width:100%;height:100%;object-fit:cover}

.pb-project-gallery-grid figure::after{
    content:attr(data-index);
    position:absolute;
    left:10px;
    bottom:9px;
    padding:4px 6px;
    background:rgba(242,239,232,.84);
    font-size:7px;
    letter-spacing:.12em;
    color:#111;
}

/* Editorial grid: deliberately irregular but controlled. */
.pb-project-gallery-editorial .pb-project-gallery-grid{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:clamp(12px,1.4vw,22px);
}

.pb-project-gallery-editorial figure{grid-column:span 6;aspect-ratio:4/3}
.pb-project-gallery-editorial figure:nth-child(5n+1){grid-column:span 8;aspect-ratio:16/10}
.pb-project-gallery-editorial figure:nth-child(5n+2){grid-column:span 4;aspect-ratio:3/4}
.pb-project-gallery-editorial figure:nth-child(5n+3){grid-column:3/span 5;aspect-ratio:4/5}
.pb-project-gallery-editorial figure:nth-child(5n+4){grid-column:8/span 5;aspect-ratio:4/5}
.pb-project-gallery-editorial figure:nth-child(5n+5){grid-column:span 12;aspect-ratio:16/8.5}

/* Contact sheet: compact, almost archival. */
.pb-project-gallery-contact .pb-project-gallery-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}

.pb-project-gallery-contact figure{aspect-ratio:3/4}

/* Film strip: optional horizontal editorial sequence. */
.pb-project-gallery-filmstrip{
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding-left:max(42px,calc((100vw - 1600px)/2));
    padding-right:max(42px,calc((100vw - 1600px)/2));
    overflow:hidden;
}

.pb-project-gallery-filmstrip .pb-project-gallery-grid{
    display:flex;
    gap:14px;
    width:100%;
    overflow-x:auto;
    padding-bottom:18px;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
}

.pb-project-gallery-filmstrip figure{
    flex:0 0 min(48vw,760px);
    aspect-ratio:16/10;
    scroll-snap-align:center;
}

/* =========================================================
   EDITOR-ONLY EMPTY STATE
   ========================================================= */

.pb-project-editor-hint{
    margin:0 0 120px;
    padding:28px 30px;
    display:grid;
    gap:8px;
    border:1px dashed rgba(17,17,17,.28);
    background:rgba(255,255,255,.3);
}

.pb-project-editor-hint strong{font-size:18px}
.pb-project-editor-hint span{color:#666;max-width:760px;line-height:1.5}
.pb-project-editor-hint a{margin-top:8px;color:#111;text-decoration:none;font-size:10px;letter-spacing:.12em;text-transform:uppercase}

/* =========================================================
   CREDITS
   ========================================================= */

.pb-project-credits{
    padding:95px 0 120px;
    border-top:1px solid var(--pb-project-line);
}

.pb-project-credit-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border-top:1px solid rgba(17,17,17,.16);
    border-left:1px solid rgba(17,17,17,.16);
}

.pb-project-credit-grid div{
    min-height:96px;
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:8px;
    border-right:1px solid rgba(17,17,17,.16);
    border-bottom:1px solid rgba(17,17,17,.16);
}

.pb-project-credit-grid span{
    font-size:9px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--pb-project-muted);
}

.pb-project-credit-grid strong{
    font-family:var(--pb-font-accent, Georgia, "Times New Roman", serif);
    font-size:20px;
    font-weight:400;
}

/* =========================================================
   NEXT PROJECT
   ========================================================= */

.pb-project-next{
    padding:110px 0 135px;
    border-top:1px solid var(--pb-project-line);
}

.pb-project-next>a{
    position:relative;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    color:#111;
    text-decoration:none;
    font-size:clamp(46px,6.8vw,116px);
    line-height:.85;
    letter-spacing:-.06em;
    text-transform:uppercase;
    overflow:hidden;
}

.pb-project-next-arrow{font-size:.35em;letter-spacing:0}

.pb-project-next img{
    position:absolute;
    right:8%;
    top:50%;
    width:min(32vw,480px);
    aspect-ratio:16/10;
    object-fit:cover;
    transform:translateY(-45%) rotate(2deg);
    opacity:0;
    pointer-events:none;
    transition:opacity .28s ease,transform .45s cubic-bezier(.2,.8,.2,1);
    z-index:2;
}

.pb-project-next>a:hover img{opacity:1;transform:translateY(-50%) rotate(0)}

.pb-project-footer{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:16px 0 28px;
    border-top:1px solid var(--pb-project-line);
    font-size:9px;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:#777;
}

.pb-project-footer a{color:inherit;text-decoration:none}

/* =========================================================
   PRESET RHYTHM VARIATIONS
   ========================================================= */

.pb-project-layout-film .pb-project-film-zone:first-of-type{margin-top:0}
.pb-project-layout-journal .pb-project-gallery{padding-top:80px}
.pb-project-layout-journal .pb-project-gallery-editorial figure:nth-child(odd){filter:saturate(.93)}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media(max-width:1000px){
    .pb-project-credit-grid{grid-template-columns:repeat(2,1fr)}
    .pb-project-gallery-contact .pb-project-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:700px){
    .pb-project-main,
    .pb-project-footer{width:calc(100% - 40px)}
    .pb-project-page>.pbx-site-header{padding:22px 20px 0}

    .pb-project-hero{padding:14vh 0 72px}
    .pb-project-title-main{font-size:14vw}
    .pb-project-meta-row{gap:10px 18px}
    .pb-project-hero-media{margin-top:42px}
    .pb-project-hero-image img,
    .pb-project-hero-video,
    .pb-project-hero-video video,
    .pb-project-hero-video iframe{height:auto;min-height:0;max-height:none;aspect-ratio:4/5}
    .pb-project-hero-video iframe{aspect-ratio:16/9}

    .pb-project-lead,
    .pb-project-story{
        grid-template-columns:1fr;
        gap:24px;
        padding:72px 0 88px;
    }

    .pb-project-lead-copy{font-size:9.5vw}
    .pb-project-lead-support{margin-top:30px;font-size:15px}

    .pb-project-feature{padding-bottom:90px}
    .pb-project-feature figcaption{width:calc(100% - 40px);font-size:8px}

    .pb-project-story h2{font-size:10vw}
    .pb-project-story-copy{margin-top:30px;font-size:15px}

    .pb-project-diptych{
        grid-template-columns:1fr;
        gap:10px;
        padding-bottom:90px;
    }
    .pb-project-diptych-right{padding-top:0}
    .pb-project-diptych-left img,
    .pb-project-diptych-right img{height:auto;max-height:none}

    .pb-project-statement{padding:82px 0 95px}
    .pb-project-statement>div{font-size:12vw}

    .pb-project-film-zone{padding:82px 0 95px}
    .pb-project-film-inner{width:calc(100% - 40px)}
    .pb-project-film-frame{min-height:0}

    .pb-project-gallery{padding:82px 0 100px}
    .pb-project-gallery-head{font-size:8px}
    .pb-project-gallery-editorial .pb-project-gallery-grid{grid-template-columns:1fr;gap:10px}
    .pb-project-gallery-editorial figure,
    .pb-project-gallery-editorial figure:nth-child(n){grid-column:auto;aspect-ratio:4/5}
    .pb-project-gallery-editorial figure:nth-child(3n+1){aspect-ratio:4/3}

    .pb-project-gallery-contact .pb-project-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .pb-project-gallery-filmstrip{padding-left:20px;padding-right:20px}
    .pb-project-gallery-filmstrip figure{flex-basis:78vw;aspect-ratio:4/5}

    .pb-project-credit-grid{grid-template-columns:1fr}
    .pb-project-credits{padding:80px 0 95px}
    .pb-project-next{padding:80px 0 95px}
    .pb-project-next>a{font-size:12vw}
    .pb-project-next img{display:none}
    .pb-project-footer{flex-direction:column}
}

.pb-project-legacy{
    max-width:980px;
    margin:0 auto 120px;
    font-family:var(--pb-font-accent, Georgia, "Times New Roman", serif);
    font-size:clamp(20px,2vw,30px);
    line-height:1.45;
}
.pb-project-legacy>*:first-child{margin-top:0}
.pb-project-legacy img{max-width:100%;height:auto}


/* V3 block composition compatibility */
.pb-project-main-blocks > .wp-block-philbeis-project-hero,
.pb-project-main-blocks > .wp-block-philbeis-project-intro,
.pb-project-main-blocks > .wp-block-philbeis-project-full-image,
.pb-project-main-blocks > .wp-block-philbeis-project-story,
.pb-project-main-blocks > .wp-block-philbeis-project-diptych,
.pb-project-main-blocks > .wp-block-philbeis-project-statement,
.pb-project-main-blocks > .wp-block-philbeis-project-motion,
.pb-project-main-blocks > .wp-block-philbeis-project-gallery,
.pb-project-main-blocks > .wp-block-philbeis-project-credits,
.pb-project-main-blocks > .wp-block-philbeis-next-project { max-width:none; margin-left:0; margin-right:0; }
@media(prefers-reduced-motion:reduce){.pbv-project-block *{animation:none!important;transition:none!important;}}
