/*
Theme Name: Maimone Canvas
Theme URI: https://maimonelegal.com
Author: Maimone Legal
Author URI: https://maimonelegal.com
Description: Tema de landing pages Elementor para Maimone Legal. Incluye un importador que crea dos demos completas y responsive: Canadian Business Owners y Canadian Professionals.
Version: 2.2.5
Requires at least: 5.8
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maimone-canvas
*/

/* ============================================
   RESET TOTAL: nada de tamanos, colores ni
   fuentes propias. Todo lo define Elementor
   (o el CSS que ya trae cada seccion .ml-*).
   ============================================ */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #222;
  background: #fff;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
}

p {
  margin: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

img, svg {
  max-width: 100%;
  height: auto;
  display: block;
}

button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  margin: 0;
}

table {
  border-collapse: collapse;
  width: 100%;
}

/* Que el contenido de Elementor pueda usar el ancho completo,
   sin un max-width ni padding heredado de un theme normal */
.site-content,
.site-main,
#content,
#primary,
.entry-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Accesibilidad basica para quien navegue con teclado */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #0C1F4A;
  outline-offset: 2px;
}

/* ============================================
   MAIMONE LANDING PAGE

   Elementor adds a custom CSS class to the widget wrapper, not to the
   heading/button rendered inside it. The original demo styled both as if
   they were the same node. These selectors deliberately target Elementor's
   inner elements so the imported page matches the supplied reference.
   ============================================ */

:root {
  --ml-cream: #f7f4ef;
  --ml-cream-deep: #f1e9da;
  --ml-navy: #0c1f4a;
  --ml-gold: #cfa155;
  --ml-gold-dark: #a67d3e;
  --ml-red: #c40000;
  --ml-ink: #37445b;
  --ml-line: #e0d5bf;
  --ml-serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --ml-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.elementor-page {
  overflow-x: hidden;
  color: var(--ml-ink);
  background: var(--ml-cream);
  font-family: var(--ml-sans);
}

/* The first Elementor section only carries shared CSS/JS. It must not
   participate in layout or it creates the blank strip above the hero. */
.ml-global-assets,
.elementor-element-gs01sec {
  position: absolute !important;
  inset: 0 auto auto 0 !important;
  z-index: 98 !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  pointer-events: none;
}

.ml-global-assets .ml-sticky,
.elementor-element-gs01sec .ml-sticky {
  pointer-events: auto;
}

.elementor-widget-heading.ml-eyebrow .elementor-heading-title {
  color: var(--ml-red) !important;
  font-family: var(--ml-sans) !important;
  font-size: 12.5px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
}

.elementor-widget-heading.ml-h1 .elementor-heading-title {
  max-width: 34ch;
  color: var(--ml-navy) !important;
  font-family: var(--ml-serif) !important;
  font-size: clamp(32px, 2.15vw, 40px) !important;
  font-weight: 700 !important;
  line-height: 1.09 !important;
  letter-spacing: -0.018em !important;
  text-wrap: balance;
}

.elementor-widget-heading.ml-h2 .elementor-heading-title {
  color: var(--ml-navy) !important;
  font-family: var(--ml-serif) !important;
  font-size: clamp(25px, 2.25vw, 34px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em !important;
  text-wrap: balance;
}

.elementor-widget-heading.ml-h3 .elementor-heading-title {
  color: var(--ml-navy) !important;
  font-family: var(--ml-serif) !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.012em !important;
  text-wrap: balance;
}

.elementor-widget-text-editor.ml-p,
.elementor-widget-text-editor.ml-p p {
  color: var(--ml-ink) !important;
  font-family: var(--ml-sans) !important;
  font-size: 15px !important;
  line-height: 1.62 !important;
}

.elementor-widget-text-editor.ml-p p + p {
  margin-top: 14px;
}

.elementor-widget-text-editor.ml-sub,
.elementor-widget-text-editor.ml-sub p {
  max-width: 42ch;
  color: #263650 !important;
  font-family: var(--ml-sans) !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
}

/* Remove the accidental full-width gold wrapper and style the real button. */
.elementor-widget-button.ml-btn {
  width: auto !important;
  max-width: 100%;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.elementor-widget-button.ml-btn .elementor-button {
  min-height: 47px;
  padding: 14px 30px !important;
  border: 1px solid var(--ml-gold-dark) !important;
  border-radius: 2px !important;
  background: var(--ml-gold) !important;
  box-shadow: 0 6px 16px rgba(58, 42, 17, 0.16) !important;
  color: var(--ml-navy) !important;
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  transition: transform 160ms ease, filter 160ms ease, box-shadow 160ms ease;
}

.elementor-widget-button.ml-btn .elementor-button:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 9px 20px rgba(58, 42, 17, 0.2) !important;
}

.elementor-widget-button.ml-btn .elementor-button:active {
  transform: translateY(0);
}

.elementor-widget-button.ml-btn .elementor-button:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--ml-navy) !important;
}

