/* FESPUMEB 2026 — identidade exclusiva do portal */
:root{
    --fm-blue:#263b8f;
    --fm-blue-dark:#14245e;
    --fm-green:#087a45;
    --fm-red:#ef3d45;
    --fm-ink:#182033;
    --fm-muted:#687286;
    --fm-soft:#f3f6fa;
    --fm-line:#dfe5ee;
    --fm-white:#fff;
    --fm-shell:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.fm-site{margin:0;background:#fff;color:var(--fm-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.5}
.fm-site a{color:inherit;text-decoration:none}
.fm-shell{width:min(var(--fm-shell),calc(100% - 40px));margin:0 auto}
.fm-topline{background:var(--fm-blue-dark);color:#dbe4ff;font-size:12px}
.fm-topline__inner{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.fm-topline__place{color:#fff;font-weight:650}
.fm-brandbar{background:#fff}
.fm-brandbar__inner{min-height:132px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.fm-brand{display:block;max-width:880px}
.fm-brand img{display:block;max-width:100%;height:auto}
.fm-join{flex:0 0 auto;border:1px solid var(--fm-line);border-radius:999px;padding:12px 17px;color:var(--fm-blue-dark);font-size:13px;font-weight:750;transition:.18s}
.fm-join:hover{border-color:var(--fm-blue);transform:translateY(-1px)}
.fm-nav-wrap{position:sticky;top:0;z-index:9990;background:linear-gradient(90deg,var(--fm-blue-dark),var(--fm-blue));box-shadow:0 1px 0 rgba(255,255,255,.08)}
.fm-nav-wrap.is-detached{box-shadow:0 12px 28px rgba(16,33,82,.18)}
.fm-nav{min-height:60px;display:flex;align-items:center}
.fm-menu{display:flex;align-items:stretch;min-height:60px}
.fm-menu>a,.fm-menu__drop{display:flex;align-items:center;border:0;background:transparent;color:#fff;padding:0 18px;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.fm-menu>a:hover,.fm-menu__drop:hover{background:rgba(255,255,255,.08)}
.fm-menu__group{position:relative;display:flex}
.fm-menu__submenu{display:none;position:absolute;top:60px;left:0;width:235px;padding:8px;background:#fff;border-radius:0 0 12px 12px;box-shadow:0 18px 40px rgba(18,34,78,.2)}
.fm-menu__drop[aria-expanded="true"]+.fm-menu__submenu{display:grid}
.fm-menu__submenu a{padding:11px 12px;border-radius:8px;color:var(--fm-ink);font-size:13px;font-weight:650}
.fm-menu__submenu a:hover{background:var(--fm-soft);color:var(--fm-blue)}
.fm-search{margin-left:auto;display:flex;align-items:center}
.fm-menu-toggle{display:none}
.fm-opening{padding:46px 0 54px;background:linear-gradient(180deg,#f7f9fc 0,#fff 100%)}
.fm-opening__heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}
.fm-eyebrow{display:block;margin-bottom:8px;color:var(--fm-green);font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.fm-opening__heading h1,.fm-section-title h2,.fm-page-hero h1{margin:0;max-width:780px;font-size:clamp(34px,4.2vw,58px);line-height:1.01;letter-spacing:-.045em}
.fm-arrow-link{font-weight:750;color:var(--fm-blue);white-space:nowrap}
.fm-lead{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(300px,.72fr);gap:22px}
.fm-lead__hero{min-height:520px}
.fm-hero{position:relative;height:520px;overflow:hidden;border-radius:20px;background:#17234f}
.fm-hero img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.fm-hero:hover img{transform:scale(1.025)}
.fm-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,17,50,.02) 28%,rgba(9,17,50,.92) 100%)}
.fm-hero__content{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:34px;color:#fff}
.fm-hero__content span,.fm-card__meta,.fm-radar__meta{font-size:12px;font-weight:700;opacity:.82}
.fm-hero__content h2{margin:7px 0 0;max-width:850px;font-size:clamp(28px,3.2vw,46px);line-height:1.05;letter-spacing:-.035em}
.fm-lead__rail{border-top:5px solid var(--fm-red);background:#fff;box-shadow:0 12px 36px rgba(24,32,51,.08);border-radius:4px 4px 18px 18px;padding:22px}
.fm-rail-title{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--fm-line);padding-bottom:14px;margin-bottom:2px}
.fm-rail-title span{font-size:18px;font-weight:850}
.fm-rail-title small{color:var(--fm-muted);font-size:11px}
.fm-radar{display:grid;grid-template-columns:90px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--fm-line)}
.fm-radar:last-child{border-bottom:0}
.fm-radar img{width:90px;height:72px;object-fit:cover;border-radius:9px;background:#edf1f6}
.fm-radar h3{margin:4px 0 0;font-size:15px;line-height:1.22;letter-spacing:-.01em}
.fm-radar:hover h3{color:var(--fm-blue)}
.fm-news{padding:64px 0 76px}
.fm-news__layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start}
.fm-section-title{margin-bottom:26px}
.fm-section-title h2{font-size:clamp(30px,3vw,44px)}
.fm-section-title p{max-width:670px;color:var(--fm-muted);font-size:17px}
.fm-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 22px}
.fm-card{display:block}
.fm-card__image{height:220px;overflow:hidden;border-radius:14px;background:#edf1f6}
.fm-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.fm-card:hover .fm-card__image img{transform:scale(1.025)}
.fm-card__body{padding:14px 2px 0}
.fm-card__meta{color:var(--fm-green);opacity:1}
.fm-card h3{margin:6px 0 0;font-size:20px;line-height:1.17;letter-spacing:-.025em}
.fm-card:hover h3{color:var(--fm-blue)}
.fm-button{display:inline-flex;margin-top:30px;background:var(--fm-blue-dark);color:#fff!important;border-radius:999px;padding:13px 20px;font-size:13px;font-weight:800}
.fm-sticky{position:sticky;top:88px;display:grid;gap:28px}
.fm-federation{padding:66px 0;background:var(--fm-blue-dark);color:#fff;position:relative;overflow:hidden}
.fm-federation::after{content:"";position:absolute;width:430px;height:430px;border:90px solid rgba(255,255,255,.035);border-radius:50%;right:-140px;top:-170px}
.fm-section-title--light{position:relative;z-index:1}
.fm-section-title--light .fm-eyebrow{color:#71dda9}
.fm-section-title--light p{color:#c9d3ef}
.fm-link-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.fm-link-grid a{min-height:170px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:22px;transition:.18s}
.fm-link-grid a:hover{background:#fff;color:var(--fm-blue-dark);transform:translateY(-3px)}
.fm-link-grid span{margin-bottom:auto;font-size:12px;opacity:.65}
.fm-link-grid strong{font-size:23px}
.fm-link-grid em{margin-top:5px;font-style:normal;font-size:13px;opacity:.74}
.fm-banners{padding:42px 0}
.fm-footer{background:#0d1535;color:#d9e0f1}
.fm-footer__accent{height:5px;background:linear-gradient(90deg,var(--fm-green) 0 35%,var(--fm-blue) 35% 76%,var(--fm-red) 76%)}
.fm-footer__grid{display:grid;grid-template-columns:1.45fr .8fr 1.15fr .8fr;gap:46px;padding-top:48px;padding-bottom:46px}
.fm-footer h2{margin:0 0 14px;color:#fff;font-size:14px}
.fm-footer p{margin:0 0 10px;font-size:13px;line-height:1.65}
.fm-footer a{display:block;margin:8px 0;font-size:13px}
.fm-footer a:hover{color:#fff}
.fm-footer__about strong{display:block;color:#fff;font-size:26px;letter-spacing:.03em}
.fm-footer__about span{font-size:11px;color:#94a0bd}
.fm-footer__bottom{border-top:1px solid rgba(255,255,255,.1)}
.fm-footer__bottom .fm-shell{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;color:#8793af}
.fm-page{padding:46px 0 72px}
.fm-page-hero{padding-bottom:28px;margin-bottom:30px;border-bottom:1px solid var(--fm-line)}
.fm-page-hero h1{font-size:clamp(34px,4vw,52px)}
.fm-page-hero p{max-width:700px;margin:12px 0 0;color:var(--fm-muted);font-size:17px}
.fm-scf-page{min-height:300px}
.fm-calendar{overflow:hidden;border:1px solid var(--fm-line);border-radius:18px;background:#fff;padding:12px;box-shadow:0 12px 34px rgba(24,32,51,.06)}
.fm-calendar iframe{display:block;width:100%;height:680px;border:0}
.fm-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.fm-contact-grid>a,.fm-contact-grid>div{display:flex;min-height:180px;flex-direction:column;padding:24px;border:1px solid var(--fm-line);border-radius:16px;background:#fff}
.fm-contact-grid small{color:var(--fm-green);font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.fm-contact-grid strong{margin-top:auto;font-size:22px}
.fm-contact-grid span{margin-top:8px;color:var(--fm-muted);font-size:13px}
.fm-contact-grid>a:hover{border-color:#b7c5e8;box-shadow:0 10px 28px rgba(24,32,51,.07)}
.fm-article-page{padding:44px 0 76px}
.fm-article-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:50px;align-items:start}
.fm-article-entry__header{padding-bottom:25px;margin-bottom:30px;border-bottom:1px solid var(--fm-line)}
.fm-article-entry__header h1{margin:0;max-width:960px;font-size:clamp(36px,4.2vw,56px);line-height:1.04;letter-spacing:-.04em}
.fm-article-entry__lead:empty{display:none}
.fm-article-entry__lead{margin:16px 0 0;max-width:900px;color:#5d687b;font-size:19px;line-height:1.5}
.fm-article-entry__meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px;color:#7b8495;font-size:12px}
.fm-article-entry__body{font-size:18px;line-height:1.68;color:#313949;overflow-wrap:anywhere}
.fm-article-entry__body p{margin:0 0 1.35em}
.fm-article-entry__body img,.fm-article-entry__body iframe,.fm-article-entry__body video{max-width:100%;height:auto}
.fm-article-entry__body figure{max-width:100%;margin:1.5em auto}
.fm-article-entry__body blockquote{margin:1.7em 0;padding:4px 0 4px 20px;border-left:4px solid var(--fm-green);color:#596376}
.fm-article-entry__body h2,.fm-article-entry__body h3{line-height:1.2;color:var(--fm-ink)}
@media(max-width:900px){
    .fm-shell{width:min(100% - 28px,var(--fm-shell))}
    .fm-topline__place,.fm-join{display:none}
    .fm-brandbar__inner{min-height:102px}
    .fm-brand{max-width:760px}
    .fm-menu-toggle{display:flex;align-items:center;gap:5px;border:0;background:transparent;color:#fff;padding:0 12px;height:58px}
    .fm-menu-toggle span{display:block;width:20px;height:2px;background:#fff}
    .fm-menu-toggle strong{margin-left:5px}
    .fm-nav{position:relative}
    .fm-menu{display:none;position:absolute;top:58px;left:-14px;right:-14px;min-height:0;flex-direction:column;background:#fff;box-shadow:0 18px 38px rgba(12,28,70,.2);padding:10px}
    .fm-menu.is-open{display:flex}
    .fm-menu>a,.fm-menu__drop{width:100%;min-height:48px;justify-content:space-between;color:var(--fm-ink);padding:0 14px;border-radius:8px}
    .fm-menu__group{display:block}
    .fm-menu__submenu{position:static;width:auto;box-shadow:none;background:var(--fm-soft);border-radius:8px;margin:0 8px 8px}
    .fm-search{margin-left:auto}
    .fm-lead,.fm-news__layout,.fm-article-layout{grid-template-columns:1fr}
    .fm-lead__hero,.fm-hero{min-height:430px;height:430px}
    .fm-news__aside,.fm-article-aside{border-top:1px solid var(--fm-line);padding-top:30px}
    .fm-sticky{position:static}
    .fm-footer__grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
    .fm-topline__inner{min-height:32px}
    .fm-brandbar__inner{min-height:86px}
    .fm-opening{padding-top:30px}
    .fm-opening__heading{align-items:start;flex-direction:column}
    .fm-opening__heading h1{font-size:38px}
    .fm-lead__hero,.fm-hero{min-height:365px;height:365px}
    .fm-hero__content{padding:22px}
    .fm-hero__content h2{font-size:28px}
    .fm-card-grid,.fm-link-grid,.fm-contact-grid,.fm-footer__grid{grid-template-columns:1fr}
    .fm-card__image{height:205px}
    .fm-federation{padding:52px 0}
    .fm-footer__bottom .fm-shell{align-items:flex-start;flex-direction:column;justify-content:center;padding:15px 0}
    .fm-calendar iframe{height:620px}
    .fm-article-entry__header h1{font-size:36px}
    .fm-article-entry__body{font-size:17px}
}


/* ================================================================
   FESPUMEB 2026 v0.2 — HOME INSTITUCIONAL / BAIXA FREQUÊNCIA
   ================================================================ */

.fm-home .fm-opening,
.fm-home .fm-news,
.fm-home .fm-federation{display:none}

.fm-intro{
    position:relative;
    overflow:hidden;
    padding:76px 0 70px;
    background:
        radial-gradient(circle at 88% 15%,rgba(38,59,143,.13),transparent 32%),
        linear-gradient(135deg,#f8fafc 0%,#eef3f9 100%);
}
.fm-intro::before{
    content:"";
    position:absolute;
    width:520px;
    height:520px;
    border:100px solid rgba(8,122,69,.035);
    border-radius:50%;
    left:-300px;
    bottom:-360px;
}
.fm-intro__grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1.22fr) 420px;
    gap:72px;
    align-items:center;
}
.fm-intro__copy h1{
    margin:0;
    max-width:760px;
    font-size:clamp(44px,5.4vw,72px);
    line-height:.98;
    letter-spacing:-.052em;
}
.fm-intro__copy>p{
    max-width:680px;
    margin:22px 0 0;
    color:#596579;
    font-size:18px;
    line-height:1.62;
}
.fm-intro__actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:22px;
    margin-top:30px;
}
.fm-button--primary{
    margin-top:0;
    background:var(--fm-blue);
}
.fm-text-link{
    color:var(--fm-blue);
    font-size:14px;
    font-weight:800;
}
.fm-intro__panel{
    border-top:5px solid var(--fm-green);
    border-radius:5px 5px 20px 20px;
    padding:26px;
    background:#fff;
    box-shadow:0 22px 55px rgba(31,50,93,.11);
}
.fm-intro__label{
    display:block;
    padding-bottom:15px;
    margin-bottom:2px;
    border-bottom:1px solid var(--fm-line);
    color:var(--fm-muted);
    font-size:11px;
    font-weight:850;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.fm-intro__links a{
    display:grid;
    grid-template-columns:42px 1fr;
    grid-template-rows:auto auto;
    column-gap:12px;
    padding:18px 2px;
    border-bottom:1px solid var(--fm-line);
}
.fm-intro__links a:last-child{border-bottom:0;padding-bottom:4px}
.fm-intro__links small{
    grid-row:1/3;
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    border-radius:50%;
    background:var(--fm-soft);
    color:var(--fm-blue);
    font-weight:850;
}
.fm-intro__links strong{
    font-size:17px;
    line-height:1.15;
}
.fm-intro__links span{
    margin-top:3px;
    color:var(--fm-muted);
    font-size:12px;
}
.fm-intro__links a:hover strong{color:var(--fm-blue)}

.fm-updates{padding:68px 0 72px;background:#fff}
.fm-section-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
    margin-bottom:28px;
}
.fm-section-head h2{
    margin:0;
    font-size:clamp(32px,3.6vw,48px);
    line-height:1.02;
    letter-spacing:-.04em;
}
.fm-section-head p{
    max-width:680px;
    margin:13px 0 0;
    color:var(--fm-muted);
    font-size:16px;
}
.fm-updates__grid{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);
    gap:24px;
}
.fm-updates__hero .fm-hero{
    height:485px;
}
.fm-updates__list{
    border-top:5px solid var(--fm-red);
    border-radius:5px 5px 16px 16px;
    padding:6px 22px 10px;
    background:#f8fafc;
}
.fm-updates__list .fm-radar{
    grid-template-columns:96px 1fr;
    padding:20px 0;
}
.fm-updates__list .fm-radar img{
    width:96px;
    height:78px;
}

.fm-pillars{
    padding:72px 0 78px;
    background:#f3f6fa;
    border-top:1px solid #edf1f5;
    border-bottom:1px solid #e8edf3;
}
.fm-section-head--center{
    display:block;
    text-align:center;
}
.fm-section-head--center>div{margin:0 auto}
.fm-section-head--center h2,
.fm-section-head--center p{margin-left:auto;margin-right:auto}
.fm-pillars__grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-top:34px;
}
.fm-pillar{
    position:relative;
    min-height:245px;
    display:flex;
    flex-direction:column;
    padding:24px;
    overflow:hidden;
    border-radius:18px;
    color:#fff!important;
    transition:transform .2s ease,box-shadow .2s ease;
}
.fm-pillar::after{
    content:"";
    position:absolute;
    width:170px;
    height:170px;
    border:35px solid rgba(255,255,255,.07);
    border-radius:50%;
    right:-75px;
    top:-75px;
}
.fm-pillar:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 36px rgba(23,35,70,.16);
}
.fm-pillar--blue{background:var(--fm-blue)}
.fm-pillar--green{background:var(--fm-green)}
.fm-pillar--red{background:#c83e46}
.fm-pillar--ink{background:#202a3e}
.fm-pillar__number{
    position:relative;
    z-index:1;
    margin-bottom:auto;
    font-size:12px;
    font-weight:850;
    opacity:.72;
}
.fm-pillar strong{
    position:relative;
    z-index:1;
    font-size:23px;
    line-height:1.1;
}
.fm-pillar p{
    position:relative;
    z-index:1;
    min-height:60px;
    margin:8px 0 13px;
    color:rgba(255,255,255,.78);
    font-size:13px;
    line-height:1.5;
}
.fm-pillar em{
    position:relative;
    z-index:1;
    font-style:normal;
    font-size:12px;
    font-weight:800;
}

.fm-join-band{
    padding:0;
    background:#fff;
}
.fm-join-band__inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    margin-top:68px;
    margin-bottom:68px;
    padding:36px 40px;
    border-radius:22px;
    background:linear-gradient(110deg,var(--fm-blue-dark),#253f99);
    color:#fff;
}
.fm-join-band .fm-eyebrow{color:#83e4b6}
.fm-join-band h2{
    margin:0;
    font-size:clamp(27px,3vw,39px);
    line-height:1.08;
    letter-spacing:-.035em;
}
.fm-join-band p{
    margin:10px 0 0;
    color:#d4ddf5;
}
.fm-join-band__button{
    flex:0 0 auto;
    padding:14px 20px;
    border-radius:999px;
    background:#fff;
    color:var(--fm-blue-dark)!important;
    font-size:13px;
    font-weight:850;
}

.fm-banners{
    padding:48px 0;
    background:#f8fafc;
}
.fm-mini-head{
    padding-bottom:16px;
    margin-bottom:22px;
    border-bottom:1px solid var(--fm-line);
    color:var(--fm-muted);
    font-size:11px;
    font-weight:850;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.fm-most-read-strip{
    padding:50px 0 58px;
    background:#fff;
}

@media(max-width:980px){
    .fm-intro__grid{
        grid-template-columns:1fr;
        gap:34px;
    }
    .fm-intro__panel{max-width:none}
    .fm-updates__grid{grid-template-columns:1fr}
    .fm-updates__list{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:18px;
        border-top:0;
        padding:0;
        background:transparent;
    }
    .fm-updates__list .fm-radar{
        grid-template-columns:1fr;
        border:1px solid var(--fm-line);
        border-radius:14px;
        padding:0;
        overflow:hidden;
        background:#fff;
    }
    .fm-updates__list .fm-radar img{
        width:100%;
        height:150px;
        border-radius:0;
    }
    .fm-updates__list .fm-radar>div{padding:13px}
    .fm-pillars__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .fm-join-band__inner{align-items:flex-start;flex-direction:column}
}
@media(max-width:620px){
    .fm-intro{padding:48px 0}
    .fm-intro__copy h1{font-size:43px}
    .fm-intro__copy>p{font-size:16px}
    .fm-intro__actions{align-items:flex-start;flex-direction:column}
    .fm-section-head{align-items:flex-start;flex-direction:column}
    .fm-updates{padding:48px 0}
    .fm-updates__hero .fm-hero{height:365px}
    .fm-updates__list{grid-template-columns:1fr}
    .fm-updates__list .fm-radar{
        grid-template-columns:98px 1fr;
    }
    .fm-updates__list .fm-radar img{
        width:98px;
        height:100%;
        min-height:96px;
    }
    .fm-pillars{padding:54px 0}
    .fm-pillars__grid{grid-template-columns:1fr}
    .fm-pillar{min-height:210px}
    .fm-join-band__inner{
        margin-top:42px;
        margin-bottom:42px;
        padding:28px 24px;
    }
}


/* ================================================================
   FESPUMEB 2026 v0.3 — refinamentos de renderização
   ================================================================ */

/* A home de baixa frequência termina no conteúdo institucional/banners.
   "Mais lidas" foi removido porque 30 dias sem publicação é um estado normal. */
.fm-home .fm-most-read-strip{display:none}

/* Imagens de notícia: evita que ALT de imagem quebrada distorça o layout
   durante qualquer transição de ambiente. */
.fm-hero img,
.fm-radar img{
    display:block;
    font-size:0;
    color:transparent;
}

/* Mais respiro entre o cabeçalho da seção e os cards. */
.fm-updates .fm-section-head{position:relative;z-index:2;margin-bottom:34px}
.fm-updates__grid{position:relative;z-index:1}

/* Institucionais não devem parecer uma notícia comum. */
.fm-institutional .fm-article-layout{
    grid-template-columns:minmax(0,920px);
    justify-content:center;
}
.fm-institutional .fm-article-aside{display:none}
.fm-institutional .fm-article-entry__header{
    padding-bottom:22px;
    margin-bottom:34px;
}
.fm-institutional .fm-article-entry__header .fm-eyebrow,
.fm-institutional .fm-article-entry__meta{
    display:none;
}
.fm-institutional .fm-article-entry__header h1{
    max-width:860px;
    font-size:clamp(36px,4vw,52px);
    line-height:1.04;
}
.fm-institutional .fm-article-entry__lead:empty{display:none}
.fm-institutional .fm-article-entry__body{
    max-width:900px;
    font-size:17px;
    line-height:1.72;
}
.fm-institutional .fm-article-entry__body p{
    margin-bottom:1.15em;
}
.fm-institutional .fm-article-entry__body strong{
    color:#253044;
}

/* Só existe área de parceiros quando o componente retorna conteúdo. */
.fm-banners:empty{display:none}


/* ================================================================
   FESPUMEB 2026 v0.4 — Últimas notícias mais compacta
   ================================================================ */

.fm-updates{
    padding-top:58px;
    padding-bottom:58px;
}

.fm-updates__grid{
    align-items:start;
}

.fm-updates__hero{
    min-height:0;
}

.fm-updates__hero .fm-hero{
    height:380px;
    min-height:380px;
}

.fm-updates__hero .fm-hero__content{
    padding:26px 28px;
}

.fm-updates__hero .fm-hero__content h2{
    max-width:680px;
    font-size:clamp(28px,3vw,40px);
    line-height:1.06;
}

.fm-updates__list{
    align-self:start;
    height:auto;
    min-height:0;
}

.fm-updates__list .fm-radar{
    padding:17px 0;
}

.fm-updates__list .fm-radar img{
    width:92px;
    height:74px;
}

.fm-updates__list .fm-radar h3{
    font-size:14px;
    line-height:1.2;
}

.fm-updates__list .fm-radar__meta{
    font-size:11px;
}

@media(max-width:980px){
    .fm-updates__hero .fm-hero{
        height:400px;
        min-height:400px;
    }
}

@media(max-width:620px){
    .fm-updates{
        padding-top:44px;
        padding-bottom:44px;
    }

    .fm-updates__hero .fm-hero{
        height:340px;
        min-height:340px;
    }

    .fm-updates__hero .fm-hero__content{
        padding:20px;
    }

    .fm-updates__hero .fm-hero__content h2{
        font-size:27px;
    }

    .fm-updates__list .fm-radar img{
        width:92px;
        min-height:92px;
    }
}


/* ================================================================
   FESPUMEB 2026 v0.5 — enquadramento inteligente + pin sem repetição
   ================================================================ */

/* O bloco continua com altura fixa. Fotos verticais não são ampliadas
   para preencher toda a largura: ficam contidas sobre um fundo derivado
   da própria imagem. */
.fm-updates__hero .fm-hero.is-portrait{
    background:#111a36;
    isolation:isolate;
}

.fm-updates__hero .fm-hero.is-portrait::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:-22px;
    background-image:var(--fm-hero-image);
    background-size:cover;
    background-position:center;
    filter:blur(20px);
    opacity:.34;
    transform:scale(1.06);
}

.fm-updates__hero .fm-hero.is-portrait>img{
    position:relative;
    z-index:1;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center center;
}

.fm-updates__hero .fm-hero.is-portrait::after{
    z-index:2;
}

.fm-updates__hero .fm-hero.is-portrait .fm-hero__content{
    z-index:3;
}

/* A lateral contém apenas notícias diferentes do destaque fixado. */
.fm-updates__list .fm-radar{
    align-items:center;
}


/* ================================================================
   FESPUMEB 2026 v0.6 — contenção do hover da imagem de destaque
   ================================================================ */

/* A ampliação no hover deve acontecer somente dentro do recorte do hero. */
.fm-updates__hero .fm-hero{
    overflow:hidden;
}

/* O pseudo-fundo das imagens verticais também fica preso ao recorte. */
.fm-updates__hero .fm-hero.is-portrait::before{
    clip-path:inset(0 round 20px);
}

/* Em imagens verticais, não ampliamos a foto principal no hover.
   O contain deve permanecer estável dentro da moldura. */
.fm-updates__hero .fm-hero.is-portrait:hover>img{
    transform:none;
}

/* Em imagens horizontais, mantém o efeito de zoom, mas contido pelo hero. */
.fm-updates__hero .fm-hero:not(.is-portrait):hover>img{
    transform:scale(1.025);
}


/* ================================================================
   FESPUMEB 2026 v0.7 — destaque estático no hover
   ================================================================ */

/* O destaque não amplia mais a imagem em nenhuma proporção.
   Mantém apenas o comportamento de link/hover do texto. */
.fm-updates__hero .fm-hero:hover>img,
.fm-updates__hero .fm-hero:not(.is-portrait):hover>img,
.fm-updates__hero .fm-hero.is-portrait:hover>img{
    transform:none !important;
}


/* ================================================================
   FESPUMEB 2026 v0.8 — navegação refinada
   ================================================================ */

/* Menu mais leve: sem bloco sólido no hover, usa linha inferior. */
.fm-menu > a,
.fm-menu__drop{
    position:relative;
    background:transparent !important;
}

.fm-menu > a::after,
.fm-menu__drop::after{
    content:"";
    position:absolute;
    left:18px;
    right:18px;
    bottom:0;
    height:3px;
    background:#fff;
    transform:scaleX(0);
    transform-origin:center;
    transition:transform .18s ease;
}

.fm-menu > a:hover::after,
.fm-menu__group:hover > .fm-menu__drop::after,
.fm-menu__drop:focus-visible::after{
    transform:scaleX(1);
}

/* Desktop: submenu abre apenas passando o mouse ou pelo teclado. */
@media(min-width:901px){
    .fm-menu__group:hover .fm-menu__submenu,
    .fm-menu__group:focus-within .fm-menu__submenu{
        display:grid;
    }

    .fm-menu__drop[aria-expanded="true"] + .fm-menu__submenu{
        display:none;
    }

    .fm-menu__group:hover .fm-menu__drop[aria-expanded="true"] + .fm-menu__submenu,
    .fm-menu__group:focus-within .fm-menu__drop[aria-expanded="true"] + .fm-menu__submenu{
        display:grid;
    }
}

/* Buscar ocupa o espaço com texto + lupa, em vez de ícone solto. */
.fm-search{
    min-height:60px;
    gap:8px;
    padding-left:18px;
    border-left:1px solid rgba(255,255,255,.13);
    color:#fff;
}

.fm-search__label{
    font-size:14px;
    font-weight:700;
    pointer-events:none;
}

.fm-search .siscon-search-trigger,
.fm-search button,
.fm-search [role="button"]{
    color:#fff;
}

/* Remove o "quadrado claro" visual do gatilho quando o componente aplicar fundo. */
.fm-search .siscon-search-trigger,
.fm-search button{
    background:transparent !important;
    border-color:transparent !important;
    box-shadow:none !important;
}

/* Mobile continua por clique e sem ocupar espaço demais. */
@media(max-width:900px){
    .fm-menu > a::after,
    .fm-menu__drop::after{
        display:none;
    }

    .fm-search{
        padding-left:12px;
        border-left:0;
        gap:6px;
    }

    .fm-search__label{
        display:none;
    }
}


/* ================================================================
   FESPUMEB 2026 v0.9 — correção estrutural do hero
   ================================================================ */

/*
 * FESPUMEB-HERO.tpl usa <a class="fm-hero">.
 * <a> é inline por padrão; portanto height/min-height não controlavam
 * de fato a caixa quando a imagem original era alta/vertical.
 * O hero passa a ser um bloco real e os 380px voltam a ser soberanos.
 */
.fm-updates__hero .fm-hero{
    display:block;
    position:relative;
    width:100%;
    height:380px;
    min-height:380px;
    max-height:380px;
    overflow:hidden;
}

/* A imagem nunca define a altura do destaque. */
.fm-updates__hero .fm-hero>img{
    display:block;
    width:100%;
    height:100%;
    max-height:380px;
}

/* Horizontal: preenche o quadro. */
.fm-updates__hero .fm-hero:not(.is-portrait)>img{
    object-fit:cover;
    object-position:center;
}

/* Vertical: preserva a foto dentro do mesmo quadro de 380px. */
.fm-updates__hero .fm-hero.is-portrait>img{
    object-fit:contain;
    object-position:center;
}

/* O conteúdo escuro fica sempre contido na caixa do hero. */
.fm-updates__hero .fm-hero__content{
    max-height:100%;
    overflow:hidden;
}

@media(max-width:980px){
    .fm-updates__hero .fm-hero{
        height:400px;
        min-height:400px;
        max-height:400px;
    }
    .fm-updates__hero .fm-hero>img{
        max-height:400px;
    }
}

@media(max-width:620px){
    .fm-updates__hero .fm-hero{
        height:340px;
        min-height:340px;
        max-height:340px;
    }
    .fm-updates__hero .fm-hero>img{
        max-height:340px;
    }
}


/* ================================================================
   FESPUMEB 2026 v0.10 — busca integrada corretamente ao SCF
   ================================================================ */

/*
 * O texto "Buscar" agora pertence visualmente ao próprio trigger SCF.
 * Assim, em buscar.php, onde o componente não é renderizado,
 * lupa + texto desaparecem juntos.
 */
.fm-search{
    min-height:60px;
    padding-left:16px;
    border-left:1px solid rgba(255,255,255,.13);
}

.fm-search__label{
    display:none !important;
}

/* IMPORTANTE: estiliza apenas o gatilho, nunca os botões do modal. */
.fm-search .scf-search-box__trigger{
    width:auto;
    min-width:86px;
    height:44px;
    gap:8px;
    padding:0 10px;
    border:0;
    border-radius:8px;
    color:#fff;
    background:transparent;
    box-shadow:none;
    opacity:1;
}

.fm-search .scf-search-box__trigger::after{
    content:"Buscar";
    display:inline-block;
    color:#fff;
    font-size:14px;
    font-weight:700;
    line-height:1;
}

.fm-search .scf-search-box__trigger:hover,
.fm-search .scf-search-box__trigger:focus-visible{
    color:#fff;
    background:rgba(255,255,255,.08);
    transform:none;
}

/*
 * Restaura explicitamente o botão do formulário, que havia sido atingido
 * pela regra genérica ".fm-search button" da v0.8.
 */
.fm-search .scf-search-box__submit{
    padding:11.52px 16.8px;
    border:0;
    border-radius:11.2px;
    color:#fff;
    background:var(--scf-color-primary,#334155) !important;
    box-shadow:none;
    font:inherit;
    font-weight:800;
    cursor:pointer;
    opacity:1;
}

/* Backdrop/fechar continuam transparentes como definidos pelo próprio SCF. */
.fm-search .scf-search-box__backdrop{
    background:rgba(15,23,42,.38) !important;
}

.fm-search .scf-search-box__close{
    background:transparent !important;
}

/* Neutraliza a regra genérica antiga sem afetar submit. */
.fm-search button:not(.scf-search-box__submit):not(.scf-search-box__backdrop){
    box-shadow:none;
}

@media(max-width:900px){
    .fm-search{
        padding-left:8px;
        border-left:0;
    }

    .fm-search .scf-search-box__trigger{
        min-width:44px;
        width:44px;
        padding:0;
    }

    .fm-search .scf-search-box__trigger::after{
        display:none;
    }
}


/* ================================================================
   FESPUMEB 2026 v0.11 — logo no menu + Institucional sem seta
   ================================================================ */

.fm-menu__brand{
    width:64px;
    min-width:64px;
    height:60px;
    padding:0 !important;
    display:flex !important;
    align-items:center;
    justify-content:center;
    align-self:stretch;
    text-decoration:none;
}

.fm-menu__brand::after{
    display:none !important;
}

.fm-menu__brand img{
    display:block;
    width:48px;
    height:48px;
    object-fit:contain;
}

/* O submenu já é indicado por hover/linha inferior. */
.fm-menu__drop > span[aria-hidden="true"],
.fm-menu__drop::before{
    display:none !important;
}

.fm-menu__drop{
    gap:0;
}

/* Mantém a marca discreta no mobile sem apertar os itens. */
@media(max-width:900px){
    .fm-menu__brand{
        width:58px;
        min-width:58px;
        height:56px;
    }

    .fm-menu__brand img{
        width:44px;
        height:44px;
    }
}


/* ================================================================
   FESPUMEB 2026 v0.13 — menu mobile refinado
   ================================================================ */

@media(max-width:900px){

    /* Hamburger real: três linhas empilhadas, não três traços lado a lado. */
    .fm-menu-toggle{
        display:grid;
        grid-template-columns:22px auto;
        grid-template-rows:repeat(3,4px);
        align-items:center;
        column-gap:10px;
        row-gap:3px;
        min-width:102px;
        padding:0 14px;
    }

    .fm-menu-toggle span{
        grid-column:1;
        width:22px;
        height:2px;
        margin:0;
        background:#fff;
        border-radius:999px;
    }

    .fm-menu-toggle span:nth-child(1){grid-row:1}
    .fm-menu-toggle span:nth-child(2){grid-row:2}
    .fm-menu-toggle span:nth-child(3){grid-row:3}

    .fm-menu-toggle strong{
        grid-column:2;
        grid-row:1/4;
        align-self:center;
        margin:0;
        font-size:14px;
        line-height:1;
    }

    /* Painel mobile mais compacto e claramente navegável. */
    .fm-menu{
        padding:8px 10px 12px;
    }

    .fm-menu > a,
    .fm-menu__drop{
        min-height:46px;
        padding:0 14px;
        border-radius:8px;
        font-size:14px;
        font-weight:750;
    }

    .fm-menu > a:hover,
    .fm-menu__drop:hover{
        background:var(--fm-soft) !important;
    }

    /* A logo da barra desktop não vira um item enorme dentro do menu aberto. */
    .fm-menu__brand{
        display:none !important;
    }

    /* No mobile o Institucional precisa mostrar claramente que abre submenu. */
    .fm-menu__drop{
        position:relative;
        padding-right:44px;
    }

    .fm-menu__drop::after{
        content:"";
        display:block !important;
        position:absolute;
        right:16px;
        left:auto;
        top:50%;
        bottom:auto;
        width:8px;
        height:8px;
        border-right:2px solid currentColor;
        border-bottom:2px solid currentColor;
        background:transparent;
        transform:translateY(-68%) rotate(45deg);
        transform-origin:center;
        transition:transform .18s ease;
    }

    .fm-menu__drop[aria-expanded="true"]::after{
        transform:translateY(-30%) rotate(225deg);
    }

    .fm-menu__submenu{
        margin:2px 8px 8px;
        padding:5px;
        border-radius:10px;
        background:#f3f6fa;
    }

    .fm-menu__submenu a{
        min-height:42px;
        display:flex;
        align-items:center;
        padding:0 12px;
        font-size:13px;
        font-weight:650;
    }
}


/* ================================================================
   FESPUMEB 2026 v0.14 — logo do menu somente no sticky
   ================================================================ */

/* No topo da página, a marca principal já está visível no header. */
.fm-menu__brand{
    display:none !important;
}

/* A logo compacta só entra quando a barra se desprende do header
   e passa a funcionar como navegação sticky. */
.fm-nav-wrap.is-detached .fm-menu__brand{
    display:flex !important;
}

/* Mobile: mesma regra — nunca aparece no topo nem dentro do painel aberto;
   só pode aparecer na barra sticky quando houver espaço. */
@media(max-width:900px){
    .fm-menu__brand,
    .fm-nav-wrap.is-detached .fm-menu__brand{
        display:none !important;
    }
}


/* ================================================================
   FESPUMEB 2026 v0.15 — alinhamento vertical do menu mobile
   ================================================================ */

@media(max-width:900px){

    /* Centraliza o conjunto hambúrguer + texto dentro da barra azul. */
    .fm-menu-toggle{
        height:58px;
        align-self:center;
        justify-self:start;
        align-content:center;
        padding-top:0;
        padding-bottom:0;
    }

    .fm-menu-toggle span,
    .fm-menu-toggle strong{
        align-self:center;
    }

    /* Garante que toda a navegação mobile trabalhe pelo centro da barra. */
    .fm-nav{
        min-height:58px;
        align-items:center;
    }

    .fm-search{
        min-height:58px;
        align-items:center;
    }
}
