/* Cloud Nine Elementor parity fixes — loaded after the component library. */
:root {
  --wrap: min(1180px, calc(100% - 40px));
  --cnl-wrap: min(1180px, calc(100% - 40px));
}

/* Elementor's starter kit must not recolour or retype the approved design. */
.elementor .cnl-page-section .elementor-heading-title {
  color: var(--cnl-charcoal) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
}
.elementor .hero-copy .elementor-heading-title,
.elementor .page-hero .elementor-heading-title {
  font-size: clamp(42px, 5.2vw, 68px) !important;
  line-height: 1.03 !important;
  letter-spacing: -2.4px !important;
}
.elementor .section-dark .elementor-heading-title,
.elementor .tool-panel .elementor-heading-title,
.elementor .cta-band .elementor-heading-title {
  color: #fff !important;
}
.site-footer .elementor-heading-title { color: #fff !important; }

/* Elementor applies custom classes to the widget wrapper; neutralise it and
   style the actual anchor so buttons do not render as two nested pills. */
.elementor .elementor-widget-button.button,
.elementor .elementor-widget-button.button-light,
.elementor .elementor-widget-button.text-link,
.elementor .elementor-widget-button.card-link {
  display: block !important;
  width: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.elementor .elementor-widget-button.button .elementor-button,
.site-header .cnl-header-cta .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 13px 21px !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: var(--cnl-red) !important;
  box-shadow: 0 10px 24px rgba(219,50,48,.2) !important;
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 800 !important;
}
.elementor .elementor-widget-button.button-light .elementor-button {
  color: var(--cnl-charcoal) !important;
  background: #fff !important;
  box-shadow: none !important;
}
.elementor .elementor-widget-button.text-link .elementor-button,
.elementor .elementor-widget-button.card-link .elementor-button {
  padding: 0 !important;
  color: var(--cnl-red-dark) !important;
  background: transparent !important;
  box-shadow: none !important;
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 800 !important;
  text-align: left !important;
}

/* Explicit layout directions are required because every Elementor container
   otherwise inherits its default column direction. */
.elementor .section-heading.e-con {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 45px !important;
  padding: 0 !important;
}
.elementor .section-heading.e-con > .e-con { width: min(650px, 62%) !important; }
.elementor .section-heading.e-con > .elementor-widget-text-editor { width: min(420px, 38%) !important; }
.elementor .trust-strip > .wrap.e-con {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 25px !important;
  padding: 18px 0 !important;
}
.elementor .trust-strip > .wrap.e-con > .elementor-widget-text-editor:last-child { width: auto !important; }
.elementor .trust-strip ul { display: flex; flex-wrap: wrap; gap: 22px; }
.elementor .number-art.e-con,
.elementor .card-float.e-con {
  flex-direction: row !important;
  align-items: center !important;
}
.elementor .tag.e-con {
  display: inline-flex !important;
  flex-direction: row !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: 100% !important;
  min-height: 0 !important;
  align-self: flex-start !important;
  padding: 5px 9px !important;
}
.elementor .tag.e-con .elementor-widget-text-editor { width: auto !important; }
.elementor .tag.e-con p { margin: 0 !important; }

/* Restore the designed panel and section geometry. */
.elementor .cnl-page-section.section.e-con { padding: 80px 0 !important; }
.elementor .cnl-page-section > .tool-panel.e-con {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(260px,.65fr) !important;
  align-items: center !important;
  gap: 50px !important;
  padding: 55px 60px !important;
  border-radius: 28px !important;
  color: #fff !important;
  background: linear-gradient(135deg,var(--cnl-charcoal),#4a403a) !important;
}
body .elementor .cnl-page-section > .wrap.tool-panel.e-con.e-parent {
  background-color: var(--cnl-charcoal) !important;
  background-image: linear-gradient(135deg,var(--cnl-charcoal),#4a403a) !important;
}
.elementor .tool-panel p { color: #e0d5d0 !important; }
.elementor .tool-panel .number-art { color: #fff !important; }
.elementor .cnl-tool-section.e-con {
  width: var(--cnl-wrap) !important;
  max-width: 980px !important;
  margin-inline: auto !important;
  padding: 80px 0 !important;
  gap: 24px !important;
}
.elementor .cnl-page-section.section > .contact-grid.e-con {
  width: var(--cnl-wrap) !important;
  max-width: 1180px !important;
  margin-inline: auto !important;
  padding: 0 !important;
}
.elementor .card-grid.e-con,
.elementor .story-grid.e-con,
.elementor .steps.e-con,
.elementor .feature-list.e-con,
.elementor .testimonial-grid.e-con { padding: 0 !important; }
.elementor .service-card.e-con { gap: 10px !important; }
.elementor .service-card .card-link { margin-top: auto !important; }
.elementor .cta-band.e-con { gap: 40px !important; }
.elementor .cta-band.e-con > .elementor-widget-button { flex: 0 0 auto !important; }

/* Keep the editorial hero in two columns on small laptops. The original
   prototype stylesheet switched to a tablet stack too early at 1000px. */
@media (min-width: 901px) and (max-width: 1000px) {
  .elementor .cnl-page-section.hero > .wrap.hero-grid.e-con {
    display: grid !important;
    grid-template-columns: minmax(0,1.03fr) minmax(360px,.97fr) !important;
    gap: 40px !important;
  }
  .elementor .cnl-page-section.hero .hero-copy.e-con,
  .elementor .cnl-page-section.hero .hero-visual.e-con { min-width: 0 !important; }
}

/* Elementor FAQ widget and Yoast FAQ schema use this same visible content. */
.elementor .cnl-faq.faq-list { width: 100%; }
.elementor .cnl-faq.faq-list details { overflow: hidden; border-bottom: 1px solid var(--cnl-line); }
.elementor .cnl-faq.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; list-style: none; padding: 20px 0; color: var(--cnl-charcoal); font-weight: 800; cursor: pointer; }
.elementor .cnl-faq.faq-list summary::-webkit-details-marker { display: none; }
.elementor .cnl-faq.faq-list summary::before,
.elementor .cnl-faq.faq-list summary::after { content: none !important; display: none !important; }
.elementor .cnl-faq.faq-list summary span { color: var(--cnl-red); font-size: 24px; font-weight: 400; transition: transform .2s ease; }
.elementor .cnl-faq.faq-list details[open] summary span { transform: rotate(45deg); }
.elementor .cnl-faq.faq-list details > div { max-width: 900px; padding: 0 42px 20px 0; color: var(--cnl-muted); }
.elementor .cnl-faq.faq-list details > div > :first-child { margin-top: 0; }
.elementor .cnl-faq.faq-list details > div > :last-child { margin-bottom: 0; }

@media (max-width: 1000px) {
  .elementor .cnl-page-section > .tool-panel.e-con {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  :root {
    --wrap: min(1180px, calc(100% - 28px));
    --cnl-wrap: min(1180px, calc(100% - 28px));
  }
  .elementor .hero-copy .elementor-heading-title,
  .elementor .page-hero .elementor-heading-title {
    font-size: clamp(38px, 11vw, 48px) !important;
    letter-spacing: -1.6px !important;
  }
  .elementor .cnl-page-section.section.e-con { padding: 62px 0 !important; }
  .elementor .section-heading.e-con {
    display: block !important;
    margin-bottom: 34px !important;
  }
  .elementor .section-heading.e-con > .e-con,
  .elementor .section-heading.e-con > .elementor-widget-text-editor { width: 100% !important; }
  .elementor .section-heading.e-con > .elementor-widget-text-editor { margin-top: 16px !important; }
  .elementor .trust-strip > .wrap.e-con { display: block !important; }
  .elementor .trust-strip ul { display: grid; gap: 7px; margin-top: 12px; }
  .elementor .cnl-page-section > .tool-panel.e-con {
    padding: 36px 26px !important;
    gap: 32px !important;
  }
  .elementor .cta-band.e-con { display: block !important; }
  .elementor .cta-band.e-con > .elementor-widget-button { margin-top: 22px !important; }
  .elementor .cnl-tool-section.e-con { padding: 62px 0 !important; }
  .elementor .hero-card.card-main.e-con { width: 83% !important; }
}