.elementor-widget-button.ml-btn-navy {
  margin-left: 12px;
}

.elementor-widget-button.ml-btn-navy .elementor-button {
  border-color: var(--ml-navy) !important;
  background: var(--ml-navy) !important;
  color: #f4ead2 !important;
  box-shadow: 0 6px 16px rgba(12, 31, 74, 0.18) !important;
}

/* Conversion sections use a centered CTA rail independent of Elementor's
   imported widget width and alignment controls. */
.elementor-element-cn1btn,
[data-id="cn1btn"],
.elementor-element-qf1btn,
[data-id="qf1btn"] {
  display: flex !important;
  width: 100% !important;
  justify-content: center !important;
  text-align: center !important;
}

.elementor-element-cn1btn .elementor-widget-container,
[data-id="cn1btn"] .elementor-widget-container,
.elementor-element-qf1btn .elementor-widget-container,
[data-id="qf1btn"] .elementor-widget-container {
  display: flex !important;
  width: 100% !important;
  justify-content: center !important;
}

/* Deterministic centered CTA rails: independent of Elementor widget widths. */
.ml-cta-rail {
  display: flex;
  width: 100%;
  justify-content: center;
  margin-top: 28px;
  text-align: center;
}

.ml-cta-link {
  display: inline-flex;
  min-height: 47px;
  align-items: center;
  justify-content: center;
  padding: 14px 30px;
  border: 1px solid var(--ml-gold-dark);
  border-radius: 2px;
  background: var(--ml-gold);
  box-shadow: 0 6px 16px rgba(58, 42, 17, 0.16);
  color: var(--ml-navy) !important;
  font-family: var(--ml-sans);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.06em;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: transform 160ms ease, filter 160ms ease, box-shadow 160ms ease;
}

.ml-cta-link--stacked {
  min-width: 270px;
  min-height: 66px;
  flex-direction: column;
  gap: 4px;
  padding-top: 11px;
  padding-bottom: 11px;
}

.ml-cta-label {
  display: block;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0.06em;
}

.ml-cta-subtext {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.015em;
  text-transform: none;
}

.ml-cta-rail--start {
  justify-content: flex-start;
}

.ml-inline-cta {
  display: inline-flex;
}

.ml-cta-link:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 9px 20px rgba(58, 42, 17, 0.2);
}

.ml-cta-link:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--ml-navy);
}

#ml-hero-full {
  min-height: 560px;
  background-position: center right !important;
}

#ml-hero-full > .elementor-container {
  align-items: stretch;
}

/* Header and copy share one grid so every left edge resolves identically. */
#ml-hero-full .elementor-element-hr2navsec > .elementor-container,
#ml-hero-full [data-id="hr2navsec"] > .elementor-container,
#ml-hero-full .elementor-element-hr2contentsec > .elementor-container,
#ml-hero-full [data-id="hr2contentsec"] > .elementor-container {
  width: min(100%, 1140px) !important;
  max-width: 1140px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.elementor-element-hr2navlogo,
[data-id="hr2navlogo"] {
  width: 70% !important;
  flex: 0 0 70% !important;
  padding: 0 34px !important;
}

.elementor-element-hr2navspacer,
[data-id="hr2navspacer"] {
  width: 30% !important;
  flex: 0 0 30% !important;
}

#ml-hero-full .ml-hero-fade {
  align-self: center;
  padding: 22px 34px 32px !important;
  background: linear-gradient(90deg, rgba(247, 244, 239, 0.98) 0%, rgba(247, 244, 239, 0.94) 72%, rgba(247, 244, 239, 0) 100%) !important;
}

.elementor-element-hr2coltext > .elementor-widget-wrap,
[data-id="hr2coltext"] > .elementor-widget-wrap {
  display: block !important;
}

.ml-hero-cta {
  display: flex;
  width: 100%;
  justify-content: flex-start;
  margin-top: 24px;
}

.elementor-element-hr2coltext,
[data-id="hr2coltext"] {
  width: 70% !important;
  flex: 0 0 70% !important;
}

.elementor-element-hr2colspacer,
[data-id="hr2colspacer"] {
  width: 30% !important;
  flex: 0 0 30% !important;
}

#ml-hero-full .ml-logo-img img {
  width: 100%;
  max-width: 210px;
  height: auto;
}

.ml-img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 0;
  object-fit: cover;
  box-shadow: 0 12px 30px rgba(12, 31, 74, 0.12);
}

.ml-card {
  border: 1px solid var(--ml-line);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(12, 31, 74, 0.08);
}

