html,body{overflow-x:hidden;scroll-behavior:auto}

/* ===========================================================
   CRITICAL CSS — FIX DE CLS, REPAINTS E CF7
   =========================================================== */

/* === FONT FIX — "Marcellus SC" e "Montserrat" === */
@font-face {
  font-family: 'Marcellus SC';
  src: url('/wp-content/themes/maisonco-child/fonts/MarcellusSC-Regular.woff2') format('woff2');
  font-display: swap;
  ascent-override: 92%;
  descent-override: 22%;
  line-gap-override: 0%;
  size-adjust: 102%;
}

@font-face {
  font-family: 'Montserrat';
  src: url('/wp-content/themes/maisonco-child/fonts/Montserrat-VariableFont_wght.woff2') format('woff2');
  font-display: swap;
}

/* Montserrat — base global */
body,
#masthead,
nav,
.menu,
a,
button,
input,
textarea {
  font-family: 'Montserrat', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased !important;
  text-rendering: optimizeLegibility !important;
}

/* Marcellus SC — headings */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: 'Marcellus SC', Georgia, serif !important;
  font-size-adjust: 0.49 !important;
  text-rendering: optimizeLegibility !important;
  -webkit-font-smoothing: antialiased !important;
}

/* Mantém estabilidade dos headings */
.elementor-widget-heading h1,
.elementor-widget-heading h2 {
  min-height: 1em !important;
  overflow-wrap: break-word !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transition: none !important;
  will-change: auto !important;
}

/* === Estrutura base Elementor === 
.elementor-container.elementor-column-gap-default {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  align-items: stretch !important;
  justify-content: space-between !important;
  transition: none !important;
  transform: none !important;
  opacity: 1 !important;
}*/

/* === Remove animações/reflow === */
.elementor-widget-wrap,
.elementor-element.elementor-element-populated,
.elementor-section.elementor-top-section {
  transform: none !important;
  opacity: 1 !important;
  transition: none !important;
}

/* === Evita expansão ao carregar fontes === 
.elementor-widget-container {
  overflow: hidden !important;
  min-height: inherit !important;
}*/

/* === Garante visibilidade imediata === */
[data-elementor-type="wp-post"],
[data-element-id] {
  content-visibility: visible !important;
}

/* === Reset geral MaisonCo === */
.site-content-contain {
  min-height: auto !important;
  transition: none !important;
  transform: none !important;
  opacity: 1 !important;
}

/* === Corrige containers Elementor === 
.elementor-section.elementor-top-section .elementor-container {
  display: flex !important;
  align-items: stretch !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
  transition: none !important;
}*/

/* === Mobile stacking === 
@media (max-width: 767px) {
  .elementor-section.elementor-top-section .elementor-container {
    flex-direction: column !important;
  }
}*/

/* ===========================================================
   CONTACT FORM 7 — LAYOUT ESTÁVEL E AJUSTADO
   =========================================================== */
.wpcf7 form {
  display: block !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
}

/* Campos de texto, e-mail, telefone, data e textarea */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="date"],
.wpcf7 textarea {
  width: 100% !important;
  min-height: 48px !important;
  border: 1px solid #d4c7ab !important;
  background: #fff !important;
  padding: 10px 14px !important;
  font-family: inherit !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  transition: border-color 0.2s ease-in-out, background 0.2s ease-in-out !important;
  box-sizing: border-box !important;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="date"]:focus,
.wpcf7 textarea:focus {
  outline: none !important;
  border-color: #c3b48f !important;
}

/* ===========================================================
   BOTÃO "SUBMETER" — COR FIXA #DBC6A2 (SEM SHIFT)
   =========================================================== */
.wpcf7 input[type="submit"] {
  background-color: #DBC6A2 !important;
  border-color: #DBC6A2 !important;
  color: #fff !important;
  opacity: 1 !important;
}



/* ===========================================================
   FIX FINAL — FORMULÁRIO CORTADO (OVERRIDE WRAPPERS)
   =========================================================== */

/* Liberta todos os wrappers do Elementor e CF7 dentro da secção do formulário */
.elementor-widget-wrap,
.elementor-widget-container,
.elementor-section,
.elementor-column,
.elementor-top-section,
.elementor-widget-opal-contact-form {
  overflow: visible !important;
}

/* Garante que o formulário tem espaço suficiente abaixo */
.elementor-widget-opal-contact-form {
  padding-bottom: 20px !important;
}

/* Evita clipping causado por alturas automáticas */
.elementor-widget-opal-contact-form .elementor-widget-container {
  min-height: unset !important;
  height: auto !important;
}

