/* PROENÇA 3.11.0 — camada estrutural sem paleta legada. Cores controladas pelo Design System 3.11.0. */
.pfi-public-portfolio{max-width:1320px;margin:0 auto;padding:28px 18px 54px;display:flex;flex-direction:column;gap:26px;}
.pfi-public-section,.pfi-public-hero,.pfi-public-cta{border-radius:28px;overflow:hidden;}
.pfi-public-hero{position:relative;min-height:520px;}
.pfi-public-hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.18;filter:saturate(1.1);}
.pfi-public-hero__mobile-image{display:none;}
.pfi-public-hero__overlay{position:absolute;inset:0;}
.pfi-public-hero__content{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:24px;padding:48px;}
.pfi-public-badge{display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;}
.pfi-public-hero h1{margin:14px 0 16px;font-size:clamp(2.2rem,5vw,4rem);line-height:1.02;max-width:780px;}
.pfi-public-hero p{margin:0;max-width:760px;font-size:1.05rem;line-height:1.78;}
.pfi-public-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;}
.pfi-public-btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:0 18px;border-radius:14px;font-weight:700;text-decoration:none;transition:.18s ease;}
.pfi-public-btn--primary:hover{transform:translateY(-1px);}

.pfi-public-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-content:end;}
.pfi-public-stat{padding:18px 18px 16px;border-radius:20px;backdrop-filter:blur(8px);}
.pfi-public-stat strong{display:block;font-size:1rem;margin-bottom:6px;}.pfi-public-stat span{display:block;line-height:1.6;font-size:.94rem;}
.pfi-public-section{padding:30px;}
.pfi-public-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;}.pfi-public-heading h2{margin:0;font-size:1.8rem;}.pfi-public-heading p{margin:8px 0 0;max-width:850px;line-height:1.7;}
.pfi-public-split{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;}
.pfi-public-box{border-radius:22px;padding:22px;}
.pfi-public-box--soft{margin-bottom:18px;}
.pfi-public-box h3{margin:0 0 12px;font-size:1.15rem;}.pfi-public-box p{margin:0;line-height:1.7;}
.pfi-public-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;}.pfi-public-list li{position:relative;padding-left:18px;line-height:1.6;}.pfi-public-list li:before{content:"•";position:absolute;left:0;top:0;font-size:1.15rem;}
.pfi-public-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}.pfi-service-card,.pfi-showcase-card,.pfi-public-photo-card{display:flex;flex-direction:column;overflow:hidden;border-radius:22px;}
.pfi-service-card__body,.pfi-showcase-card__body,.pfi-public-photo-card__body{padding:18px;}.pfi-service-card h3,.pfi-showcase-card h3,.pfi-public-photo-card h3{margin:0 0 10px;font-size:1.08rem;}.pfi-service-card p,.pfi-showcase-card p,.pfi-public-photo-card p{margin:0;line-height:1.65;}
.pfi-showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}.pfi-showcase-card__image{aspect-ratio:4/3;background-size:cover;background-position:top center;}
.pfi-public-case{display:grid;grid-template-columns:.95fr 1.05fr;gap:20px;align-items:stretch;}.pfi-case-visual{min-height:420px;border-radius:22px;background-size:cover;background-position:center;}
.pfi-case-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;}.pfi-case-meta div{padding:12px 14px;border-radius:14px;}.pfi-case-meta strong{display:block;font-size:.88rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;}.pfi-case-meta span{display:block;line-height:1.45;font-size:.95rem;}
.pfi-public-gallery{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-auto-rows:230px;gap:14px;}
.pfi-public-gallery figure{margin:0;position:relative;overflow:hidden;border-radius:20px;}
.pfi-public-gallery figure:first-child{grid-row:span 2;}
.pfi-public-gallery img,.pfi-public-photo-card__image img{width:100%;height:100%;display:block;object-fit:cover;}
.pfi-public-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;line-height:1.4;}
.pfi-public-gallery figcaption strong{display:block;font-size:1rem;font-weight:800;margin-bottom:5px;}
.pfi-public-gallery figcaption span{display:block;font-size:.9rem;}
.pfi-public-gallery--featured{grid-template-columns:1.2fr 1fr 1fr;grid-auto-rows:220px;}
.pfi-public-gallery--featured figure:first-child{grid-column:span 2;grid-row:span 2;}
.pfi-public-gallery--featured figure:nth-child(4){grid-row:span 2;}
.pfi-public-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:18px;}
.pfi-public-photo-card__image{aspect-ratio:4/3;}
.pfi-public-cta{padding:28px 30px;display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:center;}.pfi-public-cta h2{margin:0 0 10px;font-size:1.9rem;}.pfi-public-cta p{margin:0;line-height:1.8;}.pfi-public-note{padding:18px;border-radius:18px;line-height:1.7;}
.pfi-public-gallery--institutional{grid-template-columns:1.45fr .8fr .8fr;grid-auto-rows:300px;}
.pfi-public-gallery--institutional figure:first-child{grid-row:auto;}
@media (max-width:1150px){.pfi-public-hero__content,.pfi-public-split,.pfi-public-services,.pfi-showcase-grid,.pfi-public-case,.pfi-public-cta,.pfi-public-strip{grid-template-columns:1fr 1fr;}.pfi-public-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:240px;}.pfi-public-gallery figure:first-child{grid-column:1/-1;grid-row:auto;}.pfi-public-gallery--featured figure:first-child,.pfi-public-gallery--featured figure:nth-child(4){grid-column:auto;grid-row:auto;}}
@media (max-width:1000px){.pfi-public-gallery--institutional{grid-template-columns:1fr;grid-auto-rows:280px;}.pfi-public-strip{grid-template-columns:1fr 1fr;}}
@media (max-width:780px){.pfi-public-portfolio{padding:16px 12px 40px;}.pfi-public-hero__content,.pfi-public-section,.pfi-public-cta{padding:20px;}.pfi-public-panel,.pfi-public-list,.pfi-public-gallery,.pfi-public-strip{grid-template-columns:1fr;}.pfi-public-services,.pfi-showcase-grid{grid-template-columns:1fr;}.pfi-case-meta{grid-template-columns:1fr;}.pfi-public-gallery--featured{grid-template-columns:1fr;}.pfi-public-gallery--featured figure:first-child,.pfi-public-gallery--featured figure:nth-child(4){grid-column:auto;grid-row:auto;}}