.elementor-widget-heading.ml-q .elementor-heading-title {
  color: var(--ml-gold) !important;
  font-family: var(--ml-serif) !important;
  font-size: 46px !important;
  line-height: 0.8 !important;
}

.elementor-widget-heading.ml-who .elementor-heading-title {
  color: var(--ml-navy) !important;
  font-family: var(--ml-sans) !important;
  font-size: 13.5px !important;
  font-weight: 800 !important;
}

.ml-blueprint-img img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 0;
  box-shadow: 0 12px 30px rgba(12, 31, 74, 0.14);
}

/* The two testimonial CTAs are siblings. Inline-block plus parent centering
   keeps them in one ordered row on desktop without stretching either one. */
.ml-testimonial-block {
  text-align: center;
}

.ml-testimonial-block > .elementor-widget-button.ml-btn-inline {
  display: inline-block !important;
  width: auto !important;
  margin: 24px 6px 0 !important;
  vertical-align: top;
}

/* Elementor may omit a custom column class after importing an older section
   schema. Its immutable element IDs provide a reliable fallback in both demos. */
.elementor-element-ts1col > .elementor-widget-wrap,
[data-id="ts1col"] > .elementor-widget-wrap {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  justify-content: center !important;
  column-gap: 12px;
}

.elementor-element-ts1com,
[data-id="ts1com"] {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  text-align: center !important;
}

.elementor-element-ts1btn1,
.elementor-element-ts1btn2,
[data-id="ts1btn1"],
[data-id="ts1btn2"] {
  display: block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 24px 0 0 !important;
  padding: 0 !important;
}

.elementor-element-ts1btn2 .elementor-button,
[data-id="ts1btn2"] .elementor-button {
  min-height: 66px;
  align-items: center;
}

/* Open and closed accordion icons use the same brand-gold state color. */
.elementor-element-qf1faq .elementor-accordion-icon,
.elementor-element-qf1faq .elementor-accordion-icon i,
.elementor-element-qf1faq .elementor-accordion-icon svg,
[data-id="qf1faq"] .elementor-accordion-icon,
[data-id="qf1faq"] .elementor-accordion-icon i,
[data-id="qf1faq"] .elementor-accordion-icon svg {
  color: var(--ml-gold-dark) !important;
  fill: var(--ml-gold-dark) !important;
  stroke: var(--ml-gold-dark) !important;
}

/* Two-column close: questions and consultation, followed by a full-width
   qualification statement and a final conversion point. */
.ml-qualify-grid > .elementor-container,
.elementor-element-qf1inner > .elementor-container,
[data-id="qf1inner"] > .elementor-container {
  align-items: flex-start !important;
  gap: clamp(34px, 5vw, 72px);
}

.ml-qualify-grid .elementor-column,
.elementor-element-qf1inner .elementor-column,
[data-id="qf1inner"] .elementor-column {
  flex: 1 1 0 !important;
  width: 50% !important;
}

.elementor-element-qf1h3a,
.elementor-element-qf1h3b,
[data-id="qf1h3a"],
[data-id="qf1h3b"] {
  margin-bottom: 18px !important;
}

.elementor-element-qf1p1,
[data-id="qf1p1"] {
  margin-bottom: 12px !important;
}

.ml-qualify-note,
.ml-qualify-note p,
.elementor-element-qf1note,
.elementor-element-qf1note p,
[data-id="qf1note"],
[data-id="qf1note"] p {
  width: 100% !important;
  max-width: none !important;
  color: var(--ml-ink) !important;
  font-family: var(--ml-sans) !important;
  font-size: 15.5px !important;
  line-height: 1.65 !important;
  text-align: center !important;
}

.elementor-element-qf1note,
[data-id="qf1note"] {
  padding-top: 24px !important;
  border-top: 1px solid rgba(166, 125, 62, 0.35);
}

.elementor-widget-heading.ml-promise .elementor-heading-title,
.elementor-element-qf1promise .elementor-heading-title,
[data-id="qf1promise"] .elementor-heading-title {
  color: var(--ml-navy) !important;
  font-family: var(--ml-serif) !important;
  font-size: clamp(20px, 2vw, 27px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.015em !important;
  text-wrap: balance;
}

.elementor-element-qf1btn .elementor-button,
[data-id="qf1btn"] .elementor-button {
  min-width: 245px;
}

@media (max-width: 1024px) {
  #ml-hero-full {
    min-height: 510px;
  }

  #ml-hero-full .ml-hero-fade {
    padding-right: 18px !important;
  }

  .elementor-element-hr2coltext,
  [data-id="hr2coltext"] {
    width: 72% !important;
    flex-basis: 72% !important;
  }

  .elementor-element-hr2navlogo,
  [data-id="hr2navlogo"] {
    width: 72% !important;
    flex-basis: 72% !important;
  }

  .elementor-element-hr2navspacer,
  [data-id="hr2navspacer"] {
    width: 28% !important;
    flex-basis: 28% !important;
  }

  .elementor-element-hr2colspacer,
  [data-id="hr2colspacer"] {
    width: 28% !important;
    flex-basis: 28% !important;
  }

  .elementor-section > .elementor-container {
    max-width: calc(100% - 40px) !important;
  }

  #ml-hero-full > .elementor-container,
  .ml-global-assets > .elementor-container {
    max-width: 100% !important;
  }

  .ml-qualify-grid > .elementor-container,
  .elementor-element-qf1inner > .elementor-container,
  [data-id="qf1inner"] > .elementor-container {
    gap: 32px;
  }
}

