/*
Theme Name: MBi Child — Revisão de testes
Template: hello-elementor
Description: Tema-filho do Hello Elementor com os templates de página do site MBi (Formação e Consultoria em Excel). Não altera o tema principal nem o site existente — só fica disponível depois de ativado.
Version: 3.14.2
Text Domain: mbi-child
*/

/* =========================================================================
   1. BASE — evita overflow horizontal em qualquer viewport
   ====================================================================== */
html, body { max-width: 100%; overflow-x: clip; }
img, svg, video, iframe { max-width: 100%; }

/* Impede que uma palavra longa (URL, e-mail) estoure o layout a 320px */
.mbi-sobre-page h1,
.mbi-sobre-page h2,
.mbi-sobre-page h3,
.mbi-sobre-page p { overflow-wrap: break-word; text-wrap: pretty; }

/* =========================================================================
   2. ACESSIBILIDADE
   ====================================================================== */

/* Skip link: invisível até receber foco por teclado */
.mbi-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
  background: #0e3e15;
  color: #fff;
  padding: 14px 22px;
  font: 600 14px Montserrat, sans-serif;
  text-decoration: none;
}
.mbi-skip-link:focus {
  left: 12px;
  top: 12px;
  outline: 3px solid #e86a25;
  outline-offset: 2px;
}