/* 3.3.8 — Home pública corrigida para celulares */
body.home:not(.logged-in),
body.home:not(.logged-in) .pfi-app-shell,
body.home:not(.logged-in) .pfi-site-stage,
body.home:not(.logged-in) .pfi-site-layout,
body.home:not(.logged-in) .pfi-main,
body.home:not(.logged-in) .pfi-public-portfolio,
body.home:not(.logged-in) .pfi-public-hero,
body.home:not(.logged-in) .pfi-public-section,
body.home:not(.logged-in) .pfi-public-cta{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
}
body.home:not(.logged-in){overflow-x:clip;}
body.home:not(.logged-in) .pfi-app-shell,
body.home:not(.logged-in) .pfi-site-stage{overflow-x:clip;}

@media (max-width:900px){
    body.home:not(.logged-in) .pfi-public-hero__content{
        grid-template-columns:minmax(0,1fr);
        gap:22px;
    }
    body.home:not(.logged-in) .pfi-public-hero__content>*,
    body.home:not(.logged-in) .pfi-public-panel,
    body.home:not(.logged-in) .pfi-public-stat{
        min-width:0;
        max-width:100%;
    }
}

@media (max-width:782px){
    body.home:not(.logged-in){padding-bottom:0;}
    body.home:not(.logged-in) .pfi-site-layout,
    body.home:not(.logged-in) .pfi-site-layout.pfi-layout--portal,
    body.home:not(.logged-in) .pfi-site-layout.pfi-layout--feed,
    body.home:not(.logged-in) .pfi-site-layout.pfi-layout--content-sidebar{
        width:100%;
        max-width:100%;
        padding-top:0;
        margin:0;
    }
    body.home:not(.logged-in) .pfi-main,
    body.home:not(.logged-in) .pfi-main--portal{
        width:100%;
        max-width:100%;
        padding:0;
        margin:0;
    }
    body.home:not(.logged-in) .pfi-public-portfolio{
        width:100%;
        padding:14px 12px 38px;
        gap:18px;
    }

    /* Cabeçalho público compacto: menu, logo e entrar. */
    body.home:not(.logged-in) .pfi-header{
        height:62px;
    }
    body.home:not(.logged-in) .pfi-header__inner{
        grid-template-columns:42px minmax(0,1fr) auto;
        width:100%;
        padding:0 12px;
        gap:10px;
    }
    body.home:not(.logged-in) .pfi-header__menu-toggle{
        display:inline-grid;
        width:40px;
        height:40px;
        border-radius:12px;
    }
    body.home:not(.logged-in) .pfi-brand{
        justify-self:center;
        gap:0;
    }
    body.home:not(.logged-in) .pfi-brand__mark{
        width:44px;
        height:44px;
        border-radius:13px;
        
    }
    body.home:not(.logged-in) .pfi-brand__text{
        display:none!important;
    }
    body.home:not(.logged-in) .pfi-header__actions{
        gap:0;
    }
    body.home:not(.logged-in) .pfi-header__actions .pfi-button{
        min-height:40px;
        padding:0 15px;
        border-radius:12px;
        font-size:.82rem;
    }

    /* Hero em coluna única, com imagem antes do texto. */
    body.home:not(.logged-in) .pfi-public-hero{
        min-height:0;
        border-radius:22px;
    }
    body.home:not(.logged-in) .pfi-public-hero__bg,
    body.home:not(.logged-in) .pfi-public-hero__overlay{
        display:none;
    }
    body.home:not(.logged-in) .pfi-public-hero__mobile-image{
        display:block;
        position:relative;
        width:100%;
        aspect-ratio:16/9;
        overflow:hidden;
        
        
    }
    body.home:not(.logged-in) .pfi-public-hero__mobile-image:after{
        content:"";
        position:absolute;
        inset:0;
        
        pointer-events:none;
    }
    body.home:not(.logged-in) .pfi-public-hero__mobile-image img{
        display:block;
        width:100%;
        height:100%;
        object-fit:cover;
        object-position:center;
    }
    body.home:not(.logged-in) .pfi-public-hero__content{
        display:grid;
        grid-template-columns:minmax(0,1fr)!important;
        gap:22px;
        padding:24px 20px 22px;
    }
    body.home:not(.logged-in) .pfi-public-badge{
        padding:7px 12px;
        font-size:.7rem;
        line-height:1.3;
        letter-spacing:.07em;
    }
    body.home:not(.logged-in) .pfi-public-hero h1{
        max-width:100%;
        margin:14px 0 12px;
        font-size:clamp(2.1rem,10.2vw,2.75rem);
        line-height:1.03;
        letter-spacing:-.045em;
        overflow-wrap:anywhere;
    }
    body.home:not(.logged-in) .pfi-public-hero p{
        max-width:100%;
        font-size:1rem;
        line-height:1.62;
    }
    body.home:not(.logged-in) .pfi-public-actions{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
        margin-top:18px;
    }
    body.home:not(.logged-in) .pfi-public-actions .pfi-public-btn{
        width:100%;
        min-width:0;
        min-height:46px;
        padding:0 12px;
        text-align:center;
        font-size:.82rem;
        line-height:1.25;
    }
    body.home:not(.logged-in) .pfi-public-hero .pfi-public-actions .pfi-public-btn:nth-child(n/**/+3){
        display:none;
    }

    /* Indicadores 2 x 2, sem vazamento horizontal. */
    body.home:not(.logged-in) .pfi-public-panel{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:10px;
        width:100%;
    }
    body.home:not(.logged-in) .pfi-public-stat{
        padding:14px 13px;
        border-radius:16px;
        overflow:hidden;
    }
    body.home:not(.logged-in) .pfi-public-stat strong{
        margin-bottom:5px;
        font-size:.88rem;
    }
    body.home:not(.logged-in) .pfi-public-stat span{
        font-size:.76rem;
        line-height:1.45;
        overflow-wrap:anywhere;
    }

    body.home:not(.logged-in) .pfi-public-section,
    body.home:not(.logged-in) .pfi-public-cta{
        padding:22px 18px;
        border-radius:22px;
    }
    body.home:not(.logged-in) .pfi-public-heading{
        display:block;
        margin-bottom:16px;
    }
    body.home:not(.logged-in) .pfi-public-heading h2,
    body.home:not(.logged-in) .pfi-public-cta h2{
        font-size:1.48rem;
        line-height:1.15;
    }
    body.home:not(.logged-in) .pfi-public-heading p,
    body.home:not(.logged-in) .pfi-public-box p,
    body.home:not(.logged-in) .pfi-service-card p,
    body.home:not(.logged-in) .pfi-public-photo-card p,
    body.home:not(.logged-in) .pfi-public-cta p,
    body.home:not(.logged-in) .pfi-public-note{
        font-size:.93rem;
        line-height:1.62;
    }
    body.home:not(.logged-in) .pfi-public-split,
    body.home:not(.logged-in) .pfi-public-services,
    body.home:not(.logged-in) .pfi-showcase-grid,
    body.home:not(.logged-in) .pfi-public-case,
    body.home:not(.logged-in) .pfi-public-cta,
    body.home:not(.logged-in) .pfi-public-strip{
        grid-template-columns:minmax(0,1fr)!important;
    }
    body.home:not(.logged-in) .pfi-public-list{
        grid-template-columns:minmax(0,1fr)!important;
    }
    body.home:not(.logged-in) .pfi-public-gallery,
    body.home:not(.logged-in) .pfi-public-gallery--featured,
    body.home:not(.logged-in) .pfi-public-gallery--institutional{
        grid-template-columns:minmax(0,1fr)!important;
        grid-auto-rows:auto;
    }
    body.home:not(.logged-in) .pfi-public-gallery figure,
    body.home:not(.logged-in) .pfi-public-gallery figure:first-child,
    body.home:not(.logged-in) .pfi-public-gallery--featured figure:first-child,
    body.home:not(.logged-in) .pfi-public-gallery--featured figure:nth-child(4){
        grid-column:auto!important;
        grid-row:auto!important;
        min-height:230px;
        aspect-ratio:4/3;
    }
    body.home:not(.logged-in) .pfi-public-gallery--institutional figure{
        aspect-ratio:4/3;
        min-height:0;
    }
}