@media (max-width: 767px) {
  #ml-hero-full {
    min-height: 0;
    background-position: 62% center !important;
  }

  #ml-hero-full .ml-hero-fade {
    padding: 24px 20px 30px !important;
    background: rgba(247, 244, 239, 0.94) !important;
  }

  .elementor-widget-heading.ml-h1 .elementor-heading-title {
    max-width: none;
    font-size: clamp(31px, 8.4vw, 40px) !important;
  }

  .elementor-element-hr2coltext,
  [data-id="hr2coltext"],
  .elementor-element-hr2colspacer,
  [data-id="hr2colspacer"] {
    width: 100% !important;
    flex-basis: 100% !important;
  }

  .elementor-element-hr2navlogo,
  [data-id="hr2navlogo"] {
    width: 100% !important;
    flex-basis: 100% !important;
    padding: 0 20px !important;
  }

  .elementor-element-hr2navspacer,
  [data-id="hr2navspacer"] {
    display: none !important;
  }

  #ml-hero-full .ml-logo-img img {
    max-width: 175px;
  }

  .ml-cta-link {
    width: 100%;
  }

  .ml-cta-link--stacked {
    min-width: 0;
  }

  .elementor-widget-button.ml-btn-navy {
    margin-left: 0;
  }

  .elementor-widget-button.ml-btn .elementor-button {
    width: 100%;
  }

  .ml-card {
    margin-bottom: 16px;
  }

  .elementor-section > .elementor-container {
    max-width: 100% !important;
  }

  .elementor-top-section:not(#ml-hero-full) {
    padding-right: 20px !important;
    padding-left: 20px !important;
  }

  .elementor-inner-section {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .ml-testimonial-block > .elementor-widget-button.ml-btn-inline {
    display: block !important;
    width: 100% !important;
    margin: 12px 0 0 !important;
  }

  .elementor-element-ts1col > .elementor-widget-wrap,
  [data-id="ts1col"] > .elementor-widget-wrap {
    display: block !important;
  }

  .elementor-element-ts1btn1,
  .elementor-element-ts1btn2,
  [data-id="ts1btn1"],
  [data-id="ts1btn2"] {
    width: 100% !important;
    margin: 12px 0 0 !important;
  }

  .elementor-element-ts1btn1,
  [data-id="ts1btn1"] {
    margin-top: 24px !important;
  }

  .elementor-element-ts1btn1 .elementor-button,
  .elementor-element-ts1btn2 .elementor-button,
  [data-id="ts1btn1"] .elementor-button,
  [data-id="ts1btn2"] .elementor-button {
    width: 100% !important;
  }

  .ml-testimonial-block > .elementor-widget-button.ml-btn-inline:first-of-type {
    margin-top: 24px !important;
  }

  .ml-testimonial-block > .elementor-widget-button.ml-btn-inline .elementor-button {
    width: 100% !important;
  }

  .ml-qualify-grid > .elementor-container,
  .elementor-element-qf1inner > .elementor-container,
  [data-id="qf1inner"] > .elementor-container {
    display: block !important;
  }

  .ml-qualify-grid .elementor-column,
  .elementor-element-qf1inner .elementor-column,
  [data-id="qf1inner"] .elementor-column {
    width: 100% !important;
  }

  .elementor-element-qf1c2,
  [data-id="qf1c2"] {
    margin-top: 42px !important;
  }

  .ml-qualify-note,
  .ml-qualify-note p,
  .elementor-element-qf1note,
  .elementor-element-qf1note p,
  [data-id="qf1note"],
  [data-id="qf1note"] p {
    font-size: 15px !important;
    text-align: left !important;
  }

  .elementor-element-qf1btn .elementor-button,
  [data-id="qf1btn"] .elementor-button {
    width: 100% !important;
    min-width: 0;
  }

  .ml-faq .elementor-accordion-title {
    line-height: 1.35 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .elementor-widget-button.ml-btn .elementor-button,
  .ml-card {
    transition: none !important;
  }
}