/* Foco visível consistente em todos os elementos interativos */
.mbi-sobre-page a:focus-visible,
.mbi-sobre-page button:focus-visible,
.mbi-sobre-page summary:focus-visible,
.mbi-sobre-page input:focus-visible,
.mbi-sobre-page select:focus-visible,
.mbi-sobre-page textarea:focus-visible {
  outline: 3px solid #e86a25;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Alvos de toque: mínimo 44x44 nos controlos dos carrosséis e FAQ */
.mbi-sobre-page .mbi-rail-prev,
.mbi-sobre-page .mbi-rail-next,
.mbi-sobre-page .mbi-testi-prev,
.mbi-sobre-page .mbi-testi-next {
  min-width: 44px;
  min-height: 44px;
}
.mbi-sobre-page summary { min-height: 44px; }

/* Remove animações para quem pediu movimento reduzido no sistema */
@media (prefers-reduced-motion: reduce) {
  .mbi-sobre-page *,
  .mbi-sobre-page *::before,
  .mbi-sobre-page *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* =========================================================================
   3. RESPONSIVO — margens laterais progressivas
   Os templates usam padding lateral de 64px. Abaixo de 768px isso deixa
   pouco espaço útil, por isso é reduzido de forma consistente.
   ====================================================================== */

/* Tablet */
@media (max-width: 1024px) {
  .mbi-sobre-page > div[style*="64px"] { padding-left: 40px !important; padding-right: 40px !important; }
}

/* Telemóvel grande */
@media (max-width: 600px) {
  .mbi-sobre-page > div[style*="64px"] { padding-left: 24px !important; padding-right: 24px !important; }

  /* Reduz o espaçamento vertical exagerado das secções em ecrãs pequenos */
  .mbi-sobre-page > div[style*="padding:150px"],
  .mbi-sobre-page > div[style*="padding:140px"],
  .mbi-sobre-page > div[style*="padding:130px"] {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
  }

  /* CTAs ocupam a largura disponível: mais fáceis de acertar com o dedo */
  .mbi-sobre-page a[style*="background:#e86a25"] {
    display: block !important;
    text-align: center;
  }
}

/* Telemóvel pequeno (320–375px) */
@media (max-width: 400px) {
  .mbi-sobre-page > div[style*="64px"] { padding-left: 18px !important; padding-right: 18px !important; }
  .mbi-sobre-page h1 { font-size: 28px !important; line-height: 1.25 !important; }
  .mbi-sobre-page h2 { font-size: 23px !important; line-height: 1.3 !important; }
  .mbi-sobre-page h3 { font-size: 19px !important; }

  /* Os cartões dos carrosséis não devem ser mais largos que o ecrã */
  .mbi-sobre-page .mbi-testi-scroll > div { flex: 0 0 84vw !important; }
}

/* =========================================================================
   4. BLOG — widget da sidebar
   ====================================================================== */
.mbi-blog-widget {
  background: #f2ece0;
  padding: 28px 26px;
  margin-bottom: 24px;
  font: 400 14px/1.7 Montserrat, sans-serif;
  color: #494539;
}
.mbi-blog-widget a { color: #0e3e15; }

/* =========================================================================
   5. IMPRESSÃO — páginas legíveis em papel
   ====================================================================== */
@media print {
  .mbi-skip-link,
  .mbi-rail-prev, .mbi-rail-next,
  .mbi-testi-prev, .mbi-testi-next,
  iframe { display: none !important; }
  .mbi-sobre-page { background: #fff !important; color: #000 !important; }
  .mbi-sobre-page > div { padding: 20px 0 !important; }
}

/* =========================================================================
   6. FORÇA A TIPOGRAFIA DO TEMA
   Os Estilos Globais do Elementor/WordPress aplicam família, peso, itálico
   e maiúsculas por omissão a h1-h6/p/botões, sobrepondo-se ao design.
   Estas regras, carregadas depois e com !important, restauram exatamente
   o que o design define: Playfair Display nos títulos, Montserrat no
   resto, sem transformação de capitalização, itálico real em i/em, peso
   real em b/strong — e devolvem as maiúsculas apenas onde o próprio
   design as pede inline (eyebrows/legendas), através da regra final.
   ====================================================================== */
#mbi-main h1, #mbi-main h2, #mbi-main h3, #mbi-main h4, #mbi-main h5, #mbi-main h6 {
  font-family: 'Playfair Display', serif;
  font-style: normal;
  text-transform: none !important;
  letter-spacing: normal !important;
}
#mbi-main p, #mbi-main li, #mbi-main label, #mbi-main a, #mbi-main button,
#mbi-main input, #mbi-main textarea, #mbi-main select, #mbi-main summary {
  font-family: 'Montserrat', sans-serif;
  text-transform: none !important;
}
#mbi-main i, #mbi-main em { font-style: italic !important; }
#mbi-main b, #mbi-main strong { font-weight: 700 !important; }
/* Restaura maiúsculas/itálico só onde o próprio inline style do design os pede */
#mbi-main [style*="text-transform:uppercase"],
#mbi-main [style*="text-transform: uppercase"] { text-transform: uppercase !important; }
#mbi-main [style*="font-style:normal"],
#mbi-main [style*="font-style: normal"] { font-style: normal !important; }


/* MBi: apresentação do consentimento, sem alterar as escolhas. */
.cky-consent-container .cky-consent-bar{background:#faf7f1!important;border:1px solid #ded5c4!important;border-radius:12px!important;padding:22px!important;box-shadow:0 8px 30px #0e3e1526!important}
.cky-consent-container .cky-title{color:#164d27!important;font:600 19px/1.3 Montserrat,sans-serif!important;margin:0 0 12px!important}
.cky-consent-container .cky-notice-des{color:#494539!important;font:400 13px/1.65 Montserrat,sans-serif!important}
.cky-consent-container .cky-policy{color:#164d27!important;text-decoration:underline!important}
.cky-consent-container .cky-notice-btn-wrapper{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:16px!important}
.cky-consent-container .cky-btn{margin:0!important;border-radius:5px!important;padding:11px 9px!important;font:600 12px/1.4 Montserrat,sans-serif!important;text-transform:none!important;min-height:42px!important;box-shadow:none!important;white-space:normal!important}
.cky-consent-container .cky-btn-customize{flex:1 0 100%!important;background:transparent!important;color:#164d27!important;border:1px solid #164d27!important}
.cky-consent-container .cky-btn-reject,.cky-consent-container .cky-btn-accept{flex:1 1 42%!important;background:#164d27!important;color:#fff!important;border:1px solid #164d27!important}
.cky-consent-container .cky-btn:hover{filter:brightness(.92)}
.cky-consent-container .cky-btn:focus-visible{outline:3px solid #e86a25!important;outline-offset:3px!important}

/* Centro de preferências com a identidade MBi. */
#ckyPreferenceCenter{background:#faf7f1!important;border:1px solid #ded5c4!important;border-radius:12px!important;color:#494539!important}
#ckyPreferenceCenter .cky-btn{background:#164d27!important;color:#fff!important;border:1px solid #164d27!important;border-radius:5px!important;font:600 12px/1.4 Montserrat,sans-serif!important;text-transform:none!important;padding:12px 14px!important;min-height:44px!important;box-shadow:none!important}
#ckyPreferenceCenter .cky-btn-preferences{background:transparent!important;color:#164d27!important}
#ckyPreferenceCenter .cky-accordion-btn{color:#164d27!important;font-family:Montserrat,sans-serif!important;text-transform:none!important}
#ckyPreferenceCenter .cky-btn:focus-visible{outline:3px solid #e86a25!important;outline-offset:3px!important}
