/* ULSAR - Cassiopeia | Joomla 4.4.14 | CSS consolidado */
:root{--bg:#eef0f2;--w:1140px;--blue:#2d7fe8;--red:#bc2630;--dark1:#414141;--dark2:#303030;--muted:#777}
html{scroll-behavior:smooth} body{background:var(--bg);color:#333} main{min-height:auto}
.site-grid,.container-header,.container-banner,.container-top-a,.container-top-b,.container-bottom-a,.container-footer{box-sizing:border-box;width:100%;max-width:var(--w);margin-inline:auto}
.card{border-color:#d6d9df;border-radius:3px}.card-header{color:#111;background:#f7f7f7;font-weight:700}

/* CABECALHO */
.header{background:var(--bg)}
.container-header{position:relative;z-index:1000;display:grid;grid-template-columns:minmax(300px,1fr) 595px;grid-template-areas:"brand topbar" "nav nav";align-items:center;gap:.5rem 1.5rem;padding:1rem 0 0;color:#222;background:transparent;box-shadow:none;overflow:visible}
.container-header .navbar-brand{grid-area:brand;align-self:center;margin:0;padding:0 0 .75rem}
.container-header .navbar-brand img{display:block;width:auto;max-width:340px;max-height:82px}

/* UTILITARIOS */
.container-topbar{grid-area:topbar;display:grid;grid-template-columns:430px 155px;grid-template-rows:35px 34px;column-gap:10px;row-gap:6px;align-items:stretch;justify-content:end;width:595px;min-width:595px;max-width:595px;margin:0;padding:0;overflow:visible}
.container-topbar>*:has(.cabecalho-utilitarios-inner){grid-column:1;grid-row:1/span 2;width:430px;height:75px;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.cabecalho-utilitarios,.cabecalho-utilitarios-inner{box-sizing:border-box;width:430px;margin:0;padding:0}
.cabecalho-utilitarios-inner{display:grid;grid-template-columns:430px;grid-template-rows:35px 34px;row-gap:6px;height:75px}
.util-superior{grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:8px;width:100%;margin:0;padding:0}
.util-area-cidadao{display:inline-flex!important;align-items:center;justify-content:center;width:auto;height:35px;margin:0;padding:0;text-decoration:none!important}
.util-area-cidadao img{display:block;width:auto;height:35px;max-width:none;object-fit:contain}
.util-social{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end;gap:3px;width:auto;min-height:35px;margin:0;padding:0}
.util-social a{display:inline-flex!important;align-items:center;justify-content:center;width:20px;height:20px;margin:0;padding:0;text-decoration:none!important}
.util-social img{display:block;width:20px;height:20px;max-width:none;object-fit:contain}
.util-links{grid-row:2;display:grid!important;grid-template-columns:125px 155px 140px;grid-template-rows:34px;column-gap:5px;align-items:stretch;justify-content:end;width:430px;margin:0;padding:0}
.util-links>a.util-atalho,.util-links>a.util-atalho:link,.util-links>a.util-atalho:visited{display:flex!important;align-items:center;justify-content:space-between;box-sizing:border-box;width:100%;min-width:0;height:34px;margin:0;padding:0 5px 0 12px;border:0;border-radius:0;color:#fff!important;font-size:.78rem;line-height:1;text-decoration:none!important;white-space:nowrap}
.util-urgencia{background:linear-gradient(to bottom,#df1724 0%,#bd0f1b 55%,#990811 100%)!important}.util-consulta{background:linear-gradient(to bottom,#234399 0%,#132568 100%)!important}.util-maternidade{background:linear-gradient(to bottom,#198dd0 0%,#0f609f 100%)!important}
.util-links>a.util-atalho:hover,.util-links>a.util-atalho:focus{color:#fff!important;filter:brightness(1.12)}
.util-seta{display:inline-flex!important;flex:0 0 14px;align-items:center;justify-content:center;width:14px;height:14px;margin-left:5px;color:#fff!important;background:rgba(0,0,0,.48);font-size:.56rem;line-height:1}

/* PESQUISA */
.container-topbar>*:has(form){grid-column:2;grid-row:2;align-self:stretch;justify-self:stretch;box-sizing:border-box;width:155px;height:34px;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.container-topbar>*:has(form) .card,.container-topbar>*:has(form) .card-body,.container-topbar>*:has(form) .moduletable,.container-topbar>*:has(form) .mod-search,.container-topbar>*:has(form) .util-search{box-sizing:border-box;width:155px;height:34px;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.container-topbar form,.container-topbar .input-group,.container-topbar .mod-finder__search{display:flex!important;flex-flow:row nowrap!important;align-items:stretch!important;box-sizing:border-box;width:155px!important;height:34px!important;margin:0!important;padding:0!important;gap:0!important}
.container-topbar form>div,.container-topbar form .awesomplete,.container-topbar form .control-group,.container-topbar form .controls{display:contents!important}
.container-topbar form input[type="search"],.container-topbar form input[type="text"]{display:block!important;flex:1 1 auto!important;box-sizing:border-box;width:auto!important;min-width:0!important;height:34px!important;margin:0!important;padding:0 9px!important;border:1px solid #c9c9c9!important;border-right:0!important;border-radius:0!important;color:#333!important;background:#fff!important;font-size:.72rem!important;line-height:34px!important;box-shadow:none!important}
.container-topbar form button[type="submit"],.container-topbar form input[type="submit"],.container-topbar form .btn-search{display:block!important;flex:0 0 36px!important;box-sizing:border-box;width:36px!important;min-width:36px!important;max-width:36px!important;height:34px!important;margin:0!important;padding:0!important;overflow:hidden!important;border:0!important;border-radius:0!important;color:transparent!important;background-color:var(--blue)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.5' y1='16.5' x2='22' y2='22'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:17px 17px!important;font-size:0!important;line-height:0!important;text-indent:-9999px!important;box-shadow:none!important;cursor:pointer!important}
.container-topbar form button[type="submit"]>*{display:none!important}.container-topbar form button[type="submit"]:hover,.container-topbar form button[type="submit"]:focus{background-color:#145fbf!important}

/* MENU PRINCIPAL */
.container-header .container-nav{grid-area:nav;position:relative;z-index:100;display:block;width:100%;min-height:55px;margin:0;padding:0;overflow:visible;background:linear-gradient(to bottom,var(--dark1) 0%,var(--dark2) 100%);box-shadow:none}
.container-header .container-nav .navbar,.container-header .container-nav .navbar-collapse{position:static;display:block;width:100%;min-height:55px;margin:0;padding:0;background:transparent}
.container-header .container-nav ul.mod-menu{display:flex!important;flex-flow:row nowrap!important;align-items:stretch!important;width:100%;min-height:55px;margin:0;padding:0;list-style:none;overflow:visible}
.container-header .container-nav ul.mod-menu>li{position:relative;display:flex;align-items:stretch;min-height:55px;margin:0;padding:0}
.container-header .container-nav ul.mod-menu>li>a,.container-header .container-nav ul.mod-menu>li>button,.container-header .container-nav ul.mod-menu>li>span{display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box;min-height:55px;margin:0;padding:0 .82rem;border:0;border-radius:0;color:#e8e8e8!important;background:transparent!important;font-family:"Arial Narrow","Liberation Sans Narrow","Roboto Condensed",Arial,sans-serif;font-size:.76rem;font-weight:400;line-height:1;letter-spacing:-.01em;text-transform:uppercase;text-decoration:none!important;white-space:nowrap}
.container-header .container-nav ul.mod-menu>li.active>a,.container-header .container-nav ul.mod-menu>li.current>a{color:#fff!important;background:var(--blue)!important}
.container-header .container-nav ul.mod-menu>li:hover>a,.container-header .container-nav ul.mod-menu>li:focus-within>a{color:#fff!important;background:#262626!important}
.container-header .container-nav ul.mod-menu>li.active:hover>a,.container-header .container-nav ul.mod-menu>li.current:hover>a{background:var(--blue)!important}
.container-header .container-nav ul.mod-menu .mm-toggler{gap:.3rem}.container-header .container-nav ul.mod-menu .mm-toggler::after{margin-left:.25rem;color:#d7d7d7;transform:scale(.72)}
.container-header .container-nav ul.mod-menu>li:last-child{flex:1 1 auto;min-width:0}.container-header .container-nav ul.mod-menu>li:last-child>a,.container-header .container-nav ul.mod-menu>li:last-child>button{justify-content:flex-start;padding-right:.7rem;padding-left:.9rem;overflow:hidden;text-overflow:ellipsis}
.container-header .container-nav ul.mod-menu .mm-collapse,.container-header .container-nav ul.mod-menu li>ul{position:absolute!important;top:100%!important;left:0!important;z-index:2000!important;box-sizing:border-box;display:none;width:230px;min-width:230px;margin:0;padding:0;border:0;background:#333;box-shadow:0 7px 15px rgba(0,0,0,.22);list-style:none}
.container-header .container-nav ul.mod-menu .mm-collapse.show,.container-header .container-nav ul.mod-menu .mm-collapse.mm-show{display:block!important}
@media (min-width:901px){.container-header .container-nav ul.mod-menu>li:hover>.mm-collapse,.container-header .container-nav ul.mod-menu>li:focus-within>.mm-collapse,.container-header .container-nav ul.mod-menu>li:hover>ul,.container-header .container-nav ul.mod-menu>li:focus-within>ul{display:block!important}}
.container-header .container-nav ul.mod-menu .mm-collapse>li,.container-header .container-nav ul.mod-menu li>ul>li{display:block;width:100%;margin:0;padding:0;border:0;border-bottom:1px solid #515151;background:transparent}
.container-header .container-nav ul.mod-menu .mm-collapse>li:last-child{border-bottom:0}
.container-header .container-nav ul.mod-menu .mm-collapse>li>a,.container-header .container-nav ul.mod-menu .mm-collapse>li>button{display:flex!important;align-items:center;box-sizing:border-box;width:100%;min-height:38px;margin:0;padding:.65rem .85rem;border:0;color:#f3f3f3!important;background:#333!important;font-family:Arial,sans-serif;font-size:.76rem;line-height:1.2;text-align:left;text-decoration:none!important;text-transform:none;white-space:normal}
.container-header .container-nav ul.mod-menu .mm-collapse>li>a:hover,.container-header .container-nav ul.mod-menu .mm-collapse>li>a:focus,.container-header .container-nav ul.mod-menu .mm-collapse>li.active>a,.container-header .container-nav ul.mod-menu .mm-collapse>li.current>a{color:#fff!important;background:var(--blue)!important}
.container-header .container-nav ul.mod-menu .mm-collapse .mm-collapse{top:0!important;left:100%!important;margin-left:1px}

/* SLIDER */
.container-banner{position:relative;z-index:1;display:block;margin:0 auto 3rem;padding:0}.container-banner>*,.container-banner .moduletable,.container-banner .mod-custom{display:block;width:100%;margin:0;padding:0}
#slider-principal{position:relative;display:block;width:100%;max-width:var(--w);margin:0;padding:0;overflow:hidden;border:1px solid #d6d9df;background:#fff}
#slider-principal .carousel-item{display:none;position:relative;width:100%}#slider-principal .carousel-item.active{display:block}#slider-principal .carousel-item img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;object-position:center;background:#fff}
#slider-principal .carousel-caption{right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:3.5rem 2rem 1.75rem;color:#fff;text-align:left;background:linear-gradient(to top,rgba(10,32,73,.92) 0%,rgba(10,32,73,.62) 50%,rgba(10,32,73,0) 100%)}
#slider-principal .carousel-caption strong{font-size:1.6rem;line-height:1.2}#slider-principal .carousel-caption span{font-size:1rem}
#slider-principal .carousel-control-prev,#slider-principal .carousel-control-next{z-index:5;width:7%;border:0;opacity:.75;background:transparent}#slider-principal .carousel-control-prev:hover,#slider-principal .carousel-control-next:hover{opacity:1}
#slider-principal .carousel-control-prev-icon,#slider-principal .carousel-control-next-icon{width:2.5rem;height:2.5rem;padding:.4rem;border-radius:50%;background-color:rgba(17,48,103,.75);background-size:55%}
#slider-principal .carousel-indicators{z-index:6;margin-bottom:.65rem}#slider-principal .carousel-indicators button{width:28px;height:5px;margin-inline:4px;border:0;opacity:.65;background:#fff;box-shadow:0 0 0 1px rgba(17,48,103,.75)}#slider-principal .carousel-indicators button.active{opacity:1;background:#e30613}

/* DESTAQUES */
.container-top-a{position:relative;z-index:0;display:block;clear:both;margin:0 auto 2rem;padding:0}.destaques-home,.destaques-home.card{width:100%;margin:0 auto 2rem;padding:0;border:0;background:transparent;box-shadow:none}.destaques-home .card-body{padding:0}
.destaques-home>h3,.destaques-home .card-header{margin:0 0 1rem;padding:0;border:0;color:#252525;background:transparent;font-size:1.45rem;font-weight:400;line-height:1.2;text-transform:uppercase}
.container-top-a ul.mod-articlescategory,.container-top-a ul.mod-articles-category,.container-top-a .mod-articlescategory{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:1.75rem;width:100%;margin:0;padding:0;list-style:none}
.container-top-a ul.mod-articlescategory>li,.container-top-a ul.mod-articles-category>li,.container-top-a .mod-articlescategory>li{display:flex;flex-direction:column;min-width:0;margin:0;padding:0;list-style:none}
.container-top-a .destaque-imagem{display:block;width:100%;margin:0 0 .55rem;overflow:hidden}.container-top-a .destaque-imagem img{display:block;width:100%;height:auto;aspect-ratio:4/3;margin:0;padding:3px;border:1px solid #bfc3c8;object-fit:cover;background:#fff}
.container-top-a .mod-articles-category-title,.container-top-a .mod-articlescategory-title{display:block;margin:0 0 .35rem;color:#222;font-size:.79rem;font-weight:700;line-height:1.35;text-decoration:none;text-transform:uppercase}.container-top-a .mod-articles-category-title:hover{color:var(--red)}
.container-top-a .mod-articles-category-introtext,.container-top-a .mod-articlescategory-introtext{margin:0 0 .4rem;color:#656565;font-size:.78rem;line-height:1.45}.container-top-a .mod-articles-category-readmore,.container-top-a .mod-articlescategory-readmore{display:inline-block;margin-top:auto;color:var(--red);font-size:.78rem;text-decoration:none}

/* MAPA DO SITE */
.container-bottom-a{position:relative;z-index:2;margin:2.5rem auto 0;padding:0;color:#555;background:#fff;box-shadow:12px 12px 24px rgba(35,35,35,.10)}
.container-bottom-a>*,.container-bottom-a>.grid-child,.container-bottom-a .mapa-site,.container-bottom-a .moduletable.mapa-site,.container-bottom-a .card.mapa-site{box-sizing:border-box;width:100%;max-width:none;margin:0;padding:0;border:0;background:transparent;box-shadow:none}.container-bottom-a .mapa-site .card-body{padding:0}
.container-bottom-a .mapa-site>ul,.container-bottom-a .mapa-site>nav>ul,.container-bottom-a .mapa-site ul.mod-menu,.container-bottom-a ul.mapa-site{display:grid!important;grid-template-columns:.65fr 1fr 1.55fr 1.15fr 1.6fr 1.1fr .85fr 2.2fr!important;align-items:start;gap:1.15rem;box-sizing:border-box;width:100%;min-height:0;margin:0;padding:2rem 2.5rem 2.4rem;list-style:none;background:#fff}
.container-bottom-a .mapa-site>ul>li,.container-bottom-a .mapa-site>nav>ul>li,.container-bottom-a .mapa-site ul.mod-menu>li{position:static;display:block;min-width:0;margin:0;padding:0;list-style:none}
.container-bottom-a .mapa-site>ul>li>a,.container-bottom-a .mapa-site>ul>li>button,.container-bottom-a .mapa-site ul.mod-menu>li>a,.container-bottom-a .mapa-site ul.mod-menu>li>button{display:block!important;width:100%;min-height:0;margin:0 0 .55rem;padding:0;border:0;color:#333!important;background:transparent!important;font-size:.76rem;font-weight:700;line-height:1.2;text-align:left;text-decoration:none!important;text-transform:none;white-space:normal}
.container-bottom-a .mapa-site ul ul,.container-bottom-a .mapa-site .mm-collapse{position:static!important;display:block!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;list-style:none!important}
.container-bottom-a .mapa-site ul ul>li,.container-bottom-a .mapa-site .mm-collapse>li{display:block;width:100%;margin:0 0 .28rem;padding:0;border:0;list-style:none}.container-bottom-a .mapa-site ul ul>li>a,.container-bottom-a .mapa-site ul ul>li>button,.container-bottom-a .mapa-site .mm-collapse>li>a{display:block!important;width:100%;min-height:0;margin:0;padding:0;border:0;color:#858585!important;background:transparent!important;font-size:.65rem;font-weight:400;line-height:1.28;text-align:left;text-decoration:none!important;text-transform:none;white-space:normal}
.container-bottom-a .mapa-site li.active>a,.container-bottom-a .mapa-site li.current>a,.container-bottom-a .mapa-site a:hover,.container-bottom-a .mapa-site a:focus{color:var(--red)!important;background:transparent!important}.container-bottom-a .mapa-site .mm-toggler::after,.container-bottom-a .mapa-site .mm-toggler svg{display:none!important}

/* RODAPE INSTITUCIONAL */
.container-footer{position:relative;z-index:3;margin:0 auto 2rem;padding:0;border-top:1px solid #e7e7e7;color:var(--muted);background:#fbfbfb;box-shadow:12px 18px 24px rgba(35,35,35,.08)}
.container-footer>*,.container-footer>.grid-child,.container-footer .rodape-institucional,.container-footer .mod-custom.rodape-institucional,.container-footer .card.rodape-institucional{box-sizing:border-box;width:100%;max-width:none;margin:0;padding:0;border:0;color:var(--muted);background:transparent;box-shadow:none}.container-footer .rodape-institucional .card-body{padding:0}
.rodape-institucional-inner{display:grid!important;grid-template-columns:1fr 1.5fr 1fr!important;align-items:center;gap:2rem;box-sizing:border-box;width:100%;min-height:108px;margin:0;padding:1.15rem 3rem;color:var(--muted);background:#fbfbfb}
.rodape-logos{display:flex;align-items:center}.rodape-logos a{display:inline-flex;align-items:center;color:inherit;text-decoration:none}.rodape-logos img{display:block;width:auto;max-width:100%;object-fit:contain}.rodape-republica{justify-content:flex-start}.rodape-republica img{max-width:170px;max-height:54px}.rodape-direitos{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.69rem;line-height:1.35;text-align:center}.rodape-sns24{justify-content:flex-end}.rodape-sns24 img{max-width:90px;max-height:58px}.rodape-logos a:hover{opacity:.85}

/* RESPONSIVIDADE */
@media(max-width:1180px){.container-header,.site-grid,.container-banner,.container-top-a,.container-top-b,.container-bottom-a,.container-footer{width:calc(100% - 2rem);max-width:var(--w)}}
@media(max-width:1050px){.container-header{grid-template-columns:1fr;grid-template-areas:"brand" "topbar" "nav";padding-inline:1rem}.container-topbar{grid-template-columns:minmax(0,1fr) 180px;width:100%;min-width:0;max-width:none}.container-topbar>*:has(.cabecalho-utilitarios-inner),.cabecalho-utilitarios,.cabecalho-utilitarios-inner{width:100%;min-width:0;max-width:none}.cabecalho-utilitarios-inner{grid-template-columns:1fr}.util-links{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.container-topbar>*:has(form),.container-topbar>*:has(form) form{width:180px!important}.container-bottom-a .mapa-site>ul,.container-bottom-a .mapa-site ul.mod-menu{grid-template-columns:repeat(4,minmax(0,1fr))!important;row-gap:2rem}}
@media(max-width:900px){.container-header .container-nav ul.mod-menu{display:block!important;min-height:auto}.container-header .container-nav ul.mod-menu>li{display:block;width:100%;min-height:auto}.container-header .container-nav ul.mod-menu>li>a,.container-header .container-nav ul.mod-menu>li>button{justify-content:space-between;width:100%;min-height:44px;padding:.7rem 1rem;font-size:.82rem}.container-header .container-nav ul.mod-menu .mm-collapse,.container-header .container-nav ul.mod-menu li>ul{position:static!important;width:100%;min-width:0;box-shadow:none}}
@media(max-width:768px){.container-header .navbar-brand img{max-width:280px;max-height:70px}.container-topbar{display:block;height:auto}.cabecalho-utilitarios-inner{display:block!important;height:auto}.util-superior{justify-content:flex-start;margin-bottom:8px}.util-links{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:repeat(3,34px);row-gap:5px}.container-topbar>*:has(form){width:200px;margin-top:8px}.container-topbar>*:has(form) form{width:200px!important}#slider-principal .carousel-item img{max-height:300px}#slider-principal .carousel-caption{padding:2.5rem 1rem 1.5rem}.container-top-a ul.mod-articlescategory,.container-top-a ul.mod-articles-category{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1.25rem}.container-bottom-a .mapa-site>ul,.container-bottom-a .mapa-site ul.mod-menu{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:1.5rem}.rodape-institucional-inner{grid-template-columns:1fr!important;gap:1.25rem;padding:1.5rem 1rem}.rodape-republica,.rodape-sns24,.rodape-direitos{justify-content:center;text-align:center}}
@media(max-width:480px){.container-top-a ul.mod-articlescategory,.container-top-a ul.mod-articles-category,.container-bottom-a .mapa-site>ul,.container-bottom-a .mapa-site ul.mod-menu{grid-template-columns:1fr!important}}

/* =========================================================
   Alinhamento final do mapa do site com o rodapé
   ========================================================= */

.container-bottom-a,
.container-footer {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1140px !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

/* Remover os gutters laterais introduzidos pelo Cassiopeia */
.container-bottom-a > .grid-child,
.container-bottom-a > .container,
.container-bottom-a > .container-fluid,
.container-bottom-a .grid-child,
.container-bottom-a .container,
.container-bottom-a .container-fluid {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* O módulo deve ocupar toda a largura disponível */
.container-bottom-a > *,
.container-bottom-a .mapa-site,
.container-bottom-a .moduletable.mapa-site,
.container-bottom-a .card.mapa-site,
.container-bottom-a .mapa-site.card {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* Fundo e sombra abrangem o bloco inteiro */
.container-bottom-a {
    background: #fff !important;
    box-shadow: 12px 12px 24px rgba(35, 35, 35, 0.10) !important;
}

/* Evitar que a lista crie uma largura visual diferente */
.container-bottom-a .mapa-site > ul,
.container-bottom-a .mapa-site > nav > ul,
.container-bottom-a .mapa-site ul.mod-menu,
.container-bottom-a ul.mapa-site {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

/* =========================================================
   Largura definitiva do mapa do site e rodapé
   ========================================================= */

/*
 * O HTML real é:
 * <div class="grid-child container-bottom-a">
 *
 * Portanto, grid-child e container-bottom-a são classes
 * do mesmo elemento.
 */
.grid-child.container-bottom-a {
    position: relative !important;
    box-sizing: border-box !important;

    width: 1140px !important;
    min-width: 0 !important;
    max-width: calc(100vw - 2rem) !important;

    margin-top: 2.5rem !important;
    margin-right: auto !important;
    margin-bottom: 0 !important;
    margin-left: auto !important;

    padding-right: 0 !important;
    padding-left: 0 !important;

    color: #555 !important;
    background: #fff !important;

    box-shadow:
        12px 12px 24px rgba(35, 35, 35, 0.10) !important;
}

/* O módulo interior ocupa toda a largura do elemento */
.grid-child.container-bottom-a > .bottom-a,
.grid-child.container-bottom-a > .mapa-site,
.grid-child.container-bottom-a .bottom-a.mapa-site {
    box-sizing: border-box !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* A lista deve preencher o módulo inteiro */
.grid-child.container-bottom-a .bottom-a.mapa-site > ul.mod-menu,
.grid-child.container-bottom-a .mapa-site > ul.mod-menu {
    box-sizing: border-box !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
}

/*
 * Fazer a faixa institucional usar rigorosamente
 * a mesma largura.
 */
.grid-child.container-footer,
.container-footer {
    box-sizing: border-box !important;

    width: 1140px !important;
    min-width: 0 !important;
    max-width: calc(100vw - 2rem) !important;

    margin-right: auto !important;
    margin-left: auto !important;

    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* Em ecrãs menores, manter margem de 1 rem de cada lado */
@media (max-width: 1172px) {
    .grid-child.container-bottom-a,
    .grid-child.container-footer,
    .container-footer {
        width: calc(100% - 2rem) !important;
        max-width: none !important;
    }
}

/* =========================================================
   Alinhamento horizontal final do mapa do site
   ========================================================= */

/*
 * O container-bottom-a está deslocado aproximadamente
 * 15 px para a direita pela grelha do Cassiopeia.
 * Mantemos a largura e corrigimos apenas a posição.
 */
.grid-child.container-bottom-a {
    position: relative !important;
    left: -15px !important;
}

/* Em ecrãs pequenos, cancelar o ajuste fixo */
@media (max-width: 1172px) {
    .grid-child.container-bottom-a {
        left: 0 !important;
    }
}

/* Afinação final de 1 px no mapa do site */
.grid-child.container-bottom-a {
    width: 1139px !important;
}

/* =========================================================
   Aproximar o mapa do site dos Destaques
   ========================================================= */

/* Retirar margens inferiores duplicadas dos Destaques */
.container-top-a {
    margin-bottom: 0 !important;
}

.destaques-home,
.destaques-home.card {
    margin-bottom: 0 !important;
}

/* Deixar apenas uma separação moderada antes do mapa do site */
.grid-child.container-bottom-a {
    margin-top: 1.25rem !important;
}

/* =========================================================
   Páginas internas de artigos
   ========================================================= */

/*
 * Painel branco principal.
 * A regra é limitada a view-article, portanto não altera
 * a página inicial, Destaques, slider ou mapa do site.
 */
body.view-article main,
body.view-article .container-component {
    position: relative !important;
    box-sizing: border-box !important;

    width: 100% !important;
    max-width: 1140px !important;
    min-height: 640px !important;

    margin: 0 auto 3rem !important;
    padding: 1.25rem 1.25rem 3rem !important;

    color: #444 !important;
    background: #fff !important;

    box-shadow:
        22px 22px 0 rgba(45, 45, 45, 0.08) !important;
}

/*
 * Se container-component estiver dentro de main,
 * evitar dois painéis brancos sobrepostos.
 */
body.view-article main .container-component {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    box-shadow: none !important;
}

/* Dobra no canto superior direito */
body.view-article main::after {
    content: "" !important;

    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    z-index: 2 !important;

    width: 0 !important;
    height: 0 !important;

    border-top: 30px solid #eef0f2 !important;
    border-left: 30px solid transparent !important;

    pointer-events: none !important;
}

/* Neutralizar possíveis cartões interiores */
body.view-article .com-content-article,
body.view-article .item-page,
body.view-article .com-content-article__body {
    box-sizing: border-box !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* =========================================================
   Título das páginas internas
   ========================================================= */

body.view-article main .page-header {
    margin: 0 0 1rem !important;
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
}

body.view-article main h1,
body.view-article main .page-header h1,
body.view-article main .page-header h2,
body.view-article main h1[itemprop="headline"],
body.view-article main h2[itemprop="headline"],
body.view-article main .item-title {
    margin: 0 0 1rem !important;
    padding: 0 !important;

    color: #414141 !important;

    font-family:
        "Arial Narrow",
        "Liberation Sans Narrow",
        "Roboto Condensed",
        Arial,
        sans-serif !important;

    font-size: 2rem !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;

    text-transform: none !important;
}

/* =========================================================
   Conteúdo dos artigos
   ========================================================= */

body.view-article .com-content-article__body,
body.view-article .item-page {
    color: #444 !important;
    font-family: Arial, sans-serif !important;
    font-size: 0.82rem !important;
    font-weight: 400 !important;
    line-height: 1.48 !important;
}

body.view-article .com-content-article__body p,
body.view-article .item-page p {
    margin-top: 0 !important;
    margin-bottom: 0.72rem !important;
}

/* Títulos vermelhos dos concursos */
body.view-article .com-content-article__body strong,
body.view-article .item-page strong {
    color: #d00000 !important;
    font-weight: 400 !important;
}

/* Exceção para o impresso de candidatura */
body.view-article mark,
body.view-article span[style*="background-color: yellow"],
body.view-article span[style*="background-color:#ffff00"],
body.view-article span[style*="background-color: #ffff00"] {
    color: #000 !important;
    background: #fff200 !important;
    font-weight: 700 !important;
}

/* Ligações do artigo */
body.view-article .com-content-article__body a,
body.view-article .item-page a {
    color: #487ee8 !important;
    text-decoration: none !important;
}

body.view-article .com-content-article__body a:hover,
body.view-article .com-content-article__body a:focus,
body.view-article .item-page a:hover,
body.view-article .item-page a:focus {
    color: #245cc8 !important;
    text-decoration: underline !important;
}

/* Espaço entre os diferentes concursos */
body.view-article .com-content-article__body p + p,
body.view-article .item-page p + p {
    margin-top: 0 !important;
}

body.view-article .com-content-article__body p:has(strong),
body.view-article .item-page p:has(strong) {
    margin-top: 1.25rem !important;
    margin-bottom: 0.25rem !important;
}

/* =========================================================
   Breadcrumbs das páginas internas
   ========================================================= */

body.view-article .container-breadcrumbs {
    box-sizing: border-box !important;

    width: 100% !important;
    max-width: 1140px !important;

    margin: 1.25rem auto !important;
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.view-article .container-breadcrumbs > *,
body.view-article .container-breadcrumbs .mod-breadcrumbs,
body.view-article .container-breadcrumbs .breadcrumb,
body.view-article .container-breadcrumbs .card,
body.view-article .container-breadcrumbs .card-body {
    box-sizing: border-box !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    box-shadow: none !important;
}

body.view-article .container-breadcrumbs .breadcrumb,
body.view-article .container-breadcrumbs .mod-breadcrumbs {
    min-height: 30px !important;

    padding: 0.45rem 0.75rem !important;

    color: #858585 !important;
    background: #f4f4f4 !important;

    font-size: 0.7rem !important;
    line-height: 1.2 !important;
}

body.view-article .container-breadcrumbs a {
    color: #6e8edc !important;
    text-decoration: none !important;
}

body.view-article .container-breadcrumbs a:hover,
body.view-article .container-breadcrumbs a:focus {
    color: #315fbf !important;
    text-decoration: underline !important;
}

/* =========================================================
   Responsividade das páginas internas
   ========================================================= */

@media (max-width: 1180px) {
    body.view-article main,
    body.view-article .container-breadcrumbs {
        width: calc(100% - 2rem) !important;
        max-width: 1140px !important;
    }
}

@media (max-width: 768px) {
    body.view-article main {
        min-height: 0 !important;

        padding: 1rem 1rem 2rem !important;

        box-shadow:
            10px 10px 0 rgba(45, 45, 45, 0.08) !important;
    }

    body.view-article main::after {
        border-top-width: 20px !important;
        border-left-width: 20px !important;
    }

    body.view-article main h1,
    body.view-article main .page-header h1,
    body.view-article main .page-header h2,
    body.view-article main .item-title {
        font-size: 1.55rem !important;
    }
}

/* =========================================================
   Acabamento final das páginas internas
   ========================================================= */

/* Neutralizar sombras aplicadas por regras anteriores */
body:not(.view-featured) main,
body:not(.view-featured) .container-component,
body:not(.view-featured) .com-content-article {
    filter: none !important;
}

/* Painel principal do artigo */
body:not(.view-featured) .com-content-article {
    position: relative !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 0 0 2.5rem !important;
    padding: 1.25rem 1.25rem 3rem !important;
    border: 0 !important;
    background: #fff !important;

    /* Sombra suave e simétrica */
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.04),
        10px 12px 22px rgba(35, 35, 35, 0.10) !important;
}

/* Dobra discreta no canto superior direito */
body:not(.view-featured) .com-content-article::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    z-index: 2 !important;
    display: block !important;
    width: 0 !important;
    height: 0 !important;
    border-top: 24px solid #eef0f2 !important;
    border-left: 24px solid transparent !important;
    pointer-events: none !important;
}

/*
 * Remover sombras ou fundos adicionais dos contentores
 * exteriores, para existir apenas uma sombra.
 */
body:not(.view-featured) .site-grid,
body:not(.view-featured) .container-component,
body:not(.view-featured) main {
    box-shadow: none !important;
    background-image: none !important;
}

/* Breadcrumb sem sombra própria */
body:not(.view-featured) .container-breadcrumbs,
body:not(.view-featured) .container-breadcrumbs .mod-breadcrumbs,
body:not(.view-featured) .container-breadcrumbs .breadcrumb,
body:not(.view-featured) .container-breadcrumbs .card,
body:not(.view-featured) .container-breadcrumbs .card-body {
    box-shadow: none !important;
    filter: none !important;
}

/* Barra interior do breadcrumb */
body:not(.view-featured) .container-breadcrumbs .breadcrumb {
    border: 0 !important;
    background: #f4f4f4 !important;
}

/* Moldura exterior muito discreta */
body:not(.view-featured) .container-breadcrumbs {
    padding: 1rem !important;
    border: 1px solid #d8dce0 !important;
    background: #fff !important;
}

/* Ajuste móvel */
@media (max-width: 768px) {
    body:not(.view-featured) .com-content-article {
        padding: 1rem 1rem 2rem !important;
        box-shadow:
            0 2px 4px rgba(0, 0, 0, 0.04),
            6px 8px 14px rgba(35, 35, 35, 0.09) !important;
    }

    body:not(.view-featured) .com-content-article::after {
        border-top-width: 18px !important;
        border-left-width: 18px !important;
    }
}

/* =========================================================
   Remover o triângulo duplicado dos breadcrumbs
   ========================================================= */

.container-breadcrumbs::before,
.container-breadcrumbs::after,
.container-breadcrumbs > *::before,
.container-breadcrumbs > *::after,
.container-breadcrumbs .mod-breadcrumbs::before,
.container-breadcrumbs .mod-breadcrumbs::after,
.container-breadcrumbs .breadcrumb::before,
.container-breadcrumbs .breadcrumb::after,
.container-breadcrumbs .card::before,
.container-breadcrumbs .card::after,
.container-breadcrumbs .card-body::before,
.container-breadcrumbs .card-body::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Breadcrumb simples, sem sombra nem dobra */
.container-breadcrumbs,
.container-breadcrumbs > *,
.container-breadcrumbs .mod-breadcrumbs,
.container-breadcrumbs .breadcrumb,
.container-breadcrumbs .card,
.container-breadcrumbs .card-body {
    position: relative !important;
    overflow: visible !important;
    box-shadow: none !important;
}

/* Manter apenas a dobra do painel principal do artigo */
.com-content-article::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    display: block !important;
    width: 0 !important;
    height: 0 !important;
    border-top: 30px solid #eef0f2 !important;
    border-left: 30px solid transparent !important;
    pointer-events: none !important;
}

/* =========================================================
   Afinação do canto dobrado das páginas internas
   ========================================================= */

.com-content-article {
    overflow: visible;
}

/* Neutralizar o triângulo anterior */
.com-content-article::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: block;
    box-sizing: border-box;
    width: 32px;
    height: 32px;
    border: 0;
    background:
        linear-gradient(
            225deg,
            #eef0f2 0,
            #eef0f2 49%,
            #dfe2e5 50%,
            #f5f5f5 100%
        );
    box-shadow: -3px 3px 5px rgba(35, 35, 35, 0.12);
    pointer-events: none;
}


/* =========================================================
   Remover todos os cantos dobrados e triângulos decorativos
   ========================================================= */

.com-content-article::before,
.com-content-article::after,
.item-page::before,
.item-page::after,
.container-component::before,
.container-component::after,
.container-main::before,
.container-main::after,
.container-bottom-a::before,
.container-bottom-a::after,
.container-footer::before,
.container-footer::after,
.grid-child.container-bottom-a::before,
.grid-child.container-bottom-a::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
}

/* Página interna simples, sem dobra nem sombra decorativa */
.com-content-article,
.item-page {
    position: relative !important;
    overflow: visible !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

/* Contentor exterior igualmente simples */
body:not(.view-featured) .container-component {
    background: transparent !important;
    box-shadow: none !important;
}

/* Manter apenas uma margem discreta no conteúdo */
.com-content-article {
    margin: 0 !important;
    padding: 1.25rem 1.25rem 3rem !important;
}

/* Rodapé sem cantos dobrados */
.grid-child.container-bottom-a,
.container-footer {
    overflow: visible !important;
}

/* =========================================================
   Correção final das páginas internas
   ========================================================= */

/* Manter o fundo cinzento-claro geral */
body {
    background-color: #eef0f2 !important;
}

/* Contentor principal sem fundo branco global */
body:not(.view-featured) .site-grid,
body:not(.view-featured) main,
body:not(.view-featured) .container-component {
    background: transparent !important;
}

/* Painel branco apenas no artigo */
.com-content-article {
    position: relative !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 600px !important;
    margin: 0 0 2.5rem !important;
    padding: 1.25rem 1.25rem 3rem !important;

    border: 0 !important;
    border-radius: 0 !important;

    color: #444 !important;
    background: #fff !important;
    background-image: none !important;

    box-shadow: 12px 12px 22px rgba(45, 45, 45, 0.08) !important;
    clip-path: none !important;
}

/* Remover definitivamente o canto dobrado */
.com-content-article::before,
.com-content-article::after,
body:not(.view-featured) .container-component::before,
body:not(.view-featured) .container-component::after,
body:not(.view-featured) main::before,
body:not(.view-featured) main::after {
    content: none !important;
    display: none !important;

    width: 0 !important;
    height: 0 !important;

    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Retirar qualquer recorte diagonal herdado */
.com-content-article,
.com-content-article > *,
body:not(.view-featured) .container-component {
    clip-path: none !important;
    mask-image: none !important;
}

/* =========================================================
   Breadcrumb simples, como no original
   ========================================================= */

.container-breadcrumbs {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1140px !important;
    margin: 1.25rem auto !important;
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Neutralizar o cartão exterior do Cassiopeia */
.container-breadcrumbs > *,
.container-breadcrumbs .card,
.container-breadcrumbs .card-body,
.container-breadcrumbs .mod-breadcrumbs {
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    box-shadow: none !important;
}

/* A barra cinzento-clara propriamente dita */
.container-breadcrumbs ol.breadcrumb,
.container-breadcrumbs ul.breadcrumb,
.container-breadcrumbs .breadcrumb {
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 30px !important;

    margin: 0 !important;
    padding: 0.45rem 0.75rem !important;

    border: 0 !important;
    border-radius: 0 !important;

    color: #858585 !important;
    background: #f5f5f5 !important;

    font-size: 0.72rem !important;
    line-height: 1.2 !important;
}

/* Título da página */
.com-content-article .page-header {
    margin: 0 0 1rem !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.com-content-article .page-header h1,
.com-content-article .page-header h2,
.com-content-article h1[itemprop="headline"],
.com-content-article h2[itemprop="headline"],
.com-content-article .item-title {
    margin: 0 0 1rem !important;
    color: #414141 !important;
    background: transparent !important;

    font-family:
        "Arial Narrow",
        "Liberation Sans Narrow",
        "Roboto Condensed",
        Arial,
        sans-serif !important;

    font-size: 2rem !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
}

/* Responsividade */
@media (max-width: 768px) {
    .com-content-article {
        min-height: 0 !important;
        padding: 1rem 1rem 2rem !important;
        box-shadow: 6px 6px 14px rgba(45, 45, 45, 0.08) !important;
    }
}

/* =========================================================
   Correção final das páginas internas
   ========================================================= */

/* Remover definitivamente o efeito de canto dobrado */
.com-content-article::before,
.com-content-article::after,
.item-page::before,
.item-page::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
}

/*
 * Nas páginas internas sem barras laterais, neutralizar
 * a grelha do Cassiopeia que estava a estreitar o conteúdo.
 */
body:not(.view-featured) .site-grid {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1140px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 0 !important;
}

/* Área principal com a mesma largura do menu */
body:not(.view-featured) .site-grid > main,
body:not(.view-featured) main {
    display: block !important;
    box-sizing: border-box !important;
    grid-column: auto !important;
    width: 100% !important;
    max-width: 1140px !important;
    margin: 0 auto 2.5rem !important;
    padding: 0 !important;
}

/* Painel branco do artigo */
body:not(.view-featured) .com-content-article,
body:not(.view-featured) .item-page {
    position: relative !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 600px;
    margin: 0 !important;
    padding: 1.5rem 1.25rem 3rem !important;
    color: #444 !important;
    background: #fff !important;
    box-shadow: 18px 18px 0 rgba(45, 45, 45, 0.07) !important;
}

/* Evitar contentores internos mais estreitos */
body:not(.view-featured) .com-content-article__body,
body:not(.view-featured) .item-page > div,
body:not(.view-featured) .item-page article {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
}

/* Breadcrumb alinhado com os mesmos 1140 px */
body:not(.view-featured) .container-breadcrumbs {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1140px !important;
    margin: 1.25rem auto !important;
    padding: 0 !important;
}

/* Garantir fundo cinzento-claro à volta do painel */
body:not(.view-featured) {
    background: #eef0f2 !important;
}

/* Responsividade */
@media (max-width: 1172px) {
    body:not(.view-featured) .site-grid,
    body:not(.view-featured) .site-grid > main,
    body:not(.view-featured) main,
    body:not(.view-featured) .container-breadcrumbs {
        width: calc(100% - 2rem) !important;
        max-width: none !important;
    }
}

@media (max-width: 768px) {
    body:not(.view-featured) .com-content-article,
    body:not(.view-featured) .item-page {
        min-height: 0;
        padding: 1rem 1rem 2rem !important;
        box-shadow: 10px 10px 0 rgba(45, 45, 45, 0.07) !important;
    }
}

/* =========================================================
   Remover canto dobrado e sombra das páginas internas
   ========================================================= */

.com-content-article,
.item-page,
main .item-page {
    box-shadow: none !important;
}

/* Remover o canto dobrado */
.com-content-article::before,
.com-content-article::after,
.item-page::before,
.item-page::after,
main .item-page::before,
main .item-page::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Evitar qualquer sombra no contentor exterior do artigo */
body:not(.view-featured) .com-content-article,
body:not(.view-featured) .item-page,
body:not(.view-featured) main,
body:not(.view-featured) .container-component {
    box-shadow: none !important;
}

/* =========================================================
   PAGINAS INTERNAS
   ========================================================= */

/*
 * Contentor principal dos artigos.
 * Não afeta os módulos da página inicial.
 */
body:not(.view-featured) main {
    box-sizing: border-box;
    width: 100%;
    max-width: 1140px;
    margin: 0 auto 2.5rem;
}

/*
 * Artigo individual em painel branco.
 */
body:not(.view-featured) .com-content-article,
body:not(.view-featured) .item-page {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    min-height: 600px;
    margin: 0;
    padding: 1.25rem 1.25rem 3rem;
    color: #444;
    background: #fff;
    box-shadow: 22px 22px 0 rgba(45, 45, 45, 0.08);
}

/* Canto dobrado semelhante ao template antigo */
body:not(.view-featured) .com-content-article::after,
body:not(.view-featured) .item-page::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    width: 0;
    height: 0;
    border-top: 30px solid #eef0f2;
    border-left: 30px solid transparent;
    pointer-events: none;
}

/* =========================================================
   TITULO DA PAGINA OU ARTIGO
   ========================================================= */

body:not(.view-featured) .com-content-article .page-header,
body:not(.view-featured) .item-page .page-header {
    margin: 0 0 1rem;
    padding: 0;
    border: 0;
    background: transparent;
}

body:not(.view-featured) .com-content-article .page-header h1,
body:not(.view-featured) .com-content-article .page-header h2,
body:not(.view-featured) .com-content-article h1[itemprop="headline"],
body:not(.view-featured) .com-content-article h2[itemprop="headline"],
body:not(.view-featured) .com-content-article .item-title,
body:not(.view-featured) .item-page .page-header h1,
body:not(.view-featured) .item-page .page-header h2,
body:not(.view-featured) .item-page h1[itemprop="headline"],
body:not(.view-featured) .item-page h2[itemprop="headline"],
body:not(.view-featured) .item-page .item-title {
    margin-top: 0;
    margin-bottom: 1rem;
    color: #414141;
    font-family:
        "Arial Narrow",
        "Liberation Sans Narrow",
        "Roboto Condensed",
        Arial,
        sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.2;
}

/* Cabeçalho de página definido no item de menu */
body:not(.view-featured) .page-header h1 {
    margin-top: 0;
}

/* =========================================================
   CONTEUDO DOS ARTIGOS
   ========================================================= */

body:not(.view-featured) .com-content-article__body,
body:not(.view-featured) .item-page {
    color: #444;
    font-size: 0.92rem;
    line-height: 1.5;
}

body:not(.view-featured) .com-content-article p,
body:not(.view-featured) .item-page p {
    margin-top: 0;
    margin-bottom: 0.85rem;
}

/* Títulos internos, como os nomes dos concursos */
body:not(.view-featured) .com-content-article strong,
body:not(.view-featured) .item-page strong {
    color: #d10000;
}

/* Ligações do artigo */
body:not(.view-featured) .com-content-article a,
body:not(.view-featured) .item-page a {
    color: #487ee8;
    text-decoration: none;
}

body:not(.view-featured) .com-content-article a:hover,
body:not(.view-featured) .com-content-article a:focus,
body:not(.view-featured) .item-page a:hover,
body:not(.view-featured) .item-page a:focus {
    color: #245cc8;
    text-decoration: underline;
}

/* Preservar o destaque amarelo já existente */
body:not(.view-featured) .com-content-article mark,
body:not(.view-featured) .item-page mark,
body:not(.view-featured) .com-content-article span[style*="background-color: yellow"],
body:not(.view-featured) .item-page span[style*="background-color: yellow"],
body:not(.view-featured) .com-content-article span[style*="#ffff00"],
body:not(.view-featured) .item-page span[style*="#ffff00"] {
    color: #000;
    background-color: #fff200;
    font-weight: 700;
}

/* Espaçamento antes dos títulos internos */
body:not(.view-featured) .com-content-article p + p:has(strong),
body:not(.view-featured) .item-page p + p:has(strong) {
    margin-top: 1.4rem;
}

/* Imagens dentro dos artigos */
body:not(.view-featured) .com-content-article__body img,
body:not(.view-featured) .item-page img {
    max-width: 100%;
    height: auto;
}

/* Tabelas */
body:not(.view-featured) .com-content-article table,
body:not(.view-featured) .item-page table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
}

/* =========================================================
   BREADCRUMBS
   ========================================================= */

.container-breadcrumbs {
    box-sizing: border-box;
    width: 100%;
    max-width: 1140px;
    margin: 1.25rem auto;
    padding: 0;
}

.container-breadcrumbs > *,
.container-breadcrumbs .mod-breadcrumbs,
.container-breadcrumbs .breadcrumb,
.container-breadcrumbs .card,
.container-breadcrumbs .card-body {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.container-breadcrumbs .mod-breadcrumbs,
.container-breadcrumbs .breadcrumb {
    display: flex;
    align-items: center;
    min-height: 30px;
    padding: 0.45rem 0.75rem;
    color: #858585;
    background: #f4f4f4;
    font-size: 0.72rem;
    line-height: 1.2;
}

.container-breadcrumbs .breadcrumb-item {
    color: #858585;
}

.container-breadcrumbs .breadcrumb-item a {
    color: #6e8edc;
    text-decoration: none;
}

.container-breadcrumbs .breadcrumb-item a:hover,
.container-breadcrumbs .breadcrumb-item a:focus {
    color: #315fbf;
    text-decoration: underline;
}

.container-breadcrumbs .breadcrumb-item + .breadcrumb-item::before {
    color: #999;
}

/* Ícone inicial do breadcrumb */
.container-breadcrumbs .breadcrumb-item:first-child::before,
.container-breadcrumbs .breadcrumb-item:first-child svg,
.container-breadcrumbs .breadcrumb-item:first-child span {
    color: #777;
}

/* =========================================================
   RESPONSIVIDADE DAS PAGINAS INTERNAS
   ========================================================= */

@media (max-width: 1180px) {
    .container-breadcrumbs,
    body:not(.view-featured) main {
        width: calc(100% - 2rem);
    }
}

@media (max-width: 768px) {
    body:not(.view-featured) .com-content-article,
    body:not(.view-featured) .item-page {
        min-height: 0;
        padding: 1rem 1rem 2rem;
        box-shadow: 10px 10px 0 rgba(45, 45, 45, 0.08);
    }

    body:not(.view-featured) .com-content-article::after,
    body:not(.view-featured) .item-page::after {
        border-top-width: 20px;
        border-left-width: 20px;
    }

    body:not(.view-featured) .com-content-article .page-header h1,
    body:not(.view-featured) .com-content-article .page-header h2,
    body:not(.view-featured) .com-content-article h1[itemprop="headline"],
    body:not(.view-featured) .com-content-article h2[itemprop="headline"],
    body:not(.view-featured) .item-page .page-header h1,
    body:not(.view-featured) .item-page .page-header h2,
    body:not(.view-featured) .item-page h1[itemprop="headline"],
    body:not(.view-featured) .item-page h2[itemprop="headline"] {
        font-size: 1.55rem;
    }

    .container-breadcrumbs {
        margin-top: 0.75rem;
        margin-bottom: 0.75rem;
    }
}

/* =========================================================
   PAGINAS INTERNAS SIMPLES
   Sem cantos dobrados e sem sombras
   ========================================================= */

/* Fundo exterior cinzento-claro */
body {
    background-color: #eef0f2 !important;
}

/*
 * Remover todos os pseudo-elementos que possam criar
 * cantos, triângulos ou dobras na zona do artigo.
 */
.site-grid:has(.com-content-article) main::before,
.site-grid:has(.com-content-article) main::after,
.site-grid:has(.com-content-article) .container-component::before,
.site-grid:has(.com-content-article) .container-component::after,
.site-grid:has(.com-content-article) .com-content-article::before,
.site-grid:has(.com-content-article) .com-content-article::after,
.site-grid:has(.com-content-article) .item-page::before,
.site-grid:has(.com-content-article) .item-page::after,
.site-grid:has(.item-page) main::before,
.site-grid:has(.item-page) main::after,
.site-grid:has(.item-page) .container-component::before,
.site-grid:has(.item-page) .container-component::after,
.site-grid:has(.item-page) .item-page::before,
.site-grid:has(.item-page) .item-page::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
}

/*
 * Contentores exteriores transparentes.
 * O branco fica apenas no painel do artigo.
 */
.site-grid:has(.com-content-article),
.site-grid:has(.com-content-article) main,
.site-grid:has(.com-content-article) .container-component,
.site-grid:has(.item-page),
.site-grid:has(.item-page) main,
.site-grid:has(.item-page) .container-component {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    filter: none !important;
    clip-path: none !important;
    mask: none !important;
    mask-image: none !important;
}

/* Painel branco simples do artigo */
.site-grid:has(.com-content-article) .com-content-article,
.site-grid:has(.item-page) .item-page {
    position: relative !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 0 2.5rem !important;
    padding: 1.5rem 1.25rem 3rem !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #444 !important;
    background: #ffffff !important;
    background-image: none !important;
    box-shadow: none !important;
    filter: none !important;
    clip-path: none !important;
    mask: none !important;
    mask-image: none !important;
}

/* Impedir que elementos interiores recriem a dobra */
.site-grid:has(.com-content-article) .com-content-article > *,
.site-grid:has(.item-page) .item-page > * {
    clip-path: none !important;
    mask: none !important;
    mask-image: none !important;
}

/* Breadcrumb simples */
.container-breadcrumbs,
.container-breadcrumbs > *,
.container-breadcrumbs .card,
.container-breadcrumbs .card-body,
.container-breadcrumbs .mod-breadcrumbs,
.container-breadcrumbs .breadcrumb {
    box-shadow: none !important;
    filter: none !important;
    clip-path: none !important;
    mask: none !important;
    mask-image: none !important;
}

/* Remover pseudo-elementos exteriores do breadcrumb */
.container-breadcrumbs::before,
.container-breadcrumbs::after,
.container-breadcrumbs > *::before,
.container-breadcrumbs > *::after,
.container-breadcrumbs .card::before,
.container-breadcrumbs .card::after,
.container-breadcrumbs .card-body::before,
.container-breadcrumbs .card-body::after,
.container-breadcrumbs .mod-breadcrumbs::before,
.container-breadcrumbs .mod-breadcrumbs::after {
    content: none !important;
    display: none !important;
}

/*
 * Não alterar o rodapé.
 * Repor explicitamente as sombras definidas no CSS consolidado.
 */
.grid-child.container-bottom-a {
    box-shadow: 12px 12px 24px rgba(35, 35, 35, 0.10) !important;
}

.container-footer {
    box-shadow: 12px 18px 24px rgba(35, 35, 35, 0.08) !important;
}

/* Responsividade */
@media (max-width: 768px) {
    .site-grid:has(.com-content-article) .com-content-article,
    .site-grid:has(.item-page) .item-page {
        margin-bottom: 1.5rem !important;
        padding: 1rem 1rem 2rem !important;
    }
}

/* =========================================================
   Normalização definitiva das páginas internas
   ========================================================= */

/* Fundo geral cinzento-claro */
body {
    background-color: #eef0f2 !important;
}

/* Remover todos os cantos, dobras e triângulos */
main::before,
main::after,
.container-component::before,
.container-component::after,
.com-content-article::before,
.com-content-article::after,
.item-page::before,
.item-page::after,
.page-header::before,
.page-header::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
}

/* Remover recortes e sombras decorativas */
main,
.container-component,
.com-content-article,
.item-page {
    clip-path: none !important;
    mask: none !important;
    mask-image: none !important;
    filter: none !important;
    box-shadow: none !important;
}

/* Contentor principal alinhado com menu e breadcrumb */
body:not(.view-featured) main {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1140px !important;
    margin: 0 auto 1rem !important;
    padding: 0 !important;
    background: transparent !important;
}

/* Painel branco simples do artigo */
body:not(.view-featured) .container-component {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

/* Artigo sem sombra e sem canto */
body:not(.view-featured) .com-content-article,
body:not(.view-featured) .item-page {
    position: relative !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 1.25rem 1.25rem 2.5rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #444 !important;
    background: #fff !important;
    box-shadow: none !important;
}

/* Breadcrumb alinhado com o artigo */
.container-breadcrumbs {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1140px !important;
    margin: 1.25rem auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.container-breadcrumbs > *,
.container-breadcrumbs .card,
.container-breadcrumbs .card-body,
.container-breadcrumbs .mod-breadcrumbs {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.container-breadcrumbs .breadcrumb {
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0.65rem 1rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #858585 !important;
    background: #f5f5f5 !important;
    box-shadow: none !important;
}

/* =========================================================
   Aproximar e alinhar o rodapé nas páginas internas
   ========================================================= */

/*
 * O HTML real contém:
 * .site-grid + .grid-child.container-bottom-a
 */
.site-grid + .grid-child.container-bottom-a {
    position: relative !important;
    left: 0 !important;
    right: auto !important;
    box-sizing: border-box !important;
    width: 1140px !important;
    max-width: calc(100vw - 2rem) !important;
    margin: 1rem auto 0 !important;
    transform: none !important;
}

/* Neutralizar o antigo deslocamento de -15 px */
.grid-child.container-bottom-a {
    left: 0 !important;
    transform: none !important;
}

/* Faixa institucional com a mesma largura e alinhamento */
.container-footer,
.grid-child.container-footer {
    position: relative !important;
    left: 0 !important;
    box-sizing: border-box !important;
    width: 1140px !important;
    max-width: calc(100vw - 2rem) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    transform: none !important;
}

/* Remover cantos decorativos do rodapé */
.grid-child.container-bottom-a::before,
.grid-child.container-bottom-a::after,
.container-footer::before,
.container-footer::after {
    content: none !important;
    display: none !important;
}

/* Manter apenas a sombra discreta do rodapé */
.grid-child.container-bottom-a {
    box-shadow: 10px 10px 20px rgba(35, 35, 35, 0.09) !important;
}

.container-footer {
    box-shadow: 10px 14px 20px rgba(35, 35, 35, 0.07) !important;
}

/* Responsividade */
@media (max-width: 1172px) {
    body:not(.view-featured) main,
    .container-breadcrumbs,
    .site-grid + .grid-child.container-bottom-a,
    .grid-child.container-bottom-a,
    .container-footer,
    .grid-child.container-footer {
        width: calc(100% - 2rem) !important;
        max-width: none !important;
    }
}

@media (max-width: 768px) {
    body:not(.view-featured) .com-content-article,
    body:not(.view-featured) .item-page {
        padding: 1rem 1rem 2rem !important;
    }
}

/* =========================================================
   Alinhamento lateral e vertical das páginas internas
   ========================================================= */

/*
 * A grelha principal já tem 1140 px, mas o contentor do
 * componente mantém aproximadamente 20 px de padding lateral.
 */
body:not(.view-featured) .grid-child.container-component,
body:not(.view-featured) main.container-component,
body:not(.view-featured) .container-component {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1140px !important;

    margin-right: auto !important;
    margin-left: auto !important;

    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* Painel do artigo com a largura total disponível */
body:not(.view-featured) .com-content-article,
body:not(.view-featured) .item-page {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;

    margin-right: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;

    /* Manter margem interior para o texto */
    padding-right: 1.25rem !important;
    padding-bottom: 1.5rem !important;
    padding-left: 1.25rem !important;
}

/* Breadcrumb alinhado com os mesmos limites laterais */
body:not(.view-featured) .container-breadcrumbs {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1140px !important;

    margin-right: auto !important;
    margin-left: auto !important;

    padding-right: 0 !important;
    padding-left: 0 !important;
}

/*
 * Reduzir o espaço entre o fim do artigo e o mapa do site.
 * Antes existiam margens acumuladas do artigo e do bottom-a.
 */
body:not(.view-featured) .grid-child.container-bottom-a {
    margin-top: 0.75rem !important;
}

/* Evitar margem inferior adicional no componente */
body:not(.view-featured) main,
body:not(.view-featured) .container-component,
body:not(.view-featured) .com-content-article {
    margin-bottom: 0 !important;
}

/* Margens laterais de segurança em janelas menores */
@media (max-width: 1172px) {
    body:not(.view-featured) .grid-child.container-component,
    body:not(.view-featured) main.container-component,
    body:not(.view-featured) .container-component,
    body:not(.view-featured) .container-breadcrumbs {
        width: calc(100% - 2rem) !important;
        max-width: none !important;
    }

    body:not(.view-featured) .grid-child.container-bottom-a {
        margin-top: 1rem !important;
    }
}

/* =========================================================
   Alinhamento horizontal do mapa do site
   ========================================================= */

/*
 * O mapa do site tem a largura correta, mas a grelha do
 * Cassiopeia coloca-o aproximadamente 15 px à direita.
 */
.grid-child.container-bottom-a {
    left: auto !important;
    right: auto !important;
    transform: translateX(-15px) !important;
}

/* Não aplicar deslocamento fixo em ecrãs mais pequenos */
@media (max-width: 1172px) {
    .grid-child.container-bottom-a {
        transform: none !important;
    }
}

/* =========================================================
   Alinhamento do mapa do site por tipo de página
   ========================================================= */

/* Páginas internas: sem deslocamento horizontal */
.grid-child.container-bottom-a {
    left: auto !important;
    right: auto !important;
    transform: none !important;
}

/* Página inicial: manter a correção visual de 15 px */
body.view-featured .grid-child.container-bottom-a {
    transform: translateX(-15px) !important;
}

/* Em ecrãs menores não aplicar deslocamento fixo */
@media (max-width: 1172px) {
    body.view-featured .grid-child.container-bottom-a {
        transform: none !important;
    }
}
