.elementor-10 .elementor-element.elementor-element-2c0c6052{--display:flex;}.elementor-10 .elementor-element.elementor-element-4259816a{--display:flex;--overlay-opacity:0.9;}.elementor-10 .elementor-element.elementor-element-4259816a::before, .elementor-10 .elementor-element.elementor-element-4259816a > .elementor-background-video-container::before, .elementor-10 .elementor-element.elementor-element-4259816a > .e-con-inner > .elementor-background-video-container::before, .elementor-10 .elementor-element.elementor-element-4259816a > .elementor-background-slideshow::before, .elementor-10 .elementor-element.elementor-element-4259816a > .e-con-inner > .elementor-background-slideshow::before, .elementor-10 .elementor-element.elementor-element-4259816a > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#00031F;--background-overlay:'';}.elementor-10 .elementor-element.elementor-element-440785f9{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#FFFFFF38;--border-color:#FFFFFF38;--border-radius:2px 2px 2px 2px;--padding-top:8px;--padding-bottom:8px;--padding-left:8px;--padding-right:8px;}.elementor-10 .elementor-element.elementor-element-440785f9:not(.elementor-motion-effects-element-type-background), .elementor-10 .elementor-element.elementor-element-440785f9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF0A;}.elementor-10 .elementor-element.elementor-element-77d84bd{--display:flex;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-10 .elementor-element.elementor-element-b584e01{text-align:start;}.elementor-10 .elementor-element.elementor-element-b584e01 img{width:108px;}.elementor-10 .elementor-element.elementor-element-91ae771{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-10 .elementor-element.elementor-element-ee1811a .elementor-menu-toggle{margin:0 auto;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-10 .elementor-element.elementor-element-742069fe{--display:flex;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-10 .elementor-element.elementor-element-1bb20e09{--display:flex;}.elementor-10 .elementor-element.elementor-element-1b480814{--display:flex;}.elementor-10 .elementor-element.elementor-element-2fa13717{--display:flex;}.elementor-10 .elementor-element.elementor-element-68949e86{--display:flex;}.elementor-10 .elementor-element.elementor-element-739a3ade{--display:flex;}.elementor-10 .elementor-element.elementor-element-ea53189{--display:flex;}.elementor-10 .elementor-element.elementor-element-36551bfb{--display:flex;}.elementor-10 .elementor-element.elementor-element-614c1ef9{--display:flex;}.elementor-10 .elementor-element.elementor-element-614c1ef9.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-10 .elementor-element.elementor-element-430df7b7{--display:flex;}.elementor-10 .elementor-element.elementor-element-321791b2{--display:flex;}.elementor-10 .elementor-element.elementor-element-2dcd4539{--display:flex;}.elementor-10 .elementor-element.elementor-element-7320e43f{--display:flex;}.elementor-10 .elementor-element.elementor-element-4bd35a83{--display:flex;}.elementor-10 .elementor-element.elementor-element-548f00e1{--display:flex;}.elementor-10 .elementor-element.elementor-element-5e2898f7{--display:flex;}.elementor-10 .elementor-element.elementor-element-330a3314{--display:flex;}.elementor-10 .elementor-element.elementor-element-3d36c55b{--display:flex;}.elementor-10 .elementor-element.elementor-element-14705dd{--display:flex;}.elementor-10 .elementor-element.elementor-element-4580d5a2{--display:flex;}.elementor-10 .elementor-element.elementor-element-15709a14{--display:flex;}.elementor-10 .elementor-element.elementor-element-64ba8e15{--display:flex;}.elementor-10 .elementor-element.elementor-element-3529b952{--display:flex;}.elementor-10 .elementor-element.elementor-element-3f5211c6{--display:flex;}.elementor-10 .elementor-element.elementor-element-7f4c34f{--display:flex;}.elementor-10 .elementor-element.elementor-element-64cf77ea{--display:flex;}.elementor-10 .elementor-element.elementor-element-5e50be86{--display:flex;}.elementor-10 .elementor-element.elementor-element-359d8548{--display:flex;}.elementor-10 .elementor-element.elementor-element-3b8de23b{--display:flex;}.elementor-10 .elementor-element.elementor-element-73762287{--display:flex;}.elementor-10 .elementor-element.elementor-element-7c0fa21d{--display:flex;}.elementor-10 .elementor-element.elementor-element-5ff9cee8{--display:flex;}.elementor-10 .elementor-element.elementor-element-7f3d8314{--display:flex;}.elementor-10 .elementor-element.elementor-element-1a492bc8{--display:flex;}.elementor-10 .elementor-element.elementor-element-3ac148e6{--display:flex;}.elementor-10 .elementor-element.elementor-element-67d7ebac{--display:flex;}.elementor-10 .elementor-element.elementor-element-7b5b7150{--display:flex;}.elementor-10 .elementor-element.elementor-element-69dff037{--display:flex;}.elementor-10 .elementor-element.elementor-element-4a7245e4{--display:flex;}.elementor-10 .elementor-element.elementor-element-299d9007{--display:flex;}.elementor-10 .elementor-element.elementor-element-3dd31746{--display:flex;}.elementor-10 .elementor-element.elementor-element-430d8ef2{--display:flex;}.elementor-10 .elementor-element.elementor-element-43c5e24d{--display:flex;}.elementor-10 .elementor-element.elementor-element-4828a2c1{--display:flex;}.elementor-10 .elementor-element.elementor-element-525f84e9{--display:flex;}.elementor-10 .elementor-element.elementor-element-4132253d{--display:flex;}.elementor-10 .elementor-element.elementor-element-67c8aca5{--display:flex;}@media(min-width:768px){.elementor-10 .elementor-element.elementor-element-77d84bd{--width:25%;}.elementor-10 .elementor-element.elementor-element-614c1ef9{--width:100%;}}/* Start custom CSS *//* ============================================
   BURG — Estilos completos (Elementor build)
   Cole em: Elementor → Site Settings → Custom CSS
   ============================================ */

