/* IPUPO Menu: cores e fonte vêm das configurações (variáveis --ipm-*) */
.ipm,.ipm-pill,.ipm-card{box-sizing:border-box;font-family:var(--ipm-fonte)}
.ipm *,.ipm-pill *,.ipm-card *{box-sizing:border-box}
.ipm a,.ipm-pill a,.ipm-card a{text-decoration:none;color:inherit}
.ipm button,.ipm-pill button,.ipm-card button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0;cursor:pointer;text-transform:none;letter-spacing:normal;box-shadow:none;border-radius:0;min-height:0;line-height:inherit}
/* O tema (Hello) pinta botões no hover/foco: aqui não */
.ipm button:hover,.ipm button:focus,.ipm-pill button:hover,.ipm-pill button:focus,.ipm-card button:hover,.ipm-card button:focus{background:none;color:inherit;border-color:transparent;box-shadow:none;text-decoration:none}
.ipm-logo{display:inline-flex;align-items:center;flex:none}
.ipm-logo img{height:var(--ipm-logo,48px);width:auto;max-width:none;display:block}
.ipm-logo strong{font-size:22px;font-weight:800;color:var(--ipm-escuro)}

/* Cabeçalho do topo */
.ipm{position:relative;z-index:100;background:var(--ipm-fundo);border-bottom:1px solid var(--ipm-linha);color:var(--ipm-escuro);width:100%}
/* Logo à esquerda, menu no centro, botão à direita */
.ipm-bar{max-width:1400px;margin:0 auto;height:96px;padding:0 48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.ipm-bar > .ipm-logo{justify-self:start}
.ipm-nav{display:flex;align-self:stretch;gap:10px}
.ipm-item{position:relative;display:flex}
.ipm-top{display:flex;align-items:center;gap:7px;padding:0 14px;font-weight:600;font-size:16.5px;color:var(--ipm-escuro);white-space:nowrap;position:relative;cursor:pointer;transition:opacity .2s}
.ipm-top svg{width:10px;height:10px;opacity:.55;transition:transform .2s}
.ipm-top::after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:2px;background:var(--ipm-azul);transform:scaleX(0);transition:transform .2s}
.ipm-item:hover .ipm-top::after,.ipm-item:focus-within .ipm-top::after,.ipm-top[aria-current]::after{transform:scaleX(1)}
.ipm-item:hover .ipm-top svg,.ipm-item:focus-within .ipm-top svg{transform:rotate(180deg)}
/* Como no Osty: ao passar o mouse num item, os outros ficam apagados */
.ipm-nav:hover .ipm-top{opacity:.42}
.ipm-nav .ipm-item:hover .ipm-top{opacity:1}
.ipm-acoes{display:flex;gap:10px;justify-self:end}
.ipm .ipm-btn-contorno{height:44px;padding:0 20px;border:1px solid var(--ipm-escuro);color:var(--ipm-escuro);font-size:14.5px;gap:10px;transition:background .2s,color .2s}
.ipm .ipm-btn-contorno span{font-size:16px}
.ipm .ipm-btn-contorno:hover{background:var(--ipm-escuro);color:#fff}
.ipm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border-radius:6px;font-weight:700;font-size:14px;line-height:1;white-space:nowrap}
.ipm-btn svg{width:18px;height:18px}
.ipm-btn-azul{background:var(--ipm-azul);color:#fff!important}
.ipm-btn-linha{border:1px solid var(--ipm-linha);color:var(--ipm-escuro)}

/* Lista curta */
.ipm-drop{position:absolute;top:calc(100% - 10px);left:4px;min-width:290px;background:var(--ipm-fundo);border:1px solid var(--ipm-linha);border-radius:8px;box-shadow:0 14px 36px rgba(15,45,74,.10);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s}
.ipm-drop a,.ipm-drop span{display:block;padding:10px 12px;border-radius:5px;font-weight:600;font-size:14.5px;color:var(--ipm-escuro)}
.ipm-drop a:hover{color:var(--ipm-azul);background:var(--ipm-suave)}
.ipm-item:hover .ipm-drop,.ipm-item:focus-within .ipm-drop{opacity:1;visibility:visible;transform:none}

/* Painel largo */
.ipm-item.ipm-tem-painel{position:static}
.ipm-painel{position:absolute;top:100%;left:0;right:0;background:var(--ipm-fundo);border-top:1px solid var(--ipm-linha);border-bottom:1px solid var(--ipm-linha);opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s}
.ipm-item:hover .ipm-painel,.ipm-item:focus-within .ipm-painel{opacity:1;visibility:visible;transform:none}
.ipm-painel-in{max-width:1400px;margin:0 auto;padding:32px 48px 36px;display:grid;grid-template-columns:repeat(var(--ipm-cols,2),minmax(0,1fr)) var(--ipm-bolsa,.9fr);gap:48px}
.ipm-painel .ipm-col-tit{display:block;margin:0 0 14px;font-family:var(--ipm-tit);font-weight:600;font-size:20px;line-height:1.2;color:var(--ipm-escuro)}
.ipm-painel .ipm-col-tit a:hover{color:var(--ipm-azul)}
.ipm-painel ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ipm-escuro)}
.ipm-painel li{margin:0;padding:0}
.ipm-painel li a,.ipm-painel li span{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--ipm-linha);font-weight:600;font-size:15px;color:var(--ipm-escuro)}
.ipm-painel li a::after{content:"→";color:var(--ipm-azul);opacity:0;transition:opacity .2s}
.ipm-painel li a:hover::after,.ipm-painel li a:focus::after{opacity:1}
.ipm-painel-rodape{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding-top:16px;border-top:1px solid var(--ipm-linha);font-size:14px}
.ipm-painel-rodape .ipm-rotulo{color:var(--ipm-texto);opacity:.6}
.ipm-painel-rodape > a:not(.ipm-todas){font-weight:600;color:var(--ipm-escuro)}
.ipm-painel-rodape > a:not(.ipm-todas):hover{color:var(--ipm-azul)}
.ipm-painel-rodape .ipm-todas{margin:0 0 0 auto!important}
.ipm-todas{display:inline-block;margin-top:16px;font-weight:700;font-size:14px;color:var(--ipm-azul)!important}
.ipm-bolsa{border:1px solid var(--ipm-linha);border-top:2px solid var(--ipm-azul);padding:22px;background:var(--ipm-suave);border-radius:4px;align-self:start}
.ipm-bolsa b{display:block;font-family:var(--ipm-tit);font-weight:600;font-size:22px;line-height:1.2;color:var(--ipm-escuro);margin-bottom:6px}
.ipm-bolsa p{margin:0 0 16px;font-size:14px;line-height:1.5;color:var(--ipm-texto);opacity:.8}