/* ===========================================================
   CONTACT FORM — ALINHAMENTO FINAL (PIXEL PERFECT)
   =========================================================== */
.wpcf7-form .wpcf7-acceptance {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding-left: 7px !important; /* 1px menos que antes, igual aos inputs */
  padding-bottom: 20px !important;
}

.wpcf7-form .wpcf7-acceptance label {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.4 !important;
}

.wpcf7-form input[type="checkbox"] {
  width: 15px !important;
  height: 15px !important;
  accent-color: #d4c7ab !important;
  margin-top: 1px !important; /* centraliza visualmente */
  flex-shrink: 0 !important;
}

.wpcf7-form .wpcf7-list-item-label {
  font-size: 11px !important;
  color: #4a4a4a !important;
  line-height: 1.5 !important;
}

.wpcf7-form .wpcf7-list-item-label a {
  color: #a68c6d !important;
  border-bottom: 1px solid #d4c7ab !important;
  text-decoration: none !important;
}

.wpcf7-form .wpcf7-list-item-label a:hover {
  color: #000 !important;
  border-color: #000 !important;
}

/* ===========================================================
   CONTACT FORM 7 — COR FINAL FIXA DO BOTÃO (#DBC6A2)
   =========================================================== */
form.wpcf7-form input.wpcf7-form-control.wpcf7-submit {
  background-color: #DBC6A2;
  color: #fff;
  border: none;
  transition: none;
}

form.wpcf7-form input.wpcf7-form-control.wpcf7-submit:hover {
  background-color: #cbb58f;
  color: #fff;
}

form.wpcf7-form input.wpcf7-form-control.wpcf7-submit:focus {
  background-color: #DBC6A2;
  outline: none;
}

/* ===========================================================
   HEADER E HERO FIXES
   =========================================================== */
#masthead {
  height: 87px !important;
  min-height: 87px !important;
  display: block !important;
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

body::before {
  content: "";
  display: block;
  height: 87px !important;
}

.hero img,
.elementor img[src*="hero-image.webp"] {
  width: 100% !important;
  height: 100vh !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center !important;
  content-visibility: visible !important;
}

/* ===========================================================
   POPUP MOBILE MENU — BOTÃO "AGENDAR VISITA" (versão simplificada e funcional)
   =========================================================== */
#custom-menu-popup {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 999999 !important;
  background: rgba(255, 255, 255, 0.98) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
  padding-top: 80px !important;
  transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

#custom-menu-popup.open {
  opacity: 1 !important;
  visibility: visible !important;
}

#custom-menu-popup .popup-close {
  position: absolute !important;
  top: 18px !important;
  right: 22px !important;
  background: transparent !important;
  border: none !important;
  font-size: 26px !important;
  line-height: 1 !important;
  color: #333 !important;
  cursor: pointer !important;
  z-index: 100000 !important;
}

#custom-menu-popup .popup-menu {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 22px !important;
  width: 100% !important;
  max-width: 480px !important;
  padding: 40px 20px 80px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  position: relative !important;
}

#custom-menu-popup .popup-menu ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  text-align: center !important;
}

#custom-menu-popup .popup-menu li {
  margin: 10px 0 !important;
}

#custom-menu-popup .popup-menu a {
  color: #6f6f6f !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  text-decoration: none !important;
  letter-spacing: 0.03em !important;
  transition: color 0.2s ease-in-out !important;
}

#custom-menu-popup .popup-menu a:hover {
  color: #d4c7ab !important;
}

/* === Wrapper e botão “Agendar Visita” === */
#custom-menu-popup .menu-btn-wrapper {
  margin-top: 40px !important;
  width: 100% !important;
  text-align: center !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  position: relative !important;
  z-index: 10 !important;
}

#custom-menu-popup .btn-agendar-visita {
  display: inline-block !important;
  background: #d4c7ab !important;
  color: #fff !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  padding: 12px 32px !important;
  border-radius: 30px !important;
  border: none !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background 0.3s ease, transform 0.2s ease !important;
  opacity: 1 !important;
  visibility: visible !important;
}

#custom-menu-popup .btn-agendar-visita:hover {
  background: #c3b48f !important;
  transform: translateY(-2px) !important;
}

/* ===========================================================
   ALARGA O CONTENT WRAPPER (full width)
   =========================================================== */
.elementor-page .site-content,
.elementor-page .site-content-contain {
  max-width: 100% !important;
  padding: 0 !important;
}