:root {
  --navy: #002E7A;
  --navy-deep: #001E50;
  --cream: #F5EEE1;
  --cream-soft: #FAF6EC;
  --ink: #0A0A0A;
  --ink-soft: rgba(0, 30, 80, 0.65);
  --rule: rgba(0, 30, 80, 0.18);
  --rule-soft: rgba(0, 30, 80, 0.10);

  --serif: 'STIX Two Text', 'Times New Roman', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --container: clamp(1rem, 5vw, 5rem);
  --section-pad: clamp(5rem, 8vw, 9rem);

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}

@import url('https://fonts.googleapis.com/css2?family=STIX+Two+Text:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600&display=swap');

body.elementor-page,
body {
  font-family: var(--sans) !important;
  background: var(--cream) !important;
  color: var(--navy-deep);
  line-height: 1.55;
  font-size: 1rem;
  overflow-x: hidden;
}
body *::selection { background: var(--navy); color: var(--cream); }

/* ============================================
   RESET — neutraliza defaults dos containers Elementor
   para todas as nossas seções BEM
   ============================================ */
.e-con.hero, .e-con.billboard, .e-con.filosofia, .e-con.atuacao,
.e-con.metodo, .e-con.sobre, .e-con.notas, .e-con.cta,
.e-con.section, .e-con.section__head,
.e-con.filosofia__grid, .e-con.filosofia__col,
.e-con.services, .e-con.service, .e-con.service__main,
.e-con.steps, .e-con.step,
.e-con.sobre__grid, .e-con.sobre__text,
.e-con.cta__grid, .e-con.contact-card,
.e-con.hero__bottom,
.e-con.burg-full, .e-con.burg-loader-wrap, .e-con.burg-nav-wrap,
.e-con.burg-footer-wrap, .e-con.burg-scripts-wrap {
  --container-max-width: 100% !important;
  --padding-block-start: 0px;
  --padding-block-end: 0px;
  --padding-inline-start: 0px;
  --padding-inline-end: 0px;
  --gap: 0px;
  --row-gap: 0px;
  --widgets-spacing: 0px;
  --widgets-spacing-row: 0px;
  --widgets-spacing-column: 0px;
  max-width: 100% !important;
  width: 100% !important;
}

/* Widget reset (zera espaçamento inferior automático do Elementor) */
.elementor-page .elementor-widget:not(:last-child) { margin-block-end: 0 !important; }

/* Resets de tipografia/cor dentro das nossas seções
   (sobrescreve o "global colors" do kit do Elementor) */
.hero, .billboard, .section, .cta, .footer {
  --e-global-color-primary: var(--navy);
  --e-global-color-secondary: var(--navy-deep);
  --e-global-color-text: var(--ink-soft);
  --e-global-color-accent: var(--navy);
  --e-global-typography-primary-font-family: 'STIX Two Text';
  --e-global-typography-primary-font-weight: 400;
  --e-global-typography-secondary-font-family: 'STIX Two Text';
  --e-global-typography-text-font-family: 'Inter';
  --e-global-typography-accent-font-family: 'Inter';
}

/* Heading e Text Editor — força nossa tipografia e remove margens
   herdadas do tema/kit */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
  margin: 0;
  padding: 0;
  font-weight: 400;
}
.elementor-widget-heading .elementor-heading-title em,
.elementor-widget-text-editor em { font-style: italic; }

/* Carga padrão dentro das nossas seções: serifa */
.hero .elementor-widget-heading .elementor-heading-title,
.billboard .elementor-widget-heading .elementor-heading-title,
.section .elementor-widget-heading .elementor-heading-title,
.cta .elementor-widget-heading .elementor-heading-title {
  font-family: var(--serif) !important;
  color: var(--navy);
}

.burg-full,
.elementor-element.burg-full { width: 100% !important; max-width: 100% !important; }

/* ============================================
   LOADER
   ============================================ */
.burg-loader-wrap { position: relative; height: 0; min-height: 0; overflow: visible; }
.loader {
  position: fixed; inset: 0;
  background: var(--navy); color: var(--cream);
  z-index: 10000;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 4rem;
}
.loader__inner { display: flex; flex-direction: column; align-items: center; gap: 2rem; }
.loader__mark { width: 80px; animation: pulse 2s var(--ease-in-out) infinite; }
@keyframes pulse {
  0%,100% { opacity: .5; transform: scale(1); }
  50%     { opacity: 1;  transform: scale(1.05); }
}
.loader__count {
  font-family: var(--serif);
  font-size: 4rem; font-weight: 400; letter-spacing: -0.04em;
  font-feature-settings: "tnum";
  color: var(--cream);
}
.loader__bar {
  width: min(40vw, 320px); height: 1px;
  background: rgba(245,238,225,.2);
  position: relative; overflow: hidden;
}
.loader__bar span {
  position: absolute; inset: 0;
  background: var(--cream);
  transform: scaleX(0); transform-origin: left;
}
html:not(.js) .loader { display: none; }
.is-loading, .is-loading body { overflow: hidden; }
body.elementor-editor-active .loader { display: none !important; }

/* ============================================
   FIXES v2 — widget wrappers que precisam escapar
   do fluxo normal (imagens de fundo, sticky, span-grid)
   ============================================ */

/* O Elementor torna .elementor-element relative por padrão. Para
   imagens de hero/billboard que precisam fazer fundo absoluto, o
   wrapper do widget HTML precisa virar absolute também. */
.hero > .elementor-widget-html:first-of-type,
.billboard > .elementor-widget-html:first-of-type {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: -2;
  pointer-events: none;
  overflow: hidden;
}
.hero > .elementor-widget-html:first-of-type > .elementor-widget-container,
.billboard > .elementor-widget-html:first-of-type > .elementor-widget-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
}
.hero__image,
.billboard__image {
  position: absolute !important;
  inset: -10% 0 0 0 !important;
  width: 100% !important;
  height: 120% !important;
  margin: 0 !important;
  display: block !important;
  will-change: transform;
}
.hero__image img,
.billboard__image img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