/* Botão "Menu" */
.ipm .ipm-btn-menu,.ipm-pill .ipm-btn-menu{display:inline-flex;align-items:center;gap:12px;height:42px;padding:0 16px;border-radius:6px!important;background:var(--ipm-escuro)!important;color:#fff!important;font-weight:700;font-size:14px;line-height:1}
.ipm-linhas{display:inline-grid;gap:5px}
.ipm-linhas i{display:block;width:20px;height:1.5px;background:currentColor}
.ipm .ipm-bar .ipm-btn-menu{display:none}

/* Bloco compacto depois de rolar */
.ipm-pill{position:fixed;top:16px;right:20px;z-index:9998;display:flex;align-items:center;gap:6px;padding:6px;background:color-mix(in srgb,var(--ipm-fundo) 94%,transparent);border:1px solid var(--ipm-linha);border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transform:translateY(-10px);transition:.25s}
.ipm-rolou .ipm-pill{opacity:1;visibility:visible;transform:none}
.ipm-aberto .ipm-pill{opacity:0;visibility:hidden}
.ipm-pill .ipm-logo img{height:24px;margin:0 10px 0 6px}
.admin-bar .ipm-pill,.admin-bar .ipm-card{top:48px}

/* Cartão do menu (como no Osty: o botão se abre num cartão no canto, com camadas e "Voltar") */
.ipm-card{position:fixed;top:16px;right:20px;z-index:9999;width:340px;max-height:calc(100vh - 32px);overflow:auto;background:var(--ipm-fundo);color:var(--ipm-escuro);border:1px solid var(--ipm-linha);border-radius:8px;box-shadow:0 18px 44px rgba(15,45,74,.14);padding:16px 20px 20px;transform-origin:top right;opacity:0;visibility:hidden;transform:scale(.94);transition:opacity .2s,transform .2s,visibility .2s}
.ipm-aberto .ipm-card{opacity:1;visibility:visible;transform:none}
.ipm-card .ipm-fechar{position:absolute;top:10px;right:10px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:5px!important}
.ipm-fechar span{display:block;width:20px;height:1.5px;background:var(--ipm-escuro)}
.ipm-fechar:hover{background:var(--ipm-suave)!important}
.ipm-camada[hidden]{display:none}
.ipm-camada ul{list-style:none;margin:0;padding:0}
.ipm-camada li{margin:0;padding:0}
.ipm-c-rot{font-size:13px;color:var(--ipm-texto);opacity:.55;margin:4px 0 10px}
.ipm-card .ipm-voltar{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:400;color:var(--ipm-texto)!important;opacity:.65;margin:4px 0 6px}
.ipm-card .ipm-voltar:hover{opacity:1}
.ipm-voltar span{font-size:18px;line-height:1}
.ipm-c-tit{font-family:var(--ipm-tit);font-weight:600;font-size:21px;line-height:1.2;color:var(--ipm-escuro);margin:0 40px 10px 0}
.ipm-card .ipm-c-item{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 0;font-family:var(--ipm-fonte);font-weight:600;font-size:17px;line-height:1.3;color:var(--ipm-escuro);text-align:left;transition:color .15s}
.ipm-card .ipm-c-item span{font-size:22px;line-height:1;opacity:.45}
.ipm-card a.ipm-c-item:hover,.ipm-card button.ipm-c-item:hover,.ipm-card button.ipm-c-item:focus-visible,.ipm-card .ipm-c-item[aria-current]{color:var(--ipm-azul)!important}
.ipm-c-todas{display:inline-block;margin-top:10px;font-weight:700;font-size:14px;color:var(--ipm-azul)!important}
.ipm-c-cta{display:grid;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--ipm-linha)}
.ipm-c-cta .ipm-btn{width:100%}
.ipm :focus-visible,.ipm-pill :focus-visible,.ipm-card :focus-visible{outline:2px solid var(--ipm-azul);outline-offset:2px}

/* Telas médias e celular: sempre o botão "Menu" */
@media (max-width:1080px){
	.ipm-bar{height:68px;padding:0 16px;display:flex;justify-content:space-between}
	.ipm-logo img{height:calc(var(--ipm-logo,48px) * .7)}
	.ipm-nav,.ipm-acoes{display:none}
	.ipm .ipm-bar .ipm-btn-menu{display:inline-flex;height:38px;padding:0 12px}
	.ipm-pill{top:12px;right:12px}
	.ipm-card{top:12px;right:12px;left:12px;width:auto;max-width:420px;margin-left:auto}
}
@media (max-width:782px){.admin-bar .ipm-pill,.admin-bar .ipm-card{top:58px}}
@media (prefers-reduced-motion:reduce){.ipm-drop,.ipm-painel,.ipm-pill,.ipm-card,.ipm-top,.ipm-top svg,.ipm-top::after{transition:none}}
