/* =========================================================
   Refinamento visual – Instituto O Mundo Que Queremos
   Camada aditiva sobre o layout original: mesma identidade
   (menta #02D1AE, marinho #3F3D56, Montserrat), só acabamento.
   ========================================================= */
:root{
  --imqq-menta:#02d1ae;
  --imqq-menta-escuro:#00a98c;
  --imqq-marinho:#3f3d56;
  --imqq-marinho-escuro:#2f2d42;
  --imqq-texto:#3b3a4a;
  --imqq-foco:#02d1ae;
  --imqq-ease:cubic-bezier(.16,1,.3,1);
}

/* ---------- Superfícies do navegador ---------- */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
::selection{background:var(--imqq-menta);color:#10302b}
body{caret-color:var(--imqq-menta-escuro);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html{scrollbar-color:#b9bccb #f2f3f6}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:#f2f3f6}
::-webkit-scrollbar-thumb{background:#b9bccb;border-radius:8px;border:3px solid #f2f3f6}
::-webkit-scrollbar-thumb:hover{background:var(--imqq-marinho)}

/* Foco visível só para teclado */
:focus{outline:none}
:focus-visible{outline:2px solid var(--imqq-foco);outline-offset:3px;border-radius:2px}
.elementor-button:focus-visible,
.elementor-field:focus-visible{outline-offset:2px}

/* Link "Ir para o conteúdo" quando recebe foco */
.skip-link.screen-reader-text:focus{
  background:var(--imqq-marinho)!important;color:#fff!important;
  padding:12px 20px!important;border-radius:0 0 8px 0;font-family:Montserrat,sans-serif;font-weight:600;
  clip:auto!important;clip-path:none!important;width:auto!important;height:auto!important;
  top:0!important;left:0!important;z-index:100000;text-decoration:none
}

/* ---------- Tipografia: leitura mais limpa ---------- */
/* (o texto justificado foi trocado por alinhado à esquerda direto nos CSS das páginas) */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li{ text-wrap:pretty }
.elementor-heading-title{ text-wrap:balance }
.elementor-widget-text-editor p{ hyphens:manual }
.elementor-widget-text-editor a{
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;
  text-decoration-color:currentColor;transition:color .2s var(--imqq-ease),text-decoration-color .2s var(--imqq-ease)
}
.elementor-widget-text-editor a:hover{ text-decoration-color:var(--imqq-menta) }

/* ---------- Botões ---------- */
.elementor-button{
  transition:background-color .25s var(--imqq-ease),color .25s var(--imqq-ease),
             box-shadow .25s var(--imqq-ease),transform .25s var(--imqq-ease)!important;
  will-change:transform
}
.elementor-button:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px -8px rgba(47,45,66,.45)
}
.elementor-button:active{ transform:translateY(0); box-shadow:0 2px 6px -2px rgba(47,45,66,.4) }
.elementor-button[disabled]{ opacity:.65; cursor:progress; transform:none; box-shadow:none }

/* ---------- Menu principal ---------- */
.elementor-nav-menu--main .elementor-item{ position:relative; transition:color .2s var(--imqq-ease)!important }
.elementor-nav-menu--main .elementor-item::before{
  content:"";position:absolute;left:50%;right:50%;bottom:.15em;height:2px;
  background:var(--imqq-menta);transition:left .3s var(--imqq-ease),right .3s var(--imqq-ease);
  pointer-events:none
}
.elementor-nav-menu--main .elementor-item:hover::before,
.elementor-nav-menu--main .elementor-item.elementor-item-active::before{ left:20px; right:20px }
.elementor-location-footer .elementor-nav-menu--main .elementor-item::before{ display:none }
.elementor-location-footer .elementor-nav-menu--main .elementor-item:hover{ color:var(--imqq-menta)!important }

/* Menu mobile: alvo de toque maior e transição suave */
.elementor-menu-toggle{ min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; border-radius:6px; transition:background-color .2s var(--imqq-ease) }
.elementor-nav-menu--dropdown .elementor-item{ min-height:44px; display:flex!important; align-items:center }

/* ---------- Ícones sociais e barra superior ---------- */
.elementor-social-icon{ transition:transform .25s var(--imqq-ease),opacity .25s var(--imqq-ease)!important }
.elementor-social-icon:hover{ transform:translateY(-2px); opacity:.85 }
.elementor-location-header .elementor-icon-list-item a{ transition:opacity .2s var(--imqq-ease) }
.elementor-location-header .elementor-icon-list-item a:hover{ opacity:.8 }
@media (max-width:767px){
  .elementor-social-icons-wrapper{ gap:4px }
  .elementor-social-icon{ min-width:36px; min-height:36px; display:inline-flex!important; align-items:center; justify-content:center }
}

/* ---------- Formulários ---------- */
.elementor-field-group .elementor-field{
  transition:border-color .2s var(--imqq-ease),box-shadow .2s var(--imqq-ease),background-color .2s var(--imqq-ease)!important
}
.elementor-field-group .elementor-field:focus{
  border-color:var(--imqq-menta)!important;
  box-shadow:0 0 0 3px rgba(2,209,174,.35)!important
}
.elementor-field-group .elementor-field::placeholder{ opacity:1 }
/* Formulário sobre foto (Fale Conosco): foco em branco, que aparece sobre o menta */
.elementor-location-single .elementor-field-group .elementor-field:focus,
[data-elementor-type="wp-page"] .elementor-field-group .elementor-field:focus{
  border-color:#fff!important; box-shadow:0 0 0 3px rgba(255,255,255,.45)!important; background-color:rgba(255,255,255,.12)!important
}
[data-elementor-type="wp-page"] .elementor-field-group .elementor-field::placeholder{ color:rgba(255,255,255,.9) }
/* Newsletter (campo escuro): placeholder com contraste suficiente */
.elementor-location-footer .elementor-field::placeholder,
.elementor-field[style*="3F3D56"]::placeholder{ color:#c9c8d6 }
/* Mensagens de envio */
.elementor-form .elementor-message{
  margin-top:14px;padding:12px 16px;border-radius:6px;font-family:Montserrat,sans-serif;
  font-size:14px;font-weight:500;line-height:1.45;width:100%
}
.elementor-form .elementor-message::before{ display:none }
.elementor-form .elementor-message-success{ background:#e3faf5;color:#0b5e50;border:1px solid #9be9d9 }
.elementor-form .elementor-message-danger{ background:#fdecef;color:#8c1d3a;border:1px solid #f3b4c3 }
.elementor-button.elementor-button-state{ cursor:progress }

/* ---------- Editais: cartões acessíveis por teclado ---------- */
.elementor-flip-box:focus-within .elementor-flip-box__back{ opacity:1!important; transform:none!important }
.elementor-flip-box:focus-within .elementor-flip-box__front{ opacity:0 }
.elementor-flip-box__layer{ transition-timing-function:var(--imqq-ease)!important }
.elementor-flip-box__button{ transition:background-color .2s var(--imqq-ease),color .2s var(--imqq-ease)!important }
.elementor-flip-box__button:hover{ background:#fff!important; color:var(--imqq-marinho)!important }

/* ---------- Imagens ---------- */
.elementor-widget-image img{ transition:transform .5s var(--imqq-ease) }
.elementor-widget-image a:hover img{ transform:scale(1.02) }
img{ max-width:100%; height:auto }

/* ---------- Botão "voltar ao topo" ---------- */
.imqq-topo{
  position:fixed;right:20px;bottom:20px;z-index:9990;width:46px;height:46px;border:0;border-radius:50%;
  background:var(--imqq-marinho);color:#fff;cursor:pointer;display:grid;place-items:center;
  box-shadow:0 10px 22px -10px rgba(47,45,66,.6);
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .3s var(--imqq-ease),transform .3s var(--imqq-ease),visibility .3s,background-color .2s var(--imqq-ease)
}
.imqq-topo.visivel{ opacity:1; visibility:visible; transform:none }
.imqq-topo:hover{ background:var(--imqq-menta-escuro) }
.imqq-topo svg{ width:18px; height:18px }
@media (max-width:767px){ .imqq-topo{ width:40px; height:40px; right:14px; bottom:14px } }

/* Celular: parágrafos longos centralizados cansam a leitura – alinhar à esquerda */
@media (max-width:767px){
  .elementor-widget-text-editor .imqq-longo{ text-align:left!important }
}

/* ---------- Movimento reduzido ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *,*::before,*::after{ transition-duration:.01ms!important; animation-duration:.01ms!important }
  .elementor-button:hover,.elementor-social-icon:hover,.elementor-widget-image a:hover img{ transform:none }
}

/* ---------- Página Editais: grade de vagas (sem buracos) ---------- */
.imqq-editais{ width:100%; padding:0 10px }
.imqq-grade{ display:flex; flex-wrap:wrap; gap:20px; margin:0 0 20px }
.imqq-grade > .elementor-widget-flip-box{ margin:0!important; width:auto!important; max-width:none!important }
.imqq-c3 > *{ flex:0 0 calc((100% - 40px)/3) }
.imqq-c4 > *{ flex:0 0 calc((100% - 60px)/4) }
.imqq-c2 > *{ flex:0 0 calc((100% - 20px)/2) }
.imqq-centro{ justify-content:center }
.imqq-grande .elementor-flip-box{ height:300px!important }
.imqq-compacto .elementor-flip-box{ height:120px!important }
.imqq-compacto .elementor-flip-box__layer__title{ font-size:15px!important }
.imqq-finalizado .elementor-flip-box__button{ cursor:default; pointer-events:none }
.imqq-editais-titulo{
  font-family:Montserrat,sans-serif; font-weight:700; font-size:22px; letter-spacing:.02em;
  text-transform:uppercase; color:var(--imqq-marinho); margin:40px 0 18px; display:flex; align-items:center; gap:12px
}
.imqq-editais-titulo:first-child{ margin-top:0 }
.imqq-editais-titulo span{
  display:inline-grid; place-items:center; min-width:30px; height:30px; padding:0 8px; border-radius:15px;
  background:var(--imqq-menta); color:#10302b; font-size:14px; letter-spacing:0
}
.imqq-pilulas{ list-style:none; margin:0 0 20px; padding:0; display:flex; flex-wrap:wrap; gap:10px }
.imqq-pilulas li{
  font-family:Montserrat,sans-serif; font-size:14px; font-weight:500; color:var(--imqq-marinho);
  border:1px solid #c9c8d6; border-radius:999px; padding:8px 16px; background:#fff
}
@media (max-width:1024px){
  .imqq-c3 > *, .imqq-c4 > *{ flex-basis:calc((100% - 20px)/2) }
}
@media (max-width:767px){
  .imqq-grade > *{ flex-basis:100%!important }
  .imqq-compacto .elementor-flip-box{ height:90px!important }
  .imqq-editais-titulo{ font-size:19px }
}

/* Títulos dos cartões de vagas: sem traços, linhas equilibradas e respiro entre linhas */
.elementor-flip-box__layer__title{ line-height:1.3!important; text-wrap:balance }

/* Vagas abertas: linhas que sempre ocupam a largura toda (regra de distribuição) */
.imqq-linha{ display:flex; flex-wrap:nowrap; gap:20px; margin:0 0 20px }
.imqq-linha > .elementor-widget-flip-box{ flex:1 1 0; min-width:0; margin:0!important; width:auto!important; max-width:none!important }
.imqq-linha-1 .elementor-flip-box, .imqq-linha-2 .elementor-flip-box{ height:300px!important }
.imqq-linha-3 .elementor-flip-box{ height:260px!important }
.imqq-aberto .elementor-flip-box__layer{ background-size:cover!important; background-position:center!important }
@media (max-width:1024px){
  .imqq-linha{ flex-wrap:wrap }
  .imqq-linha > .elementor-widget-flip-box{ flex:1 1 calc(50% - 10px) }
}
@media (max-width:767px){
  .imqq-linha > .elementor-widget-flip-box{ flex-basis:100% }
  .imqq-linha .elementor-flip-box{ height:220px!important }
}

/* Editais Finalizados centralizados na página */
.imqq-pilulas{ justify-content:center }
.imqq-editais-titulo:has(+ .imqq-pilulas){ justify-content:center; text-align:center }

/* =========================================================
   Topo, menu e rodapé – tablet e celular (pedido 04/11)
   ========================================================= */
@media (max-width:1024px){
  /* Barra superior: e-mail e endereço numa linha, redes à direita */
  .elementor-element-2361101e > .elementor-container{ display:flex!important; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:16px; padding:8px 24px!important; min-height:0!important }
  .elementor-element-2361101e > .elementor-container > .elementor-column{ width:auto!important; flex:0 1 auto }
  .elementor-element-2361101e .elementor-widget-wrap{ padding:0!important }
  .elementor-element-33af97a1 .elementor-icon-list-items{ display:flex!important; flex-wrap:nowrap; gap:20px; margin:0!important }
  .elementor-element-33af97a1 .elementor-icon-list-item{ white-space:nowrap; margin:0!important; padding:0!important }
  .elementor-element-33af97a1 .elementor-icon-list-item::after{ display:none!important }
  .elementor-element-33af97a1 .elementor-icon-list-text{ font-size:13px!important; line-height:1.3!important }
  .elementor-element-77d85734 .elementor-social-icons-wrapper{ display:flex; gap:4px; justify-content:flex-end }

  /* Cabeçalho: logo maior à esquerda, botão do menu à direita */
  .elementor-element-6e5978c5 > .elementor-container{ display:flex!important; flex-wrap:nowrap; align-items:center; justify-content:space-between; padding:14px 24px!important }
  .elementor-element-6e5978c5 > .elementor-container > .elementor-column{ width:auto!important; flex:0 0 auto }
  .elementor-element-6e5978c5 .elementor-widget-wrap{ padding:0!important }
  .elementor-element-b5af56b img{ width:230px!important; max-width:none!important; height:auto!important }
  .elementor-element-54547a91 .elementor-widget-wrap{ justify-content:flex-end }
  .elementor-element-3bbd7854 .elementor-menu-toggle{ margin:0 0 0 auto!important; width:46px; height:46px; border-radius:8px }

  /* Menu aberto: painel limpo, itens grandes e centralizados */
  .elementor-element-3bbd7854 nav.elementor-nav-menu--dropdown{
    background:#fff!important; border-top:3px solid var(--imqq-menta);
    box-shadow:0 18px 30px -20px rgba(47,45,66,.55); margin-top:14px!important
  }
  .elementor-element-3bbd7854 .elementor-nav-menu--dropdown .elementor-item{
    justify-content:center!important; text-align:center; font-family:Montserrat,sans-serif!important;
    font-weight:600!important; font-size:15px!important; letter-spacing:.05em; text-transform:uppercase;
    padding:17px 20px!important; color:var(--imqq-marinho)!important; background:transparent!important;
    border-bottom:1px solid #eceef3
  }
  .elementor-element-3bbd7854 .elementor-nav-menu--dropdown li:last-child .elementor-item{ border-bottom:0 }
  .elementor-element-3bbd7854 .elementor-nav-menu--dropdown .elementor-item:hover{ background:#f5f6f9!important }
  .elementor-element-3bbd7854 .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{ color:var(--imqq-menta-escuro)!important; background:#effbf8!important }

  /* Rodapé: sem botão de menu – links escritos, tudo centralizado */
  .elementor-element-6aa6c3e > .elementor-container{ display:flex!important; flex-direction:column; align-items:center; gap:20px; padding:32px 20px!important }
  .elementor-element-6aa6c3e > .elementor-container > .elementor-column{ width:100%!important }
  .elementor-element-6aa6c3e .elementor-widget-wrap{ justify-content:center; text-align:center; padding:0!important }
  .elementor-element-e4211ed, .elementor-element-e4211ed .elementor-widget-container{ text-align:center!important }
  .elementor-element-e4211ed img{ width:190px!important; height:auto!important }
  .elementor-element-da3f08a .elementor-menu-toggle,
  .elementor-element-da3f08a nav.elementor-nav-menu--dropdown{ display:none!important }
  .elementor-element-da3f08a nav.elementor-nav-menu--main{ display:block!important }
  .elementor-element-da3f08a .elementor-nav-menu--main > .elementor-nav-menu{ display:flex!important; flex-wrap:wrap; justify-content:center; row-gap:6px }
  .elementor-element-da3f08a .elementor-nav-menu--main .elementor-item{ padding:6px 14px!important }
  .elementor-element-d3c8700, .elementor-element-d3c8700 *{ text-align:center!important }
  .elementor-element-80d1c41 .elementor-social-icons-wrapper{ justify-content:center; display:flex }
}
@media (max-width:767px){
  /* Barra superior no celular: e-mail e endereço empilhados, redes embaixo */
  .elementor-element-446bb3e8{ display:block!important }
  .elementor-element-2361101e > .elementor-container{ flex-direction:column; gap:8px; padding:10px 16px!important }
  .elementor-element-33af97a1 .elementor-icon-list-items{ flex-direction:column; align-items:center; gap:4px }
  .elementor-element-33af97a1 .elementor-icon-list-text{ font-size:12.5px!important }
  .elementor-element-77d85734 .elementor-social-icons-wrapper{ justify-content:center }
  .elementor-element-6e5978c5 > .elementor-container{ padding:12px 16px!important }
  .elementor-element-b5af56b img{ width:190px!important }
  .elementor-element-e4211ed img{ width:170px!important }
}

/* ajuste da barra superior (tablet/celular) */
@media (max-width:1024px){
  .elementor-element-2361101e > .elementor-container{ flex-wrap:wrap!important; justify-content:center!important; column-gap:28px!important; row-gap:6px!important }
  .elementor-element-33af97a1 .elementor-icon-list-items{ flex-wrap:nowrap!important; justify-content:center!important; gap:22px!important }
  .elementor-element-33af97a1 .elementor-icon-list-text{ font-size:12.5px!important }
  .elementor-element-77d85734 .elementor-social-icons-wrapper{ justify-content:center!important }
}
@media (max-width:767px){
  .elementor-element-33af97a1.elementor-hidden-phone{ display:block!important }
  .elementor-element-33af97a1 .elementor-icon-list-items{ flex-direction:column!important; gap:4px!important }
}

/* rodapé (tablet/celular): sem tracinhos separadores, links com espaço igual */
@media (max-width:1024px){
  .elementor-element-da3f08a .elementor-nav-menu--main > .elementor-nav-menu > li::after,
  .elementor-element-da3f08a .elementor-nav-menu--main > .elementor-nav-menu > li:not(:last-child)::after{ display:none!important; content:none!important }
  .elementor-element-da3f08a .elementor-nav-menu--main > .elementor-nav-menu{ column-gap:6px }
}

/* Linha do menu: mesmo menta do texto ativo (#02D1AE), nunca o verde padrão do Elementor */
.elementor-nav-menu--main .elementor-item::before,
.elementor-nav-menu--main .elementor-item::after{ background-color:var(--imqq-menta)!important }

/* Botão "voltar ao topo" removido a pedido (04/11) */
.imqq-topo{ display:none!important }

/* Menu do celular/tablet: efeito escuro, próximo do original (item ativo em menta sólido, passar o dedo/mouse em verde escuro) */
@media (max-width:1024px){
  .elementor-element-3bbd7854 .elementor-nav-menu--dropdown .elementor-item{ justify-content:flex-start!important; text-align:left; padding:16px 28px!important; font-weight:500!important; font-size:14px!important; letter-spacing:.03em; color:#1f1e2b!important; border-bottom:1px solid #eceef3 }
  .elementor-element-3bbd7854 .elementor-nav-menu--dropdown .elementor-item:hover,
  .elementor-element-3bbd7854 .elementor-nav-menu--dropdown .elementor-item:focus-visible{ background:#00a185!important; color:#fff!important }
  .elementor-element-3bbd7854 .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{ background:#02d1ae!important; color:#fff!important }
}