/* Filosofia: a "imagem" é o último widget HTML do filosofia__grid e
   precisa atravessar as duas colunas */
.filosofia__grid > .elementor-widget-html:last-child {
  grid-column: 1 / -1 !important;
  margin-top: 2.5rem !important;
}
.filosofia__grid > .elementor-widget-html > .elementor-widget-container { padding: 0; }
.filosofia__image {
  aspect-ratio: 21/9;
  overflow: hidden;
  background: var(--navy-deep);
  margin: 0 !important;
  display: block;
  width: 100%;
}
.filosofia__image img {
  width: 100%; height: 110%;
  object-fit: cover;
  transform: scale(1.05);
  will-change: transform;
}
@media (max-width: 800px) {
  .filosofia__image { aspect-ratio: 4/3; }
}

/* Sobre: o "card" da imagem é o último widget HTML do sobre__grid
   e precisa fazer sticky para acompanhar a coluna de texto */
.sobre__grid > .elementor-widget-html:last-child {
  position: sticky !important;
  top: 6rem !important;
  align-self: start !important;
  height: fit-content;
}
.sobre__grid > .elementor-widget-html > .elementor-widget-container { padding: 0; }
.sobre__image {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--navy-deep);
  display: block;
  margin: 0 !important;
  position: relative;
}
.sobre__image img {
  width: 100%; height: 110%;
  object-fit: cover;
  transform: scale(1.05);
  filter: contrast(.96) brightness(.95);
  will-change: transform;
}
@media (max-width: 900px) {
  .sobre__grid > .elementor-widget-html:last-child {
    position: relative !important;
    top: 0 !important;
  }
}

/* CTA do hero — o widget HTML do botão é o segundo grid item do hero__bottom */
.hero__bottom > .elementor-widget-html:last-of-type {
  justify-self: end;
  display: flex;
}
.hero__bottom > .elementor-widget-html:last-of-type > .elementor-widget-container {
  padding: 0;
}
.hero__cta-wrap { display: flex; margin: 0; padding: 0; }

/* ============================================
   HERO — re-escrito em flex column para evitar
   problemas com items absolute dentro de grid
   (sobrescreve o bloco anterior)
   ============================================ */
.e-con.hero,
.elementor-element.hero {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: 100svh !important;
  min-height: 640px !important;
  padding: clamp(5rem, 7vw, 7rem) var(--container) clamp(1.25rem, 2vw, 2rem) !important;
  position: relative;
  background: var(--cream);
  overflow: hidden;
  isolation: isolate;
  gap: 0 !important;
  grid-template-rows: none !important;
}
/* Hero meta (1º filho in-flow, depois da imagem absoluta) */
.hero > .elementor-widget-html:nth-of-type(2) > .elementor-widget-container { padding: 0; }
/* Hero título — ocupa o espaço central */
.hero > .elementor-widget-heading {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.5rem, 3vw, 3rem) 0;
}
.hero > .elementor-widget-heading > .elementor-widget-container { padding: 0; }
/* Hero bottom container já é flex/grid; força width 100% e gap correto */
.hero > .e-con.hero__bottom {
  width: 100% !important;
}
/* Hero rule (último HTML widget) */
.hero > .elementor-widget-html:last-of-type > .elementor-widget-container { padding: 0; }

/* ============================================
   BILLBOARD — mesma estratégia, flex column
   ============================================ */
.e-con.billboard,
.elementor-element.billboard {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  min-height: 95svh !important;
  padding: clamp(2.5rem, 5vw, 5rem) var(--container) !important;
  position: relative;
  background: var(--navy-deep);
  color: var(--cream);
  overflow: hidden;
  isolation: isolate;
  gap: 0 !important;
  grid-template-rows: none !important;
}
.billboard > .elementor-widget-html:not(:first-of-type) > .elementor-widget-container { padding: 0; }
.billboard > .elementor-widget-heading {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4vw, 4rem) 0;
}
.billboard > .elementor-widget-heading > .elementor-widget-container { padding: 0; width: 100%; }
.billboard--right > .elementor-widget-heading > .elementor-widget-container .elementor-heading-title { margin-left: auto !important; text-align: right; }
.billboard--center > .elementor-widget-heading > .elementor-widget-container .elementor-heading-title { margin: 0 auto !important; text-align: center; }

/* ============================================
   Resets de padding em widgets dentro das nossas seções
   (o .elementor-widget-container vem com padding default
   em alguns kits do Elementor) — zerar para todos
   ============================================ */
.hero .elementor-widget > .elementor-widget-container,
.billboard .elementor-widget > .elementor-widget-container,
.section .elementor-widget > .elementor-widget-container,
.cta .elementor-widget > .elementor-widget-container,
.burg-loader-wrap .elementor-widget > .elementor-widget-container,
.burg-nav-wrap .elementor-widget > .elementor-widget-container,
.burg-footer-wrap .elementor-widget > .elementor-widget-container {
  padding: 0;
  margin: 0;
}

/* ============================================
   Sub do head em section (notas / atuação / etc.)
   precisa de espaçamento entre heading e parágrafo
   ============================================ */
.section__head > .elementor-widget-text-editor { margin-top: 2rem !important; }

/* Para o filosofia col, espaço entre parágrafos */
.filosofia__col > .elementor-widget:not(:last-child) { margin-bottom: 1.25rem; }
.filosofia__col > .elementor-widget-text-editor:first-of-type { margin-bottom: 1.5rem; }

/* Sobre text — espaço após o título grande */
.sobre__text > .elementor-widget-text-editor { margin-top: 0; }

/* Stats no sobre estão dentro de HTML widget; widget já tem .sobre__stats */
.sobre__text > .elementor-widget-html:last-of-type > .elementor-widget-container { padding: 0; }

/* ============================================
   NAV
   ============================================ */