@media (max-width:390px){
    body.home:not(.logged-in) .pfi-public-portfolio{padding-right:10px;padding-left:10px;}
    body.home:not(.logged-in) .pfi-public-hero__content{padding:21px 16px 20px;}
    body.home:not(.logged-in) .pfi-public-hero h1{font-size:2rem;}
    body.home:not(.logged-in) .pfi-public-actions{grid-template-columns:1fr;}
    body.home:not(.logged-in) .pfi-public-panel{grid-template-columns:1fr!important;}
}


/* ========================================================================
 * 3.10.28 — Identidade pública clara PROENÇA
 * Branco + azul-marinho + vermelho, com contraste AA e mídia preservada.
 * ======================================================================== */




.pfi-public-hero__bg{opacity:.10!important;filter:saturate(.8) contrast(.92)!important;}








.pfi-public-panel{align-content:end;}












@media (max-width:782px){
  
  
}

/* PROENÇA 3.10.31 — Site público claro estrutural */



/* ========================================================================
   PROENÇA 3.11.31 — home pública com legendas visíveis nas imagens
   ======================================================================== */
body.home:not(.logged-in) .pfi-public-gallery figure,
body.home:not(.logged-in) .pfi-public-gallery--featured figure,
body.home:not(.logged-in) .pfi-public-gallery--institutional figure {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    border-radius:24px;
    box-shadow:0 20px 38px rgba(7,34,69,.12);
}

