/* =====================================================================
   Ponte Elementor: faz as seções, colunas e widgets do Elementor ficarem
   com o mesmo visual do site (site.css). Só vale dentro de .fm-sec.
   ===================================================================== */

.fm-main .elementor-section.fm-sec {
  width: 100%;
}

/* Estrutura neutra: quem manda no layout é o grid abaixo, não a largura das colunas do Elementor. */
.fm-main .fm-sec > .elementor-container {
  display: block;
  width: min(100% - 2.5rem, 1120px);
  max-width: none;
  margin-inline: auto;
}

.fm-main .fm-sec > .elementor-container > .elementor-column {
  width: 100% !important;
  min-width: 0;
}

.fm-sec .elementor-column-wrap,
.fm-sec .elementor-widget-wrap {
  display: block;
  padding: 0 !important;
}

.fm-sec .elementor-widget:not(:last-child),
.fm-sec .elementor-element:not(:last-child) {
  margin-bottom: 0;
}

.fm-sec .elementor-widget-container {
  margin: 0;
  padding: 0;
}

/* Seções de largura total: o conteúdo (shortcode) traz o próprio .container. */
.fm-main .fm-sec.fm-full > .elementor-container {
  width: 100%;
}

/* Cores e fontes do Elementor/kit não devem sobrescrever as do site. */
.fm-sec .elementor-widget-heading .elementor-heading-title,
.fm-sec .elementor-widget-text-editor,
.fm-sec .elementor-widget-shortcode {
  font-family: inherit !important;
  color: inherit !important;
}

.fm-sec .elementor-widget-text-editor {
  font-size: inherit;
  line-height: inherit;
}

.fm-sec .elementor-widget-heading .elementor-heading-title {
  padding: 0;
  margin: 0 0 0.6em;
  font-family: var(--font-head) !important;
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.01em;
  text-wrap: balance;
}

.fm-sec .elementor-widget-heading .elementor-heading-title a {
  color: inherit;
}

.fm-sec .elementor-widget-text-editor p:last-child {
  margin-bottom: 0;
}

.fm-sec .elementor-widget-text-editor ul,
.fm-sec .elementor-widget-text-editor ol {
  margin: 0;
}

/* ------------------------------------------------------------- cabeçalho das páginas */

.fm-main .page-head.fm-sec > .elementor-container {
  display: block;
}

.page-head .fm-h1 .elementor-heading-title {
  max-width: 22ch;
  margin-bottom: 0.4em;
}

.page-head .fm-lead .lead {
  margin-bottom: 0;
}

/* ------------------------------------------------------------ colunas do conteúdo */

.fm-main .fm-layout-article > .elementor-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
  padding: 2.5rem 0 3.5rem;
}

.fm-main .fm-layout-narrow > .elementor-container {
  width: min(100% - 2.5rem, 760px);
  padding: 2.5rem 0 3.5rem;
}

.fm-main .fm-layout-quote > .elementor-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: clamp(1.75rem, 4vw, 3rem);
  align-items: start;
  padding: 2.25rem 0 3.5rem;
}

/* Blocos de texto (título + texto) dentro da coluna .prose: mesmo ritmo do site. */
.prose .fm-h:not(:first-child) {
  margin-top: 2.6rem;
}

.prose .fm-h .elementor-heading-title {
  margin-bottom: 0.6em;
}

.prose .fm-t > .elementor-widget-container > .block {
  margin: 2.6rem 0 0;
}

.prose .fm-t:first-child > .elementor-widget-container > .block {
  margin-top: 0;
}

.prose .fm-t > .elementor-widget-container > .block:last-child {
  margin-bottom: 0;
}

.fm-aside-col .aside-card {
  margin: 0;
}

.fm-layout-quote .quote-card {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.fm-layout-quote .quote-aside {
  padding: 1.35rem;
}

.fm-layout-quote .quote-aside .elementor-widget-text-editor h2 {
  margin: 0 0 0.5em;
  font-size: 1.2rem;
}

.fm-layout-quote .quote-aside .elementor-widget-text-editor h2:not(:first-child) {
  margin-top: 1.5rem;
}

/* ------------------------------------------------------------------------- home */

.fm-main .hero > .elementor-container {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

.hero .fm-h1 .elementor-heading-title {
  margin-bottom: 0.45em;
}

.hero .elementor-widget-shortcode .actions {
  margin-top: 1.75rem;
}

.fm-main .fm-cols3 > .elementor-container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.fm-card-col {
  padding-top: 1rem;
  border-top: 2px solid var(--ink);
}

.fm-card-col .elementor-heading-title {
  font-size: 1.25rem;
  margin-bottom: 0.4em;
}

.fm-card-col .elementor-heading-title a {
  text-decoration: none;
}

.fm-card-col .elementor-heading-title a:hover {
  text-decoration: underline;
  text-decoration-color: var(--amber);
  text-decoration-thickness: 3px;
}

.fm-card-col p {
  color: var(--muted);
}

.section.fm-cols3 {
  padding-top: 0;
}

.fm-main .fm-split > .elementor-container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.75rem, 4vw, 3.5rem);
  align-items: start;
}

.section .elementor-widget-heading h2.elementor-heading-title {
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  margin-bottom: 1rem;
}

/* ------------------------------------------------------------------ responsivo */

@media (max-width: 899px) {
  .fm-main .fm-layout-article > .elementor-container,
  .fm-main .fm-layout-quote > .elementor-container {
    grid-template-columns: 1fr;
  }

  .fm-main .fm-layout-article > .elementor-container {
    padding-top: 2rem;
  }
}

@media (max-width: 859px) {
  .fm-main .hero > .elementor-container,
  .fm-main .fm-cols3 > .elementor-container,
  .fm-main .fm-split > .elementor-container {
    grid-template-columns: 1fr;
  }
}

/* No editor do Elementor, o aviso de consentimento e o botão flutuante atrapalham a edição. */
.elementor-editor-active .fab,
.elementor-editor-active .consent {
  display: none;
}