.burg-nav-wrap { position: relative; height: 0; min-height: 0; overflow: visible; }
.nav {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex !important; align-items: center; justify-content: space-between;
  padding: 1.5rem var(--container) !important;
  transition: padding .4s var(--ease-out), background .3s ease;
  mix-blend-mode: difference;
  color: var(--cream);
}
.nav--solid {
  mix-blend-mode: normal;
  color: var(--navy);
  background: rgba(245,238,225,.88);
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid var(--rule);
}
.nav.is-scrolled { padding: 1rem var(--container) !important; }
.nav__logo { display: block; width: clamp(72px, 8vw, 110px); color: currentColor; }
.nav__logo-svg { width: 100%; height: auto; display: block; }
.nav__menu { display: flex; gap: 2.25rem; }
.nav__link {
  font-size: .78rem; letter-spacing: .12em; text-transform: uppercase;
  position: relative; padding: .4rem 0;
  color: currentColor; text-decoration: none;
  font-family: var(--sans);
}
.nav__link::after {
  content: ''; position: absolute;
  left: 0; right: 100%; bottom: 0; height: 1px;
  background: currentColor;
  transition: right .5s var(--ease-out);
}
.nav__link:hover::after { right: 0; }
.nav__cta {
  display: inline-flex; align-items: center; gap: .6rem;
  border: 1px solid currentColor;
  padding: .7rem 1.2rem; border-radius: 999px;
  font-size: .78rem; letter-spacing: .08em; text-transform: uppercase;
  transition: padding .3s var(--ease-out), gap .3s var(--ease-out);
  color: currentColor; text-decoration: none;
  font-family: var(--sans);
}
.nav__cta:hover { gap: 1rem; padding-right: 1.4rem; }
.nav__cta-arrow { display: inline-block; transition: transform .4s var(--ease-out); }
.nav__cta:hover .nav__cta-arrow { transform: translateX(4px); }
@media (max-width: 900px) {
  .nav__menu { display: none; }
  .nav__cta { padding: .55rem .9rem; font-size: .7rem; }
}

/* ============================================
   HERO
   ============================================ */
.e-con.hero,
.elementor-element.hero {
  --display: grid !important;
  display: grid !important;
  grid-template-rows: auto 1fr auto auto !important;
  height: 100svh !important;
  min-height: 640px !important;
  position: relative;
  padding: clamp(5rem, 7vw, 7rem) var(--container) clamp(1.25rem, 2vw, 2rem) !important;
  background: var(--cream);
  overflow: hidden;
  isolation: isolate;
  gap: 0 !important;
}
.hero--billboard,
.elementor-element.hero--billboard { background: var(--navy-deep); color: var(--cream); }

.hero__image {
  position: absolute; inset: -10% 0 0 0;
  width: 100%; height: 120%;
  will-change: transform; z-index: -2; margin: 0;
  display: block;
}
.hero__image img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(.62) contrast(1.05);
}
.hero--billboard::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(0,30,80,.55) 0%, rgba(0,30,80,.10) 28%,
    rgba(0,30,80,.10) 58%, rgba(0,30,80,.75) 100%);
  z-index: -1; pointer-events: none;
}

.hero__meta {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .72rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ink-soft);
  border-top: 1px solid var(--rule);
  padding-top: 1.1rem;
  margin: 0;
}
.hero--billboard .hero__meta {
  color: var(--cream);
  border-top-color: rgba(245,238,225,.35);
}

/* Hero title — terceiro filho do container .hero, é o widget Heading */
.hero > .elementor-widget-heading {
  align-self: center;
  padding: clamp(1.5rem, 3vw, 3rem) 0;
}
.hero > .elementor-widget-heading .elementor-heading-title {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
  font-size: clamp(2.6rem, min(8.5vw, 14svh), 9rem) !important;
  line-height: .95 !important;
  letter-spacing: -.04em !important;
  color: var(--navy) !important;
  margin: 0 !important;
}
.hero--billboard > .elementor-widget-heading .elementor-heading-title { color: var(--cream) !important; }
.hero > .elementor-widget-heading .elementor-heading-title em { font-style: italic; }
.hero > .elementor-widget-heading .elementor-heading-title .line { display: block; overflow: hidden; padding-bottom: .06em; }
.hero > .elementor-widget-heading .elementor-heading-title .word { display: inline-block; will-change: transform; }

.e-con.hero__bottom,
.elementor-element.hero__bottom {
  --display: grid !important;
  display: grid !important;
  grid-template-columns: 1.2fr 1fr !important;
  gap: clamp(2rem, 6vw, 6rem) !important;
  align-items: end !important;
  margin-bottom: clamp(1.25rem, 2vw, 2rem);
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Lead = primeiro text-editor dentro do hero__bottom */
.hero__bottom > .elementor-widget-text-editor {
  font-family: var(--serif) !important;
  font-style: italic;
  font-size: clamp(1.2rem, 1.55vw, 1.55rem) !important;
  line-height: 1.4;
  color: var(--navy-deep);
  letter-spacing: -.005em;
  max-width: 38ch;
}
.hero__bottom > .elementor-widget-text-editor p {
  font-family: var(--serif) !important;
  font-style: italic;
  color: inherit;
  font-size: inherit !important;
  line-height: inherit !important;
}
.hero--billboard .hero__bottom > .elementor-widget-text-editor,
.hero--billboard .hero__bottom > .elementor-widget-text-editor p {
  color: var(--cream); opacity: .95;
}
.hero__cta-wrap { justify-self: end; display: flex; }

.hero__rule {
  display: flex; justify-content: space-between; align-items: center;
  border-top: 1px solid var(--rule);
  padding-top: 1.1rem;
  font-size: .72rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ink-soft);
}
.hero--billboard .hero__rule { color: var(--cream); border-top-color: rgba(245,238,225,.35); }
.hero--billboard .hero__year { color: var(--cream); }
.hero--billboard .scroll-indicator__line { background: rgba(245,238,225,.55); }
.hero--billboard .scroll-indicator__line::after { background: var(--cream); }

