/* All selectors are scoped to the Maka Vitrine Lapa widget/shortcode. */
.mvl-landing {
  --mvl-green: #3ca644;
  --mvl-lime: #adcd4f;
  --mvl-ink: #17352b;
  --mvl-muted: #64756f;
  --mvl-surface: #f5f7f3;
  --mvl-line: #dfe7e0;
  --mvl-dark: #102d24;
  box-sizing: border-box;
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: clip;
  color: var(--mvl-ink);
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

/* Faz a landing sair da largura da coluna do Elementor e usar toda a página. */
.mvl-original-landing { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; overflow: hidden; }
.mvl-original-landing .mvl-wp-reviews > * { max-width: 100%; }
.mvl-original-landing .mvl-wp-reviews:empty { display: none; }

/* Protect the original exported layout from generic theme/Elementor rules. */
.mvl-original-landing .font-bold { font-weight: 700 !important; }
.mvl-original-landing h1.font-bold { font-size: 2.25rem !important; line-height: 1.05 !important; font-weight: 700 !important; }
.mvl-original-landing h2.font-bold, .mvl-original-landing h3.font-bold { font-weight: 700 !important; }
.mvl-original-landing > main > section:nth-of-type(1) { position: relative !important; width: 100% !important; min-height: 100svh !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; }
.mvl-original-landing > main > section:nth-of-type(1) > img.absolute { position: absolute !important; inset: 0 !important; display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; min-height: 100% !important; object-fit: cover !important; }
.mvl-original-landing > main > section:nth-of-type(1) > .absolute { position: absolute !important; inset: 0 !important; }
.mvl-original-landing > main > section:nth-of-type(1) > .relative { min-height: 100svh !important; }
.mvl-original-landing #projetos-grid figure { overflow: hidden !important; }
.mvl-original-landing #projetos-grid figure img { display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; min-height: 100% !important; object-fit: cover !important; }

/* Mantém a navegação sobre a primeira dobra, sem criar faixa branca acima da foto. */
.mvl-original-landing #site-header { position: fixed !important; top: 0 !important; right: 0 !important; left: 0 !important; z-index: 9999 !important; }
.mvl-original-landing > main { margin-top: 0 !important; padding-top: 0 !important; }

/* Evita que o tema altere a cor, a borda ou o formato do botão flutuante. */
.mvl-original-landing a[aria-label="Falar no WhatsApp"] {
  display: grid !important;
  position: fixed !important;
  right: 1.75rem !important;
  bottom: 1.75rem !important;
  z-index: 9998 !important;
  width: 4rem !important;
  height: 4rem !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 9999px !important;
  background: #3ca644 !important;
  color: #fff !important;
  box-shadow: 0 12px 32px -8px rgba(60, 166, 68, .55) !important;
  text-decoration: none !important;
  place-items: center !important;
}
.mvl-original-landing a[aria-label="Falar no WhatsApp"] > span { border: 0 !important; border-radius: inherit !important; }
.mvl-original-landing a[aria-label="Falar no WhatsApp"] svg { position: relative !important; z-index: 1 !important; width: 2rem !important; height: 2rem !important; color: #fff !important; fill: currentColor !important; stroke: none !important; }

/* A próxima seção encosta na imagem sem linha branca, mas preserva o respiro do título. */
.mvl-original-landing > main > section:nth-of-type(1) + #diferenciais { margin-top: 0 !important; padding-top: 4.5rem !important; }

/* Preserva o CTA original contra os estilos globais de botões do tema. */
.mvl-original-landing .btn-cta {
  display: inline-flex !important;
  width: auto !important;
  min-height: 0 !important;
  padding: .875rem 1.25rem !important;
  border: 0 !important;
  border-radius: .75rem !important;
  background: #3ca644 !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
}
.mvl-original-landing .btn-cta svg { width: 1rem !important; height: 1rem !important; color: inherit !important; stroke: currentColor !important; }

/* Títulos de colunas do rodapé, protegidos contra a tipografia global do tema. */
.mvl-original-landing footer h4 { font-size: .875rem !important; line-height: 1.25 !important; }

/* Animações da landing: nunca escondem conteúdo dentro do editor Elementor. */
.mvl-original-landing.mvl-original-animations-ready .reveal { opacity: 0 !important; transform: translateY(24px) !important; }
.mvl-original-landing.mvl-original-animations-ready .reveal.mvl-original-is-visible { opacity: 1 !important; transform: translateY(0) !important; }

@media (min-width: 640px) {
  .mvl-original-landing > main > section:nth-of-type(1) + #diferenciais { padding-top: 6rem !important; }
  .mvl-original-landing h1.font-bold { font-size: 3.75rem !important; line-height: 1.05 !important; }
  .mvl-original-landing .sm\:text-5xl { font-size: 3rem !important; }
  .mvl-original-landing .sm\:text-6xl { font-size: 3.75rem !important; }
}

@media (min-width: 1024px) {
  .mvl-original-landing h1.font-bold { font-size: 4.5rem !important; line-height: 1.05 !important; }
  .mvl-original-landing .lg\:text-7xl { font-size: 4.5rem !important; }
}

@supports selector(body:has(.mvl-original-landing)) {
  body:has(.mvl-original-landing) { overflow-x: clip !important; }
  body:has(.mvl-original-landing) header.site-header,
  body:has(.mvl-original-landing) #masthead,
  body:has(.mvl-original-landing) .elementor-location-header { display: none !important; }
  body:has(.mvl-original-landing) .page-header,
  body:has(.mvl-original-landing) .entry-header { display: none !important; }
  body:has(.mvl-original-landing) .site-content,
  body:has(.mvl-original-landing) #content,
  body:has(.mvl-original-landing) .content-area,
  body:has(.mvl-original-landing) .entry-content { margin-top: 0 !important; padding-top: 0 !important; }
}

/* Elementor may place a widget inside a 50% column by default. Expand only this landing widget. */
.elementor-widget-maka_vitrine_lapa_landing,
.elementor-widget-maka_vitrine_lapa_landing > .elementor-widget-container {
  width: 100% !important;
  max-width: 100% !important;
}

@supports selector(.elementor-element:has(> .elementor-widget-maka_vitrine_lapa_landing)) {
  .elementor-element:has(> .elementor-widget-maka_vitrine_lapa_landing) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    flex-basis: 100% !important;
  }
}

/* Expande também os contêineres aninhados do Elementor, inclusive dentro do editor. */
@supports selector(.elementor-element:has(.elementor-widget-maka_vitrine_lapa_landing)) {
  .elementor-element:has(.elementor-widget-maka_vitrine_lapa_landing) {
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 100% !important;
    flex-basis: 100% !important;
    align-self: stretch !important;
  }
  .elementor-element:has(.elementor-widget-maka_vitrine_lapa_landing) > .elementor-container,
  .elementor-element:has(.elementor-widget-maka_vitrine_lapa_landing) > .e-con-inner {
    width: 100% !important;
    max-width: none !important;
  }
  .elementor-element:has(.elementor-widget-maka_vitrine_lapa_landing) > .elementor-container > .elementor-column {
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 100% !important;
  }
}

.mvl-landing *, .mvl-landing *::before, .mvl-landing *::after { box-sizing: border-box; }
.mvl-landing a { color: inherit; text-decoration: none; }
.mvl-landing img { display: block; max-width: 100%; }
.mvl-landing h1, .mvl-landing h2, .mvl-landing h3, .mvl-landing p, .mvl-landing figure { margin: 0; }
.mvl-container { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }

.mvl-header { position: absolute; inset: 0 0 auto; z-index: 20; color: #fff; border-bottom: 1px solid rgba(255,255,255,.16); }
.mvl-header-inner { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.mvl-logo { flex: 0 0 auto; display: inline-flex; align-items: center; max-width: 150px; }
.mvl-logo img { max-height: 42px; width: auto; filter: brightness(0) invert(1); }
.mvl-nav { display: flex; align-items: center; gap: clamp(15px, 2vw, 30px); font-size: 14px; font-weight: 700; }
.mvl-nav > a:not(.mvl-nav-cta) { opacity: .92; transition: opacity .2s ease; }
.mvl-nav > a:not(.mvl-nav-cta):hover { opacity: .62; }
.mvl-nav-cta { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 10px; background: var(--mvl-green); transition: background .2s ease, transform .2s ease; }
.mvl-nav-cta:hover { background: var(--mvl-lime); transform: translateY(-1px); }
.mvl-menu-toggle { display: none; border: 0; background: transparent; padding: 8px 0 8px 8px; cursor: pointer; }
.mvl-menu-toggle span { display: block; width: 25px; height: 2px; margin: 5px 0; background: #fff; }

.mvl-hero { min-height: 710px; display: grid; align-items: center; position: relative; color: #fff; isolation: isolate; }
.mvl-hero-image, .mvl-final-image { position: absolute; inset: 0; z-index: -1; background-position: center; background-size: cover; }
.mvl-hero-content { padding-top: 84px; padding-bottom: 52px; }
.mvl-eyebrow, .mvl-kicker { letter-spacing: .12em; text-transform: uppercase; font-size: 12px; font-weight: 800; }
.mvl-eyebrow { color: var(--mvl-lime); margin-bottom: 20px; }
.mvl-hero h1 { max-width: 740px; font-size: clamp(42px, 6vw, 78px); line-height: 1.04; letter-spacing: -.045em; font-weight: 800; }
.mvl-hero-description { max-width: 650px; margin-top: 25px !important; color: rgba(255,255,255,.88); font-size: clamp(17px, 2.1vw, 21px); line-height: 1.55; }
.mvl-button { display: inline-flex; align-items: center; gap: 12px; margin-top: 32px; padding: 17px 24px; background: var(--mvl-green); color: #fff !important; border: 1px solid transparent; border-radius: 12px; font-size: 15px; line-height: 1; font-weight: 800; box-shadow: 0 14px 28px -14px rgba(35,140,69,.9); transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.mvl-button:hover { background: var(--mvl-lime); transform: translateY(-3px); box-shadow: 0 18px 32px -14px rgba(35,140,69,.9); }
.mvl-button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.mvl-section { padding: 110px 0; }
.mvl-section-heading { max-width: 670px; }
.mvl-kicker { color: var(--mvl-green); margin-bottom: 14px !important; }
.mvl-section-heading h2, .mvl-project-heading h2, .mvl-about h2, .mvl-faq h2 { color: var(--mvl-ink); font-size: clamp(34px, 4vw, 54px); letter-spacing: -.045em; line-height: 1.08; font-weight: 800; }
.mvl-section-heading > p:last-child { max-width: 590px; margin-top: 20px !important; color: var(--mvl-muted); font-size: 18px; line-height: 1.65; }

.mvl-features { background: var(--mvl-surface); }
.mvl-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 45px; }
.mvl-feature-card { min-height: 287px; padding: 29px; border: 1px solid rgba(255,255,255,.86); border-radius: 18px; background: rgba(255,255,255,.68); box-shadow: 0 20px 40px -34px rgba(21,63,45,.42); transition: transform .25s ease, box-shadow .25s ease; }
.mvl-feature-card:hover { transform: translateY(-7px); box-shadow: 0 25px 43px -30px rgba(21,63,45,.45); }
.mvl-icon-box { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; color: #fff; background: var(--mvl-green); }
.mvl-icon-box svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mvl-feature-card h3 { margin-top: 25px; font-size: 20px; letter-spacing: -.025em; font-weight: 800; }
.mvl-feature-card p { margin-top: 11px; color: var(--mvl-muted); font-size: 15px; line-height: 1.6; }

.mvl-projects { background: #fff; }
.mvl-project-heading { display: grid; grid-template-columns: 1.16fr .84fr; align-items: end; gap: 54px; }
.mvl-project-heading > p { color: var(--mvl-muted); font-size: 17px; line-height: 1.65; text-align: right; }
.mvl-project-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 155px; gap: 17px; margin-top: 45px; }
.mvl-project-card { position: relative; overflow: hidden; min-height: 180px; border-radius: 17px; background: #dfe6df; }
.mvl-project-card:nth-child(1) { grid-column: span 7; grid-row: span 3; }
.mvl-project-card:nth-child(2) { grid-column: span 5; grid-row: span 2; }
.mvl-project-card:nth-child(3) { grid-column: span 5; grid-row: span 2; }
.mvl-project-card:nth-child(4) { grid-column: span 4; grid-row: span 2; }
.mvl-project-card:nth-child(5) { grid-column: span 8; grid-row: span 2; }
.mvl-project-card img { height: 100%; width: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.mvl-project-card:hover img { transform: scale(1.06); }
.mvl-project-card::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(9,28,21,.74)); pointer-events: none; }
.mvl-project-card figcaption { position: absolute; z-index: 1; left: 21px; bottom: 18px; color: #fff; font-size: 18px; font-weight: 800; }

.mvl-about { background: var(--mvl-surface); }
.mvl-about-grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: clamp(42px, 8vw, 100px); }
.mvl-about-photo { min-height: 530px; border-radius: 20px; overflow: hidden; background: #dbe5d9; }
.mvl-about-photo img { width: 100%; height: 530px; object-fit: cover; }
.mvl-about-copy > p:not(.mvl-kicker) { margin-top: 24px !important; color: var(--mvl-muted); font-size: 17px; line-height: 1.7; }
.mvl-about-copy ul { display: grid; gap: 15px; padding: 0; margin: 29px 0 0; list-style: none; }
.mvl-about-copy li { display: flex; align-items: flex-start; gap: 12px; font-weight: 700; line-height: 1.45; }
.mvl-about-copy li svg { flex: 0 0 auto; width: 21px; height: 21px; margin-top: 1px; color: var(--mvl-green); fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }

.mvl-reviews { background: #fff; }
.mvl-review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 19px; margin-top: 42px; }
.mvl-review-card { display: flex; flex-direction: column; min-height: 278px; padding: 28px; border: 1px solid var(--mvl-line); border-radius: 17px; background: #fff; box-shadow: 0 20px 45px -38px rgba(21,63,45,.62); }
.mvl-stars { color: #ebb723; font-size: 17px; letter-spacing: .08em; }
.mvl-review-card > p { flex: 1; margin-top: 19px; color: var(--mvl-muted); font-size: 15px; line-height: 1.68; }
.mvl-review-card footer { display: grid; gap: 2px; margin-top: 24px; }
.mvl-review-card strong { font-size: 14px; }
.mvl-review-card span { color: var(--mvl-muted); font-size: 12px; }

.mvl-faq { background: var(--mvl-surface); }
.mvl-faq-inner { display: grid; grid-template-columns: .78fr 1.22fr; align-items: start; gap: clamp(40px, 8vw, 112px); }
.mvl-faq-inner > div > p:not(.mvl-kicker) { margin-top: 20px !important; color: var(--mvl-muted); font-size: 17px; line-height: 1.65; }
.mvl-faq-list { display: grid; gap: 12px; }
.mvl-faq-list details { border: 1px solid var(--mvl-line); border-radius: 13px; background: #fff; overflow: hidden; }
.mvl-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 21px 22px; list-style: none; cursor: pointer; color: var(--mvl-ink); font-size: 16px; font-weight: 800; }
.mvl-faq-list summary::-webkit-details-marker { display: none; }
.mvl-faq-list summary svg { flex: 0 0 auto; width: 20px; height: 20px; color: var(--mvl-green); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; transition: transform .2s ease; }
.mvl-faq-list details[open] summary svg { transform: rotate(45deg); }
.mvl-faq-list details > div { padding: 0 22px 21px; color: var(--mvl-muted); font-size: 15px; line-height: 1.65; }

.mvl-final-cta { position: relative; padding: 116px 0; color: #fff; text-align: center; isolation: isolate; }
.mvl-final-content { max-width: 800px; }
.mvl-final-content h2 { font-size: clamp(38px, 5vw, 64px); letter-spacing: -.05em; line-height: 1.05; font-weight: 800; }
.mvl-final-content p { max-width: 620px; margin: 22px auto 0 !important; color: rgba(255,255,255,.85); font-size: 18px; line-height: 1.65; }
.mvl-button-light { background: var(--mvl-lime); color: var(--mvl-dark) !important; box-shadow: 0 15px 30px -15px rgba(0,0,0,.45); }
.mvl-button-light:hover { color: #fff !important; background: var(--mvl-green); }

.mvl-footer { padding-top: 70px; color: rgba(255,255,255,.68); background: var(--mvl-dark); }
.mvl-footer-grid { display: grid; grid-template-columns: 1.5fr .8fr 1.1fr .9fr; gap: 42px; }
.mvl-footer-logo { width: auto; max-height: 43px; filter: brightness(0) invert(1); }
.mvl-footer-grid > div:first-child > p { max-width: 300px; margin-top: 20px !important; font-size: 14px; line-height: 1.65; }
.mvl-footer h3 { margin: 7px 0 19px; color: #fff; font-size: 13px; letter-spacing: .09em; text-transform: uppercase; }
.mvl-footer ul { display: grid; gap: 12px; padding: 0; margin: 0; list-style: none; font-size: 14px; line-height: 1.45; }
.mvl-footer li a:hover { color: #fff; }
.mvl-socials { display: flex; gap: 9px; margin-top: 23px; }
.mvl-socials a { display: grid; width: 37px; height: 37px; place-items: center; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; transition: color .2s ease, border-color .2s ease; }
.mvl-socials a:hover { color: var(--mvl-lime); border-color: var(--mvl-lime); }
.mvl-socials svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mvl-footer-bottom { display: flex; justify-content: space-between; gap: 25px; margin-top: 61px; padding: 23px 0; border-top: 1px solid rgba(255,255,255,.15); font-size: 12px; }

.mvl-whatsapp-float { display: grid; place-items: center; position: fixed; z-index: 99; right: 25px; bottom: 25px; width: 61px; height: 61px; border-radius: 50%; color: #fff !important; background: var(--mvl-green); box-shadow: 0 16px 32px -10px rgba(15,73,39,.58); transition: transform .2s ease, background .2s ease; }
.mvl-whatsapp-float:hover { transform: scale(1.1); background: var(--mvl-lime); }
.mvl-whatsapp-float svg { width: 32px; height: 32px; fill: currentColor; }

/* The hidden initial state is applied only by JS, keeping every section visible with JS disabled and in Elementor edit mode. */
.mvl-animations-ready .mvl-reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.mvl-animations-ready .mvl-reveal.mvl-is-visible { opacity: 1; transform: none; }

@media (max-width: 920px) {
  .mvl-feature-grid { grid-template-columns: repeat(2, 1fr); }
  .mvl-project-heading, .mvl-about-grid, .mvl-faq-inner { grid-template-columns: 1fr; }
  .mvl-project-heading > p { max-width: 630px; text-align: left; }
  .mvl-about-photo, .mvl-about-photo img { min-height: 400px; height: 400px; }
  .mvl-review-grid { grid-template-columns: 1fr; }
  .mvl-review-card { min-height: 0; }
  .mvl-footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .mvl-footer-grid > div:last-child { grid-column: 2 / 4; }
}

@media (max-width: 700px) {
  .mvl-container { width: min(100% - 32px, 560px); }
  .mvl-header-inner { min-height: 72px; }
  .mvl-logo img { max-height: 36px; }
  .mvl-menu-toggle { display: block; }
  .mvl-nav { display: none; position: absolute; top: 72px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; padding: 11px 16px 19px; background: rgba(16,45,36,.98); box-shadow: 0 15px 30px -22px rgba(0,0,0,.8); }
  .mvl-nav.mvl-menu-open { display: flex; }
  .mvl-nav > a:not(.mvl-nav-cta) { padding: 12px 0; }
  .mvl-nav-cta { justify-content: center; margin-top: 8px; }
  .mvl-hero { min-height: 650px; }
  .mvl-hero-image { background-position: 58% center; }
  .mvl-hero-content { padding-top: 105px; }
  .mvl-section { padding: 74px 0; }
  .mvl-feature-grid { grid-template-columns: 1fr; margin-top: 34px; }
  .mvl-feature-card { min-height: 0; padding: 25px; }
  .mvl-project-grid { grid-template-columns: 1fr; grid-auto-rows: 255px; gap: 13px; margin-top: 33px; }
  .mvl-project-card:nth-child(n) { grid-column: auto; grid-row: auto; }
  .mvl-about-photo, .mvl-about-photo img { min-height: 320px; height: 320px; }
  .mvl-footer { padding-top: 55px; }
  .mvl-footer-grid { grid-template-columns: 1fr 1fr; gap: 36px 25px; }
  .mvl-footer-grid > div:first-child { grid-column: 1 / -1; }
  .mvl-footer-grid > div:last-child { grid-column: auto; }
  .mvl-footer-bottom { flex-direction: column; gap: 5px; margin-top: 45px; }
  .mvl-whatsapp-float { right: 17px; bottom: 17px; width: 53px; height: 53px; }
  .mvl-whatsapp-float svg { width: 28px; height: 28px; }
}

@media (max-width: 400px) {
  .mvl-footer-grid { grid-template-columns: 1fr; }
  .mvl-footer-grid > div:last-child { grid-column: auto; }
}