body.home:not(.logged-in) .pfi-public-gallery figure::before,
body.home:not(.logged-in) .pfi-public-gallery--featured figure::before,
body.home:not(.logged-in) .pfi-public-gallery--institutional figure::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:
        linear-gradient(180deg, rgba(6,24,48,.06) 0%, rgba(6,24,48,.12) 26%, rgba(6,24,48,.18) 46%, rgba(6,24,48,.76) 78%, rgba(6,24,48,.92) 100%),
        linear-gradient(120deg, rgba(13,63,123,.16) 0%, rgba(11,99,165,.08) 100%);
    pointer-events:none;
}

body.home:not(.logged-in) .pfi-public-gallery figure::after,
body.home:not(.logged-in) .pfi-public-gallery--featured figure::after,
body.home:not(.logged-in) .pfi-public-gallery--institutional figure::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:6px;
    z-index:2;
    background:linear-gradient(90deg,#0b63a5 0%,#1673b8 34%,#0e5aa4 100%);
    pointer-events:none;
}

body.home:not(.logged-in) .pfi-public-gallery figcaption,
body.home:not(.logged-in) .pfi-public-gallery--featured figcaption,
body.home:not(.logged-in) .pfi-public-gallery--institutional figcaption {
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:3;
    padding:22px 20px 20px;
    background:linear-gradient(180deg, rgba(6,24,48,0) 0%, rgba(6,24,48,.14) 18%, rgba(6,24,48,.62) 54%, rgba(6,24,48,.92) 100%);
    backdrop-filter:blur(2px);
}