.scroll-indicator { display: inline-flex; align-items: center; gap: .8rem; }
.scroll-indicator__line {
  width: 60px; height: 1px; background: var(--ink-soft);
  position: relative; overflow: hidden;
}
.scroll-indicator__line::after {
  content: ''; position: absolute; inset: 0;
  background: var(--navy);
  transform: translateX(-100%);
  animation: scrollLine 2.4s var(--ease-in-out) infinite;
}
@keyframes scrollLine {
  0%  { transform: translateX(-100%); }
  50% { transform: translateX(0); }
  100%{ transform: translateX(100%); }
}
.hero__year {
  font-family: var(--serif); font-style: italic;
  font-size: .95rem; letter-spacing: .04em; text-transform: none;
  color: var(--navy);
}
@media (max-width: 900px) {
  .e-con.hero__bottom { grid-template-columns: 1fr !important; gap: 2rem !important; align-items: start !important; }
  .hero__cta-wrap { justify-self: start; }
  .hero__meta span:last-child { display: none; }
}

/* ============================================
   BILLBOARD
   ============================================ */
.e-con.billboard,
.elementor-element.billboard {
  --display: grid !important;
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
  gap: clamp(2.5rem, 5vw, 5rem) !important;
  position: relative; min-height: 95svh; overflow: hidden;
  background: var(--navy-deep); color: var(--cream);
  padding: clamp(2.5rem, 5vw, 5rem) var(--container) !important;
  isolation: isolate;
}
.billboard__image { position: absolute; inset: -10% 0 0 0; width: 100%; height: 120%; will-change: transform; z-index: -2; margin: 0; display: block; }
.billboard__image img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.65) contrast(1.05); }
.billboard::before,
.elementor-element.billboard::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(0,30,80,.45) 0%, rgba(0,30,80,.05) 32%,
    rgba(0,30,80,.05) 60%, rgba(0,30,80,.7) 100%);
  z-index: -1; pointer-events: none;
}
.billboard__top {
  display: flex; justify-content: space-between; align-items: center;
  border-top: 1px solid rgba(245,238,225,.35);
  padding-top: 1.1rem;
  font-size: .72rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--cream); gap: 2rem; flex-wrap: wrap; margin: 0;
}
.billboard__top em {
  font-family: var(--serif); font-style: italic;
  text-transform: none; letter-spacing: .02em;
  font-size: .95rem; color: var(--cream); opacity: .85;
}
/* O título do billboard é o widget Heading dentro do .billboard
   (Heading widget único — entre o top e o bottom) */
.billboard > .elementor-widget-heading {
  align-self: center;
}
.billboard > .elementor-widget-heading .elementor-heading-title {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
  font-size: clamp(2.6rem, min(6.5vw, 12svh), 7.5rem) !important;
  line-height: .98 !important;
  letter-spacing: -.04em !important;
  color: var(--cream) !important;
  max-width: 18ch;
  margin: 0 !important;
}
.billboard > .elementor-widget-heading .elementor-heading-title em { font-style: italic; }
.billboard > .elementor-widget-heading .elementor-heading-title .line { display: block; overflow: hidden; padding-bottom: .06em; }
.billboard > .elementor-widget-heading .elementor-heading-title .line > span { display: inline-block; will-change: transform; }
.billboard--right > .elementor-widget-heading .elementor-heading-title { margin-left: auto !important; text-align: right; }
.billboard--center > .elementor-widget-heading .elementor-heading-title { margin: auto !important; text-align: center; }

.billboard__bottom {
  display: flex; justify-content: space-between; align-items: end;
  border-top: 1px solid rgba(245,238,225,.35);
  padding-top: 1.2rem; gap: 2rem; flex-wrap: wrap; margin: 0;
  font-size: .72rem; letter-spacing: .22em; text-transform: uppercase;
}
.billboard__bottom-text {
  font-family: var(--serif); font-style: italic;
  font-size: clamp(.95rem, 1.15vw, 1.15rem);
  letter-spacing: .005em; text-transform: none;
  max-width: 42ch; color: var(--cream); opacity: .92;
  margin: 0;
}
@media (max-width: 800px) {
  .billboard > .elementor-widget-heading .elementor-heading-title { max-width: none !important; }
  .billboard--right > .elementor-widget-heading .elementor-heading-title { text-align: left; margin-left: 0 !important; }
}

/* ============================================
   BUTTON (custom no widget HTML)
   ============================================ */
.btn,
a.btn {
  display: inline-flex !important;
  align-items: center; gap: .8rem;
  padding: 1rem 1.6rem !important;
  border: 1px solid var(--navy) !important;
  border-radius: 999px !important;
  font-size: .78rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--navy); background: transparent;
  position: relative; overflow: hidden; isolation: isolate;
  transition: color .4s var(--ease-out), border-color .4s var(--ease-out);
  text-decoration: none; font-weight: 400;
  font-family: var(--sans);
  cursor: pointer;
}
.btn::before {
  content: ''; position: absolute; inset: 0;
  background: var(--navy); border-radius: 999px;
  transform: translateY(101%);
  transition: transform .5s var(--ease-out);
  z-index: -1;
}
.btn:hover { color: var(--cream); }
.btn:hover::before { transform: translateY(0); }
.btn__arrow {
  font-family: var(--serif); font-size: 1.05rem;
  display: inline-block;
  transition: transform .4s var(--ease-out);
}
.btn:hover .btn__arrow { transform: translate(3px, -3px); }

.btn--primary { background: var(--navy) !important; color: var(--cream) !important; }
.btn--primary::before { background: var(--navy-deep); }
.btn--primary:hover { color: var(--cream) !important; }

.btn--xl { padding: 1.4rem 2.4rem !important; font-size: .88rem; margin-top: 3rem; }

.btn--on-image { background: var(--cream) !important; color: var(--navy) !important; border-color: var(--cream) !important; }
.btn--on-image::before { background: rgba(245,238,225,.85); }
.btn--on-image:hover { color: var(--navy-deep) !important; }

/* ============================================
   MARQUEE
   ============================================ */
.marquee {
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  padding: clamp(1.4rem, 2.4vw, 2.4rem) 0;
  overflow: hidden; white-space: nowrap;
  background: var(--cream);
  width: 100%;
}
.marquee__track {
  display: inline-flex; align-items: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  font-family: var(--serif);
  font-size: clamp(2.2rem, 5.5vw, 5.5rem);
  font-weight: 400; font-style: italic;
  letter-spacing: -.03em; color: var(--navy);
  will-change: transform;
}
.marquee__dot { font-family: var(--serif); font-style: normal; font-size: .6em; color: var(--navy); opacity: .55; }

/* ============================================
   SECTION shared
   ============================================ */
.e-con.section,
.elementor-element.section {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  padding: var(--section-pad) var(--container) !important;
  position: relative;
  width: 100% !important;
  max-width: 100% !important;
  gap: 0 !important;
}

.e-con.section__head { margin-bottom: clamp(3rem, 5vw, 5rem) !important; max-width: 100% !important; }
.section__index {
  display: flex; gap: 1.25rem; align-items: center;
  font-size: .75rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 2.5rem; padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--rule);
}
.section__index span:first-child {
  font-family: var(--serif); font-size: .95rem; letter-spacing: .1em; color: var(--navy);
}
.cta__index {
  align-self: stretch;
  margin-bottom: 4rem;
  color: rgba(245,238,225,.7);
  border-bottom-color: rgba(245,238,225,.2);
}
.cta__index span:first-child { color: var(--cream); }

/* Títulos de seção — widget Heading que tem .section__title--reveal foi
   removido pelo Elementor (era _css_classes do widget). Os títulos das
   seções são os Heading widgets diretos dentro de .section__head e que
   contêm spans .line — distinguimos pelo conteúdo */
.section__head > .elementor-widget-heading .elementor-heading-title {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
  font-size: clamp(2.4rem, 6.5vw, 6.5rem) !important;
  line-height: .98 !important;
  letter-spacing: -.035em !important;
  color: var(--navy) !important;
  margin: 0 !important;
}
.section__head > .elementor-widget-heading .elementor-heading-title .line { display: block; overflow: hidden; padding-bottom: .06em; }
.section__head > .elementor-widget-heading .elementor-heading-title .line > span { display: inline-block; will-change: transform; }
.section__head > .elementor-widget-heading .elementor-heading-title em { font-style: italic; }

/* Subtítulo / parágrafo do head */
.section__head > .elementor-widget-text-editor {
  margin-top: 2rem;
  max-width: 60ch;
}
.section__head > .elementor-widget-text-editor p {
  font-family: var(--sans);
  font-size: 1.05rem; line-height: 1.55;
  color: var(--ink-soft);
}

/* ============================================
   FILOSOFIA
   ============================================ */
.e-con.filosofia__grid {
  --display: grid !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: clamp(2rem, 5vw, 5rem) !important;
  row-gap: clamp(3rem, 6vw, 6rem) !important;
  align-items: start !important;
  width: 100% !important;
}
.e-con.filosofia__col {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  padding-top: 1rem !important;
  gap: 0 !important;
}
.filosofia__col > .elementor-widget-text-editor:first-child p {
  font-family: var(--serif);
  font-size: clamp(1.3rem, 1.9vw, 1.8rem);
  line-height: 1.35; color: var(--navy);
  letter-spacing: -.01em; margin-bottom: 1.5rem;
}
.filosofia__col > .elementor-widget-text-editor:not(:first-child) p,
.filosofia__col > .elementor-widget-text-editor p {
  font-size: 1rem; line-height: 1.7;
  color: var(--ink-soft); margin-bottom: 1.25rem;
}
.filosofia__col > .elementor-widget-text-editor:first-child p {
  font-family: var(--serif) !important;
  font-size: clamp(1.3rem, 1.9vw, 1.8rem) !important;
  line-height: 1.35 !important; color: var(--navy) !important;
  margin-bottom: 1.5rem !important;
}
.filosofia__col em { color: var(--navy); font-style: italic; }
.filosofia__image {
  grid-column: 1 / -1; margin: 2.5rem 0 0;
  aspect-ratio: 21/9; overflow: hidden;
  background: var(--navy-deep);
  display: block;
}
.filosofia__image img {
  width: 100%; height: 110%; object-fit: cover;
  transform: scale(1.05); will-change: transform;
}
@media (max-width: 800px) {
  .e-con.filosofia__grid { grid-template-columns: 1fr !important; }
  .filosofia__image { aspect-ratio: 4/3; }
}

/* ============================================
   SERVICES
   ============================================ */
.e-con.services {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  border-top: 1px solid var(--rule);
  width: 100% !important;
  gap: 0 !important;
}
.e-con.service,
.elementor-element.service {
  --display: grid !important;
  display: grid !important;
  grid-template-columns: 90px 1fr 50px !important;
  align-items: start !important;
  gap: clamp(1rem, 4vw, 4rem) !important;
  padding: clamp(2.25rem, 3.5vw, 3.5rem) 0 !important;
  border-bottom: 1px solid var(--rule);
  width: 100% !important;
  max-width: 100% !important;
  position: relative;
}
/* O 1º Heading direto do .service é o número, o 2º elemento é o
   .service__main (inner container), o 3º Heading é o ícone */
.service > .elementor-widget-heading:first-of-type .elementor-heading-title {
  font-family: var(--serif) !important;
  font-size: 1.05rem !important;
  font-style: italic;
  color: var(--navy) !important;
  opacity: .7;
  padding-top: .6rem;
  margin: 0 !important;
}
.service > .elementor-widget-heading:last-of-type .elementor-heading-title {
  font-family: var(--serif) !important;
  font-size: 1.5rem !important;
  color: var(--navy) !important;
  text-align: right;
  opacity: .55;
  padding-top: .4rem;
  margin: 0 !important;
  will-change: transform;
}
/* hooks legíveis para o JS — adiciona classes via JS abaixo,
   mas com fallback de seletor estrutural funcionando */