body.home:not(.logged-in) .pfi-public-gallery figcaption strong,
body.home:not(.logged-in) .pfi-public-gallery--featured figcaption strong,
body.home:not(.logged-in) .pfi-public-gallery--institutional figcaption strong {
    display:inline-block;
    margin:0 0 8px;
    padding:8px 12px;
    border-radius:999px;
    background:linear-gradient(135deg, rgba(11,99,165,.92) 0%, rgba(15,90,164,.92) 100%);
    color:#ffffff !important;
    font-size:1.04rem;
    font-weight:900;
    letter-spacing:.01em;
    line-height:1.2;
    text-shadow:0 1px 2px rgba(0,0,0,.22);
    box-shadow:0 12px 20px rgba(7,34,69,.16);
}

body.home:not(.logged-in) .pfi-public-gallery figcaption span,
body.home:not(.logged-in) .pfi-public-gallery--featured figcaption span,
body.home:not(.logged-in) .pfi-public-gallery--institutional figcaption span {
    display:block;
    max-width:95%;
    color:rgba(255,255,255,.96) !important;
    font-size:.97rem;
    line-height:1.58;
    text-shadow:0 1px 3px rgba(0,0,0,.38);
}

body.home:not(.logged-in) .pfi-public-gallery img,
body.home:not(.logged-in) .pfi-public-gallery--featured img,
body.home:not(.logged-in) .pfi-public-gallery--institutional img {
    transform:scale(1.01);
    transition:transform .35s ease;
}

body.home:not(.logged-in) .pfi-public-gallery figure:hover img,
body.home:not(.logged-in) .pfi-public-gallery--featured figure:hover img,
body.home:not(.logged-in) .pfi-public-gallery--institutional figure:hover img {
    transform:scale(1.035);
}

body.home:not(.logged-in) .pfi-public-gallery figure:hover figcaption strong,
body.home:not(.logged-in) .pfi-public-gallery--featured figure:hover figcaption strong,
body.home:not(.logged-in) .pfi-public-gallery--institutional figure:hover figcaption strong {
    box-shadow:0 16px 24px rgba(7,34,69,.22);
}

@media (max-width: 782px) {
    body.home:not(.logged-in) .pfi-public-gallery figure,
    body.home:not(.logged-in) .pfi-public-gallery--featured figure,
    body.home:not(.logged-in) .pfi-public-gallery--institutional figure {
        border-radius:20px;
    }

    body.home:not(.logged-in) .pfi-public-gallery figcaption,
    body.home:not(.logged-in) .pfi-public-gallery--featured figcaption,
    body.home:not(.logged-in) .pfi-public-gallery--institutional figcaption {
        padding:18px 16px 17px;
    }

    body.home:not(.logged-in) .pfi-public-gallery figcaption strong,
    body.home:not(.logged-in) .pfi-public-gallery--featured figcaption strong,
    body.home:not(.logged-in) .pfi-public-gallery--institutional figcaption strong {
        font-size:.95rem;
        padding:7px 11px;
    }

    body.home:not(.logged-in) .pfi-public-gallery figcaption span,
    body.home:not(.logged-in) .pfi-public-gallery--featured figcaption span,
    body.home:not(.logged-in) .pfi-public-gallery--institutional figcaption span {
        max-width:100%;
        font-size:.9rem;
        line-height:1.5;
    }
}