.e-con.service__main {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  max-width: 70ch !important;
  gap: 0 !important;
  padding: 0 !important;
}
.service__main > .elementor-widget-heading .elementor-heading-title {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
  font-size: clamp(1.6rem, 3vw, 2.6rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -.02em !important;
  color: var(--navy) !important;
  margin: 0 !important;
}
.service__main > .elementor-widget-text-editor {
  overflow: hidden; will-change: height, opacity;
}
.service__main > .elementor-widget-text-editor p {
  font-size: 1rem; line-height: 1.7;
  color: var(--ink-soft);
  margin: 0;
}
.service__main > .elementor-widget-text-editor em { color: var(--navy); font-style: italic; }

@media (max-width: 700px) {
  .e-con.service { grid-template-columns: 50px 1fr 30px !important; gap: 1rem !important; }
  .service > .elementor-widget-heading:first-of-type .elementor-heading-title { font-size: .95rem !important; padding-top: .4rem; }
  .service > .elementor-widget-heading:last-of-type .elementor-heading-title { font-size: 1.2rem !important; }
}

/* ============================================
   STEPS
   ============================================ */
.e-con.steps {
  --display: grid !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: clamp(1.5rem, 3vw, 3rem) !important;
  border-top: 1px solid var(--rule);
  padding-top: 3rem !important;
  width: 100% !important;
}
.e-con.step {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
  border-left: 1px solid var(--rule);
  padding-left: 1.5rem !important;
}
.e-con.steps > .e-con.step:first-child { border-left: none; padding-left: 0 !important; }

.step > .elementor-widget-heading:first-of-type .elementor-heading-title {
  font-family: var(--serif) !important;
  font-style: italic;
  font-size: 1rem !important;
  color: var(--navy) !important;
  opacity: .6;
  margin: 0 !important;
}
.step > .elementor-widget-heading:nth-of-type(2) .elementor-heading-title {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
  font-size: clamp(1.5rem, 2.4vw, 2.2rem) !important;
  line-height: 1.1 !important;
  color: var(--navy) !important;
  letter-spacing: -.02em !important;
  margin: 0 0 .4rem !important;
}
.step > .elementor-widget-text-editor p {
  font-size: .96rem; line-height: 1.6; color: var(--ink-soft); margin: 0;
}
@media (max-width: 800px) {
  .e-con.steps { grid-template-columns: 1fr !important; }
  .e-con.step { border-left: none !important; border-top: 1px solid var(--rule); padding-left: 0 !important; padding-top: 1.5rem !important; }
  .e-con.steps > .e-con.step:first-child { border-top: 1px solid var(--rule); padding-top: 1.5rem !important; }
}

/* ============================================
   SOBRE
   ============================================ */
.e-con.sobre__grid {
  --display: grid !important;
  display: grid !important;
  grid-template-columns: 1.3fr 1fr !important;
  gap: clamp(2rem, 6vw, 6rem) !important;
  align-items: start !important;
  width: 100% !important;
}
.e-con.sobre__text {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.sobre__text > .elementor-widget-heading:first-of-type .elementor-heading-title {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
  font-size: clamp(1.7rem, 3vw, 2.6rem) !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
  color: var(--navy) !important;
  margin: 0 0 2rem !important;
}
.sobre__text > .elementor-widget-heading .elementor-heading-title em { font-style: italic; }
.sobre__text > .elementor-widget-text-editor p {
  font-size: 1rem; line-height: 1.7;
  color: var(--ink-soft); margin-bottom: 1.25rem;
}
.sobre__text em { color: var(--navy); font-style: italic; }
.sobre__stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem; margin-top: 2.5rem;
  border-top: 1px solid var(--rule); padding-top: 2rem;
}
.stat { display: flex; flex-direction: column; gap: .7rem; padding-top: .4rem; }
.stat__num {
  font-family: var(--serif);
  font-size: clamp(3rem, 5.5vw, 5rem);
  line-height: 1; color: var(--navy); letter-spacing: -.04em;
}
.stat__num em { font-style: italic; font-size: .7em; vertical-align: super; color: var(--ink-soft); }
.stat__label { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-soft); }

.sobre__image {
  position: sticky; top: 6rem;
  aspect-ratio: 4/5; overflow: hidden;
  background: var(--navy-deep);
  display: block; margin: 0;
}
.sobre__image img {
  width: 100%; height: 110%; object-fit: cover;
  transform: scale(1.05); filter: contrast(.96) brightness(.95);
}
.sobre__image figcaption {
  position: absolute; bottom: 1rem; left: 1rem; right: 1rem;
  display: flex; justify-content: space-between;
  font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--cream);
  border-top: 1px solid rgba(245,238,225,.3);
  padding-top: .8rem;
}
@media (max-width: 900px) {
  .e-con.sobre__grid { grid-template-columns: 1fr !important; }
  .sobre__image { position: relative; top: 0; aspect-ratio: 4/5; }
  .sobre__stats { grid-template-columns: 1fr; }
}

/* ============================================
   NOTAS
   ============================================ */
.notas__list { border-top: 1px solid var(--rule); padding: 0; margin: 0; list-style: none; }
.note { border-bottom: 1px solid var(--rule); list-style: none; }
.note__link {
  display: block; position: relative;
  padding: clamp(2rem, 3vw, 3rem) 80px clamp(2rem, 3vw, 3rem) 0;
  transition: padding-left .5s var(--ease-out);
  color: inherit; text-decoration: none;
}
.note__link:hover { padding-left: 1.2rem; padding-right: calc(80px - 1.2rem); }
.note__meta {
  display: flex; gap: 1.5rem; flex-wrap: wrap;
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 1rem;
}
.note__date { color: var(--navy); }
.note__cat::before { content: '·'; margin-right: 1.5rem; color: var(--ink-soft); }
.note__time::before { content: '·'; margin-right: 1.5rem; color: var(--ink-soft); }
.note__title {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(1.5rem, 2.6vw, 2.4rem);
  line-height: 1.18; letter-spacing: -.02em; color: var(--navy);
  margin: 0 0 1rem; max-width: 26ch;
  transition: transform .5s var(--ease-out);
}
.note__excerpt { font-size: 1rem; line-height: 1.65; color: var(--ink-soft); max-width: 60ch; margin: 0; }
.note__excerpt em { color: var(--navy); font-style: italic; }
.note__arrow {
  font-family: var(--serif); font-size: 1.6rem; color: var(--navy);
  position: absolute; top: clamp(2rem, 3vw, 3rem); right: 0;
  transition: transform .5s var(--ease-out);
}
.note__link:hover .note__arrow { transform: translate(6px, -6px); }
.note__link:hover .note__title { transform: translateX(4px); }
.notas__more { display: flex; justify-content: flex-end; padding-top: 3rem; }

/* ============================================
   CTA
   ============================================ */
.e-con.cta,
.elementor-element.cta {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  background: var(--navy) !important;
  color: var(--cream);
  text-align: center;
  padding: var(--section-pad) var(--container) !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 0 !important;
}
.cta .section__index { color: rgba(245,238,225,.7); border-bottom-color: rgba(245,238,225,.2); }
.cta .section__index span:first-child { color: var(--cream); }

/* CTA title — primeiro Heading direto do .cta (depois do HTML index) */
.cta > .elementor-widget-heading:first-of-type .elementor-heading-title {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
  font-size: clamp(3.6rem, 11vw, 11rem) !important;
  line-height: .92 !important;
  letter-spacing: -.045em !important;
  color: var(--cream) !important;
  margin: 0 0 2rem !important;
}
.cta > .elementor-widget-heading:first-of-type .elementor-heading-title .line { display: block; overflow: hidden; padding-bottom: .06em; }
.cta > .elementor-widget-heading:first-of-type .elementor-heading-title .line > span { display: inline-block; will-change: transform; }
.cta > .elementor-widget-heading:first-of-type .elementor-heading-title em { font-style: italic; color: var(--cream); }

.cta > .elementor-widget-text-editor p {
  font-family: var(--serif) !important;
  font-style: italic;
  font-size: clamp(1.1rem, 1.5vw, 1.4rem);
  color: rgba(245,238,225,.85);
  max-width: 50ch; margin: 0 auto 5rem;
}

.e-con.cta__grid {
  --display: grid !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2rem !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  border-top: 1px solid rgba(245,238,225,.2);
  padding-top: 3rem !important;
}
.e-con.contact-card {
  --display: flex !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
  text-align: left;
  padding: 0 1rem 0 0 !important;
}
.contact-card > .elementor-widget-heading:first-of-type .elementor-heading-title {
  font-size: .75rem !important;
  letter-spacing: .18em !important;
  text-transform: uppercase;
  color: rgba(245,238,225,.6) !important;
  font-family: var(--sans) !important;
  font-weight: 400 !important;
  margin: 0 !important;
}
.contact-card > .elementor-widget-heading:nth-of-type(2) .elementor-heading-title {
  font-family: var(--serif) !important;
  font-size: clamp(1.05rem, 1.4vw, 1.3rem) !important;
  color: var(--cream) !important;
  line-height: 1.4 !important;
  word-break: break-word;
  letter-spacing: -.005em;
  font-weight: 400 !important;
  margin: 0 !important;
}
.contact-card a {
  color: var(--cream); text-decoration: none;
  position: relative; display: inline-block;
}
.contact-card a::after {
  content: ''; position: absolute;
  left: 0; right: 100%; bottom: -2px;
  height: 1px; background: var(--cream);
  transition: right .5s var(--ease-out);
}
.contact-card a:hover::after { right: 0; }

.cta .btn,
.cta a.btn { border-color: var(--cream) !important; color: var(--navy) !important; background: var(--cream) !important; }
.cta .btn::before { background: var(--cream-soft); }

@media (max-width: 800px) {
  .e-con.cta__grid { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
}

/* ============================================
   FOOTER
   ============================================ */
.footer {
  background: var(--cream); color: var(--navy-deep);
  padding: clamp(4rem, 7vw, 7rem) var(--container) 2rem;
  overflow: hidden; border-top: 1px solid var(--rule);
  width: 100%;
}
.footer__top {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 3rem;
  padding-bottom: clamp(3rem, 6vw, 6rem);
  border-bottom: 1px solid var(--rule);
}
.footer__col { display: flex; flex-direction: column; gap: 1rem; }
.footer__label { font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-soft); }
.footer__txt { font-family: var(--serif); font-size: 1.05rem; line-height: 1.5; color: var(--navy); letter-spacing: -.005em; margin: 0; }
.footer__giant {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(8rem, 28vw, 28rem);
  line-height: .85; letter-spacing: -.05em; color: var(--navy);
  text-align: center; margin: 3rem 0 1rem; user-select: none;
}
.footer__bottom {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .75rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-soft);
  padding-top: 2rem; border-top: 1px solid var(--rule);
  flex-wrap: wrap; gap: 1rem;
}
@media (max-width: 800px) {
  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* ============================================
   Editor do Elementor — esconde loader + cursor
   ============================================ */
body.elementor-editor-active .loader,
body.elementor-editor-active .cursor,
body.elementor-editor-active .cursor-dot { display: none !important; }

/* Esconde o container que só carrega scripts (último, com .burg-scripts-wrap) */
.burg-scripts-wrap { display: none !important; }
.elementor-editor-active .burg-scripts-wrap { display: block !important; min-height: 40px; }/* End custom CSS */