:root {
  /* --- 1. FALLBACKS GLOBAIS --- */
  --ca-max-w-desktop: 1280px;
  --ca-max-w-mobile: 390px;
  --ca-p-vt-section: 160;
  --ca-p-vt-section-mobile: 40;
  --ca-p-ht-section: 40;
  --ca-p-ht-section-mobile: 16;

  --ca-c-rgb-accent: 47 238 200;
  --ca-c-success: #40b76e;
  --ca-c-danger: #dc4c64;
  --ca-c-bg-page: #f5f5f5;
  --ca-c-bg-dark: #161616;
  --ca-c-bg-light: #f5f5f5;
  --ca-c-bg-accent: var(--ca-c-bg-page);
  --ca-c-gradient: linear-gradient(to right bottom, #e36d2d, var(--ca-c-accent));
  --ca-c-border-gradient: linear-gradient(to bottom, red, var(--ca-c-accent));
  --ca-c-bg-mobile: var(--ca-c-bg-page);
  --ca-c-fade: var(--ca-c-bg-page);
  --ca-fade-size: 60%;

  --ca-c-txt-selection: var(--ca-c-bg-page);
  --ca-c-bg-selection: var(--ca-c-accent);

  --ca-btn-bg-primary: var(--ca-c-accent);
  --ca-btn-shadow-primary: 0px 32px 40px -24px rgb(var(--ca-c-rgb-accent) / 0.2);
  --ca-btn-ff-primary: var(--ca-ff-secondary);
  --ca-btn-fs-primary: clamp(16px, 2.2vw, 22px);
  --ca-btn-fw-primary: 700;
  --ca-btn-c-txt-primary: black;
  --ca-btn-border-primary: none;
  --ca-btn-radius-primary: var(--ca-radius-full);
  --ca-btn-py-primary: clamp(20px, 3.2vw, 24px);
  --ca-btn-px-primary: clamp(16px, 4.4vw, 32px);

  --ca-btn-bg-secondary: white;
  --ca-btn-shadow-secondary: none;
  --ca-btn-ff-secondary: var(--ca-ff-secondary);
  --ca-btn-fs-secondary: clamp(16px, 2.2vw, 22px);
  --ca-btn-fw-secondary: 700;
  --ca-btn-c-txt-secondary: black;
  --ca-btn-border-secondary: none;
  --ca-btn-radius-secondary: var(--ca-radius-full);
  --ca-btn-py-secondary: clamp(20px, 3.2vw, 24px);
  --ca-btn-px-secondary: clamp(16px, 4.4vw, 32px);

  --ca-ff-primary: "DM Sans", sans-serif;
  --ca-ff-secondary: "DM Sans", sans-serif;
  --ca-fw-primary: 700;
  --ca-fw-secondary: 400;
  --ca-lh-heading: 1.2;
  --ca-lh-body: 1.4;

  --ca-c-lbase: 245 245 245;
  --ca-c-dbase: 22 22 22;

  --ca-c-alpha-primary: 1;
  --ca-c-alpha-secondary: 0.6;

  --ca-fs-headline: clamp(32px, 4.8vw, 64px);
  --ca-fs-subheadline: clamp(18px, 2.2vw, 22px);
  --ca-fs-pretitle: clamp(12px, 1.6vw, 18px);
  --ca-fs-title: clamp(24px, 4vw, 40px);
  --ca-fs-titlecard: clamp(20px, 2.4vw, 24px);
  --ca-fs-subtitle: clamp(16px, 1.8vw, 18px);
  --ca-fs-text: clamp(15px, 1.6vw, 16px);
  --ca-fs-text-base: clamp(15px, 1.6vw, 16px);
  --ca-fs-text-sm: clamp(12px, 1.4vw, 14px);
  --ca-fs-text-md: clamp(16px, 1.8vw, 18px);
  --ca-fs-text-lg: clamp(18px, 2vw, 20px);

  /* --- 2. VARIÁVEIS DERIVADAS --- */
  --ca-c-accent: rgb(var(--ca-c-rgb-accent) / 1);
  --ca-c-accent-80: rgb(var(--ca-c-rgb-accent) / 0.8);
  --ca-c-accent-60: rgb(var(--ca-c-rgb-accent) / 0.6);
  --ca-c-accent-40: rgb(var(--ca-c-rgb-accent) / 0.4);
  --ca-c-accent-20: rgb(var(--ca-c-rgb-accent) / 0.2);
  --ca-c-accent-10: rgb(var(--ca-c-rgb-accent) / 0.1);

  --ca-c-accent-2: rgb(var(--ca-c-rgb-accent-2) / 1);
  --ca-c-accent-3: rgb(var(--ca-c-rgb-accent-3) / 1);

  --ca-c-d100: rgb(var(--ca-c-dbase) / 1);
  --ca-c-d80: rgb(var(--ca-c-dbase) / 0.8);
  --ca-c-d60: rgb(var(--ca-c-dbase) / 0.6);
  --ca-c-d40: rgb(var(--ca-c-dbase) / 0.4);
  --ca-c-d20: rgb(var(--ca-c-dbase) / 0.2);
  --ca-c-d10: rgb(var(--ca-c-dbase) / 0.1);

  --ca-c-l100: rgb(var(--ca-c-lbase) / 1);
  --ca-c-l80: rgb(var(--ca-c-lbase) / 0.8);
  --ca-c-l60: rgb(var(--ca-c-lbase) / 0.6);
  --ca-c-l40: rgb(var(--ca-c-lbase) / 0.4);
  --ca-c-l20: rgb(var(--ca-c-lbase) / 0.2);
  --ca-c-l10: rgb(var(--ca-c-lbase) / 0.1);

  --ca-f-headline: var(--ca-fw-primary) var(--ca-fs-headline)/var(--ca-lh-heading) var(--ca-ff-primary);
  --ca-f-subheadline: var(--ca-fw-secondary) var(--ca-fs-subheadline)/var(--ca-lh-body) var(--ca-ff-secondary);
  --ca-f-pretitle: var(--ca-fw-secondary) var(--ca-fs-pretitle)/var(--ca-lh-body) var(--ca-ff-secondary);
  --ca-f-title: var(--ca-fw-primary) var(--ca-fs-title)/var(--ca-lh-body) var(--ca-ff-primary);
  --ca-f-titlecard: var(--ca-fw-primary) var(--ca-fs-titlecard)/var(--ca-lh-body) var(--ca-ff-secondary);
  --ca-f-subtitle: var(--ca-fw-secondary) var(--ca-fs-subtitle)/var(--ca-lh-body) var(--ca-ff-secondary);
  --ca-f-text: var(--ca-fw-secondary) var(--ca-fs-text)/var(--ca-lh-body) var(--ca-ff-secondary);

  --ca-fs-2xs: 10px;
  --ca-fs-xs: 12px;
  --ca-fs-sm: 14px;
  --ca-fs-md: 16px;
  --ca-fs-lg: clamp(16px, 1.8vw, 18px);
  --ca-fs-xl: clamp(18px, 2vw, 20px);
  --ca-fs-2xl: clamp(20px, 2.2vw, 22px);
  --ca-fs-3xl: clamp(22px, 2.5vw, 24px);
  --ca-fs-4xl: clamp(24px, 3.5vw, 32px);
  --ca-fs-5xl: clamp(28px, 4.5vw, 40px);
  --ca-fs-6xl: clamp(32px, 5.5vw, 48px);
  --ca-fs-7xl: clamp(36px, 6.5vw, 56px);
  --ca-fs-8xl: clamp(40px, 7.5vw, 64px);
  --ca-fs-9xl: clamp(44px, 8.5vw, 72px);
  --ca-fs-10xl: clamp(48px, 9.5vw, 80px);
  --ca-fs-11xl: clamp(52px, 10.5vw, 88px);
  --ca-fs-12xl: clamp(56px, 11.5vw, 96px);
  --ca-fs-13xl: clamp(60px, 12.5vw, 104px);
  --ca-fs-14xl: clamp(64px, 13.5vw, 112px);
  --ca-fs-15xl: clamp(68px, 14.5vw, 120px);
  --ca-fs-full: clamp(72px, 16vw, 128px);

  --ca-fs-mob-base: 12px;
  --ca-fs-mob-3xs: 14px;
  --ca-fs-mob-2xs: 16px;
  --ca-fs-mob-xs: 18px;
  --ca-fs-mob-sm: 20px;
  --ca-fs-mob-md: 22px;
  --ca-fs-mob-lg: 24px;
  --ca-fs-mob-xl: 32px;

  --ca-icon-size-80: clamp(48px, 8vw, 80px);
  --ca-icon-size-72: clamp(44px, 7.2vw, 72px);
  --ca-icon-size-64: clamp(44px, 6.4vw, 64px);
  --ca-icon-size-56: clamp(40px, 5.6vw, 56px);
  --ca-icon-size-48: clamp(40px, 4.8vw, 48px);
  --ca-icon-size-40: clamp(32px, 4vw, 40px);
  --ca-icon-size-32: clamp(24px, 3.2vw, 32px);
  --ca-icon-size-24: clamp(20px, 2.4vw, 24px);
  --ca-icon-size-20: clamp(18px, 2vw, 20px);

  --ca-radius-base: 2px;
  --ca-radius-4xs: 4px;
  --ca-radius-3xs: 8px;
  --ca-radius-2xs: clamp(8px, 1.2vw, 12px);
  --ca-radius-xs: clamp(10px, 1.6vw, 16px);
  --ca-radius-sm: clamp(16px, 2vw, 20px);
  --ca-radius-md: clamp(18px, 2.4vw, 24px);
  --ca-radius-lg: clamp(20px, 2.4vw, 32px);
  --ca-radius-xl: clamp(24px, 3.2vw, 40px);
  --ca-radius-2xl: clamp(24px, 4vw, 48px);
  --ca-radius-3xl: clamp(32px, 4.8vw, 56px);
  --ca-radius-4xl: clamp(40px, 5.6vw, 64px);
  --ca-radius-full: 9999px;

  --ca-spacing-base: 8px;
  --ca-spacing-4xs: clamp(8px, 1.2vw, 12px);
  --ca-spacing-3xs: clamp(12px, 1.6vw, 16px);
  --ca-spacing-2xs: clamp(12px, 2vw, 20px);
  --ca-spacing-xs: clamp(16px, 2.4vw, 24px);
  --ca-spacing-sm: clamp(16px, 3.2vw, 32px);
  --ca-spacing-md: clamp(16px, 4vw, 40px);
  --ca-spacing-lg: clamp(16px, 4vw, 48px);
  --ca-spacing-xl: clamp(16px, 4.8vw, 56px);
  --ca-spacing-2xl: clamp(20px, 5.6vw, 64px);
  --ca-spacing-3xl: clamp(20px, 6.4vw, 72px);
  --ca-spacing-4xl: clamp(24px, 7.2vw, 80px);

  --ca-max-w: min(100%, var(--ca-max-w-desktop));

  /* --- INCLUSÃO DE FALLBACKS INLINE NOS CÁLCULOS --- */
  --ca-p-vt: clamp(calc(var(--ca-p-vt-section-mobile, 40) * 1px), calc(((var(--ca-p-vt-section, 160) / 1.85) / 10) * 1vw), calc(var(--ca-p-vt-section, 160) * 1px));
  --ca-p-ht: clamp(calc(var(--ca-p-ht-section-mobile, 16) * 1px), calc((var(--ca-p-ht-section, 40) / 10) * 1vw), calc(var(--ca-p-ht-section, 40) * 1px));

  scrollbar-width: var(--ca-width-scrollbar, auto);
  scrollbar-color: var(--ca-c-scrollbar, auto) var(--ca-c-bg-scrollbar, auto);
  scrollbar-gutter: stable;
}

body.ca-atomico-system ::-webkit-scrollbar-thumb {
  background: var(--ca-c-scrollbar, auto);
}

/* --- 3. ESCOPO GLOBAL LIMITADO AO KIT ATÔMICO --- */
body.ca-atomico-system {
  background-color: var(--ca-c-bg-page);
}
body.ca-atomico-system :where(p, h1, h2, h3, h4, h5, h6) {
  margin: 0;
}
body.ca-atomico-system ::selection {
  -webkit-text-fill-color: var(--ca-c-txt-selection, revert) !important;
  color: var(--ca-c-txt-selection, revert) !important;
  background: var(--ca-c-bg-selection, revert) !important;
}

body.ca-atomico-system :where(.e-con .e-con-full) {
  padding: 0;
}
body.ca-atomico-system .e-con > .e-con-inner {
  max-width: var(--ca-max-w, 1140px);
}
body.ca-atomico-system .e-con:not(.ca-p-vt-custom):not(.ca-p-custom) > .e-con-inner {
  padding-block: var(--ca-p-vt, 40px);
}
@media (max-width: 1360px) and (min-width: 463px) {
  body.ca-atomico-system .e-con:not(.ca-p-ht-custom):not(.ca-p-custom):not(.ca-pjs-popup) > .e-con-inner {
    padding-inline: var(--ca-p-ht, 40px);
  }
}
@media (max-width: 462px) {
  body.ca-atomico-system .e-con:not(.ca-p-ht-custom):not(.ca-p-custom) > .e-con-inner {
    max-width: var(--ca-max-w-mobile, 100%);
    padding-inline: calc(var(--ca-p-ht-section-mobile, 16) * 1px);
    padding-block: calc(var(--ca-p-vt-section-mobile, 40) * 1px);
  }
}

.ca-bg-light,
.ca-bg-light-custom,
.ca-bg-dark,
.ca-bg-dark-custom {
  --ca-c-base: var(--ca-c-dbase);

  --ca-c-100: rgb(var(--ca-c-base) / 1);
  --ca-c-80: rgb(var(--ca-c-base) / 0.8);
  --ca-c-60: rgb(var(--ca-c-base) / 0.6);
  --ca-c-40: rgb(var(--ca-c-base) / 0.4);
  --ca-c-20: rgb(var(--ca-c-base) / 0.2);
  --ca-c-10: rgb(var(--ca-c-base) / 0.1);

  --ca-c-primary: rgb(var(--ca-c-base) / var(--ca-c-alpha-primary));
  --ca-c-secondary: rgb(var(--ca-c-base) / var(--ca-c-alpha-secondary));
  color: var(--ca-c-primary);
}

.ca-bg-dark,
.ca-bg-dark-custom {
  --ca-c-base: var(--ca-c-lbase);
}

.ca-bg-light :where(p, h1, h2, h3, h4, h5, h6, li, a, span) {
  color: inherit;
}

.ca-bg-dark {
  --ca-c-base: var(--ca-c-lbase);
  color: var(--ca-c-primary);
}

.ca-bg-dark :where(p, h1, h2, h3, h4, h5, h6, li, a, span) {
  color: inherit;
}

:where(.ca-bg-light, .ca-bg-light-custom, .ca-bg-dark, .ca-bg-dark-custom) :where(h1, h2, h3, h4, h5, h6, p, span, a, li, .elementor-heading-title, .elementor-widget-text-editor, .elementor-icon-list-text, .elementor-icon-box-title, .elementor-icon-box-description) {
  color: var(--ca-c-primary);
  fill: var(--ca-c-primary);
}

:where(.ca-bg-light, .ca-bg-light-custom, .ca-bg-dark, .ca-bg-dark-custom) .elementor-widget-text-editor a {
  text-decoration: underline;
}

:where(.ca-bg-light, .ca-bg-light-custom, .ca-bg-dark, .ca-bg-dark-custom) .ca-text-sec {
  color: var(--ca-c-secondary) !important;
}

.ca-bg-light {
  background-color: var(--ca-c-bg-light);
}
.ca-bg-dark {
  background-color: var(--ca-c-bg-dark);
}

:where(.ca-img-h-cover) img {
  width: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
}
:where(.e-con):has(.ca-img-h-cover img) {
  align-items: stretch;
}

.elementor-icon-wrapper {
  line-height: 0 !important;
}

.ca-icon-size-80 svg {
  width: var(--ca-icon-size-80) !important;
  height: var(--ca-icon-size-80) !important;
}
.ca-icon-size-72 svg {
  width: var(--ca-icon-size-72) !important;
  height: var(--ca-icon-size-72) !important;
}
.ca-icon-size-64 svg {
  width: var(--ca-icon-size-64) !important;
  height: var(--ca-icon-size-64) !important;
}
.ca-icon-size-56 svg {
  width: var(--ca-icon-size-56) !important;
  height: var(--ca-icon-size-56) !important;
}
.ca-icon-size-48 svg {
  width: var(--ca-icon-size-48) !important;
  height: var(--ca-icon-size-48) !important;
}
.ca-icon-size-40 svg {
  width: var(--ca-icon-size-40) !important;
  height: var(--ca-icon-size-40) !important;
}
.ca-icon-size-32 svg {
  width: var(--ca-icon-size-32) !important;
  height: var(--ca-icon-size-32) !important;
}
.ca-icon-size-24 svg {
  width: var(--ca-icon-size-24) !important;
  height: var(--ca-icon-size-24) !important;
}
.ca-icon-size-20 svg {
  width: var(--ca-icon-size-20) !important;
  height: var(--ca-icon-size-20) !important;
}

body .ca-icon-c-accent svg,
body .ca-icon-c-accent .elementor-icon svg,
body .ca-icon-c-accent .elementor-icon svg :is(path, circle, rect, polygon) {
  fill: var(--ca-c-accent) !important;
}

body .ca-icon-stroke-c-accent .elementor-icon svg,
body .ca-icon-stroke-c-accent .elementor-icon svg :is(path, circle, rect, polygon) {
  stroke: var(--ca-c-accent) !important;
}

.ca-icon-stroke-w1 {
  --_s-width: 1px;
}
.ca-icon-stroke-w2 {
  --_s-width: 2px;
}
.ca-icon-stroke-w3 {
  --_s-width: 3px;
}
.ca-icon-stroke-w4 {
  --_s-width: 4px;
}
.ca-icon-stroke-w5 {
  --_s-width: 5px;
}

body .elementor-element[class*="ca-icon-stroke-w"] .elementor-icon svg,
body .elementor-element[class*="ca-icon-stroke-w"] .elementor-icon svg :is(path, circle, rect, polygon) {
  stroke-width: var(--_s-width);
}

.ca-btn-icon-right .elementor-button-content-wrapper,
.ca-btn-icon-left .elementor-button-content-wrapper {
  display: grid;
  grid-template-areas: "a b";
}
.ca-btn-icon-right svg,
.ca-btn-icon-left svg {
  fill: currentColor !important;
}
.ca-btn-icon-right .elementor-button-text {
  grid-area: a;
  align-self: center;
}
.ca-btn-icon-left .elementor-button-text {
  grid-area: b;
  align-self: center;
}

.ca-p-top-zero.e-con > .e-con-inner {
  padding-top: 0 !important;
}
.ca-p-bottom-zero.e-con > .e-con-inner {
  padding-bottom: 0 !important;
}

.ca-fade-to-top::after,
.ca-fade-to-bottom::after,
.ca-fade-to-right::after,
.ca-fade-to-left::after,
.ca-fade-to-left-top::after,
.ca-fade-to-left-bottom::after,
.ca-fade-to-right-top::after,
.ca-fade-to-right-bottom::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, var(--ca-c-fade), transparent var(--ca-fade-size));
  bottom: 0 !important;
  left: 50%;
  transform: translate(-50%);
  pointer-events: none;
  z-index: 0;
}
.ca-fade-to-bottom::after {
  background: linear-gradient(to bottom, var(--ca-c-fade), transparent var(--ca-fade-size)) !important;
}
.ca-fade-to-right::after {
  background: linear-gradient(to right, var(--ca-c-fade), transparent var(--ca-fade-size)) !important;
}
.ca-fade-to-left::after {
  background: linear-gradient(to left, var(--ca-c-fade), transparent var(--ca-fade-size)) !important;
}
.ca-fade-to-left-top::after {
  background: linear-gradient(to left top, var(--ca-c-fade), transparent var(--ca-fade-size)) !important;
}
.ca-fade-to-left-bottom::after {
  background: linear-gradient(to left bottom, var(--ca-c-fade), transparent var(--ca-fade-size)) !important;
}
.ca-fade-to-right-top::after {
  background: linear-gradient(to right bottom, var(--ca-c-fade), transparent var(--ca-fade-size)) !important;
}
.ca-fade-to-right-bottom::after {
  background: linear-gradient(to right bottom, var(--ca-c-fade), transparent var(--ca-fade-size)) !important;
}

.ca-fade-to-top .elementor-element,
.ca-fade-to-bottom .elementor-element,
.ca-fade-to-left .elementor-element,
.ca-fade-to-right .elementor-element,
.ca-fade-to-left-top .elementor-element,
.ca-fade-to-left-right .elementor-element,
.ca-fade-to-right-top .elementor-element,
.ca-fade-to-right-bottom .elementor-element {
  z-index: 1;
}

.ca-html-zero-size .elementor-widget-html {
  position: absolute;
  width: 0 !important;
  bottom: 0;
  left: 50%;
}

.ca-no-click {
  pointer-events: none;
}
.ca-no-select {
  user-select: none;
}
.ca-no-click-select {
  pointer-events: none;
  user-select: none;
}

.ca-position-left-top,
.ca-position-left-bottom,
.ca-position-right-top,
.ca-position-right-bottom {
  position: absolute;
}
.ca-position-left-top,
.ca-position-left-top .ca-top-zero {
  left: calc(50% - calc((var(--ca-max-w)) / 2));
  top: var(--ca-p-vt);
}
.ca-position-left-bottom,
.ca-position-left-bottom .ca-bottom-zero {
  left: calc(50% - calc((var(--ca-max-w)) / 2));
  bottom: var(--ca-p-vt);
}
.ca-position-right-top,
.ca-position-right-top .ca-top-zero {
  right: calc(50% - calc((var(--ca-max-w)) / 2));
  top: var(--ca-p-vt);
}
.ca-position-right-bottom,
.ca-position-right-bottom .ca-bottom-zero {
  right: calc(50% - calc((var(--ca-max-w)) / 2));
  bottom: var(--ca-p-vt);
}
.ca-top-zero {
  top: 0 !important;
}
.ca-bottom-zero {
  bottom: 0 !important;
}

@media (max-width: 1366px) {
  .ca-position-left-top,
  .ca-position-left-bottom {
    left: var(--ca-p-ht) !important;
    right: auto !important;
  }
  .ca-position-right-top,
  .ca-position-right-bottom {
    right: var(--ca-p-ht) !important;
    left: auto !important;
  }
}

.ca-txt-accent {
  color: var(--ca-c-accent) !important;
}
.ca-txt-accent-2 {
  color: var(--ca-c-accent-2) !important;
}
.ca-txt-accent-3 {
  color: var(--ca-c-accent-3) !important;
}

.ca-txt-accent-bold {
  color: var(--ca-c-accent);
  font-weight: var(--ca-fw-primary);
}

.ca-txt-bg-accent {
  background: var(--ca-c-accent);
  color: var(--ca-c-bg-accent);
  border-radius: 3px;
  padding: 2px 0.2em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.ca-txt-gradient {
  background: var(--ca-c-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.ca-c-gradient-border {
  --border-size: 1px;
  border: var(--border-size) solid transparent;
  border-radius: inherit;
  overflow: clip;
  background:
    linear-gradient(var(--ca-c-bg-page), var(--ca-c-bg-page)) padding-box,
    var(--ca-c-border-gradient) border-box;
}

.ca-tag-br {
  content: "" !important;
  display: block !important;
  margin-bottom: 0.9rem !important;
}

.ca-headline {
  font: var(--ca-f-headline);
  color: var(--ca-c-primary) !important;
  display: block;
}

.ca-subheadline {
  font: var(--ca-f-subheadline);
  color: var(--ca-c-secondary);
  display: block;
}

.ca-pretitle,
.ca-pretitle-simple {
  font: var(--ca-f-pretitle);
  color: var(--ca-c-secondary);
  display: inline-block;
  padding: 8px 16px;
  border: 1px solid var(--ca-c-20);
  border-radius: var(--ca-radius-full);
  vertical-align: middle;
  line-height: 1;
  letter-spacing: 0.7rem;
}
:is(h1, h2, h3, h4, h5, h6, p, span, div):has(.ca-pretitle, .ca-pretitle-simple) {
  line-height: 0 !important;
}

.ca-pretitle-simple {
  padding: 0;
  border: none;
  border-radius: none;
  letter-spacing: 0.7rem;
}

.ca-title {
  font: var(--ca-f-title);
  color: var(--ca-c-primary);
  display: block;
}

.ca-titlecard {
  font: var(--ca-f-titlecard);
  color: var(--ca-c-primary);
  display: block !important;
}

.ca-subtitle {
  font: var(--ca-f-subtitle);
  color: var(--ca-c-primary);
  text-wrap: pretty;
  display: block;
}
.ca-text {
  font: var(--ca-f-text);
  color: var(--ca-c-secondary);
  text-wrap: pretty;
  display: block;
}

.ca-txt-muted {
  color: var(--ca-c-secondary);
  font-weight: var(--ca-fw-secondary);
}
.ca-txt-danger {
  color: var(--ca-c-danger);
}
.ca-txt-success {
  color: var(--ca-c-success);
}
.ca-b {
  font-weight: var(--ca-fw-primary);
}
.ca-r {
  font-weight: var(--ca-fw-secondary);
}
.ca-i {
  font-style: italic;
}
.ca-u {
  text-decoration: underline;
}
.ca-s {
  text-decoration: line-through;
}
.ca-up {
  text-transform: uppercase;
}

.ca-fs-2xs {
  font-size: var(--ca-fs-2xs) !important;
}
.ca-fs-xs {
  font-size: var(--ca-fs-xs) !important;
}
.ca-fs-sm {
  font-size: var(--ca-fs-sm) !important;
}
.ca-fs-md {
  font-size: var(--ca-fs-md) !important;
}
.ca-fs-lg {
  font-size: var(--ca-fs-lg) !important;
}
.ca-fs-xl {
  font-size: var(--ca-fs-xl) !important;
}
.ca-fs-2xl {
  font-size: var(--ca-fs-2xl) !important;
}
.ca-fs-3xl {
  font-size: var(--ca-fs-3xl) !important;
}
.ca-fs-4xl {
  font-size: var(--ca-fs-4xl) !important;
}
.ca-fs-5xl {
  font-size: var(--ca-fs-5xl) !important;
}
.ca-fs-6xl {
  font-size: var(--ca-fs-6xl) !important;
}
.ca-fs-7xl {
  font-size: var(--ca-fs-7xl) !important;
}
.ca-fs-8xl {
  font-size: var(--ca-fs-8xl) !important;
}
.ca-fs-9xl {
  font-size: var(--ca-fs-9xl) !important;
}
.ca-fs-10xl {
  font-size: var(--ca-fs-10xl) !important;
}
.ca-fs-11xl {
  font-size: var(--ca-fs-11xl) !important;
}
.ca-fs-12xl {
  font-size: var(--ca-fs-12xl) !important;
}
.ca-fs-13xl {
  font-size: var(--ca-fs-13xl) !important;
}
.ca-fs-14xl {
  font-size: var(--ca-fs-14xl) !important;
}
.ca-fs-15xl {
  font-size: var(--ca-fs-15xl) !important;
}
.ca-fs-full {
  font-size: var(--ca-fs-full) !important;
}

:where(.ca-subheadline, .ca-subtitle, .ca-text) b,
:where(.ca-subheadline, .ca-subtitle, .ca-text) strong {
  color: var(--ca-c-primary);
}
.ca-pretitle:has(+ :is(.ca-headline, .ca-subheadline, .ca-title, .ca-subtitle, .ca-titlecard, .ca-text)),
.ca-pretitle-simple:has(+ :is(.ca-headline, .ca-subheadline, .ca-title, .ca-subtitle, .ca-titlecard, .ca-text)),
.ca-headline:has(+ :is(.ca-subheadline, .ca-title, .ca-subtitle, .ca-titlecard, .ca-text)),
.ca-title:has(+ :is(.ca-subtitle, .ca-titlecard, .ca-text)),
.ca-subtitle:has(+ :is(.ca-titlecard, .ca-text)),
.ca-titlecard:has(+ :is(.ca-text)) {
  margin-bottom: var(--ca-spacing-3xs);
}

body.ca-atomico-system .elementor-element.elementor-widget-button a.elementor-button {
  transition: all 0.3s !important;
}
body.ca-atomico-system .elementor-button span {
  line-height: 1.3;
  text-wrap: balance;
}
body.ca-atomico-system .elementor-element.ca-btn-primary.elementor-widget-button a.elementor-button {
  background: var(--ca-btn-bg-primary);
  color: var(--ca-btn-c-txt-primary) !important;
  box-shadow: var(--ca-btn-shadow-primary);
  border: var(--ca-btn-border-primary);

  font-family: var(--ca-btn-ff-primary);
  font-weight: var(--ca-btn-fw-primary);
  font-size: var(--ca-btn-fs-primary);
  border-radius: var(--ca-btn-radius-primary);
  padding-block: var(--ca-btn-py-primary);
  padding-inline: var(--ca-btn-px-primary);
}
body.ca-atomico-system .elementor-element.ca-btn-primary.elementor-widget-button a.elementor-button span {
  color: var(--ca-btn-c-txt-primary) !important;
}

body.ca-atomico-system .elementor-element.ca-btn-secondary.elementor-widget-button a.elementor-button {
  background: var(--ca-btn-bg-secondary);
  color: var(--ca-btn-c-txt-secondary) !important;
  box-shadow: var(--ca-btn-shadow-secondary);
  border: var(--ca-btn-border-secondary);

  font-family: var(--ca-btn-ff-secondary);
  font-weight: var(--ca-btn-fw-secondary);
  font-size: var(--ca-btn-fs-secondary);
  border-radius: var(--ca-btn-radius-secondary);
  padding-block: var(--ca-btn-py-secondary);
  padding-inline: var(--ca-btn-px-secondary);
}
body.ca-atomico-system .elementor-element.ca-btn-secondary.elementor-widget-button a.elementor-button span {
  color: var(--ca-btn-c-txt-secondary) !important;
}

body.ca-atomico-system .elementor-element.ca-btn-primary.elementor-widget-button a.elementor-button:hover {
  transform: scale(1.05);
  color: var(--ca-btn-c-txt-primary) !important;
}
body.ca-atomico-system .elementor-element.ca-btn-secondary.elementor-widget-button a.elementor-button:hover {
  transform: scale(1.05);
  color: var(--ca-btn-c-txt-secondary) !important;
}
body.ca-atomico-system .elementor-element.elementor-widget-button a.elementor-button:active {
  transform: scale(0.95);
}
body.ca-atomico-system .elementor-element.elementor-widget-button a.elementor-button:focus {
  outline: none;
}

.ca-txt-balance :where(h1, h2, h3, h4, h5, h6, p, div, span) {
  text-wrap: balance;
}
.ca-txt-pretty :where(h1, h2, h3, h4, h5, h6, p, div, span) {
  text-wrap: pretty;
}

.ca-hide-all {
  display: none !important;
}
@media (min-width: 768px) {
  .ca-show-mobile {
    display: none !important;
  }
}
@media (min-width: 1025px) {
  .ca-hide-desktop,
  .ca-show-tablet-mobile {
    display: none !important;
  }
}
@media (max-width: 1024px) {
  .ca-show-desktop,
  .ca-hide-tablet-mobile {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .ca-hide-tablet {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .ca-bg-mobile,
  .ca-bg-mobile-custom {
    display: none;
  }
}

@media (max-width: 767px) {
  .ca-hide-mobile {
    display: none !important;
  }

  /* Ajuste de texto */
  .ca-txt-balance-mobile :where(h1, h2, h3, h4, h5, h6, p, div, span) {
    text-wrap: balance;
  }
  .ca-txt-pretty-mobile :where(h1, h2, h3, h4, h5, h6, p, div, span) {
    text-wrap: pretty;
  }

  /* Imagem de hero no mobile */
  .ca-bg-mobile img,
  .ca-bg-mobile-custom img {
    max-width: calc(100% + (2 * var(--ca-p-ht)));
    margin-left: calc(-1 * var(--ca-p-ht)) !important;
  }
  .e-con:has(*.ca-bg-mobile) {
    background: var(--ca-c-bg-mobile) !important;
  }

  .ca-p-top-zero-mob.e-con > .e-con-inner {
    padding-top: 0 !important;
  }
  .ca-p-bottom-zero-mob.e-con > .e-con-inner {
    padding-bottom: 0 !important;
  }

  .ca-fs-mob-base {
    font-size: var(--ca-fs-mob-base) !important;
  }
  .ca-fs-mob-3xs {
    font-size: var(--ca-fs-mob-3xs) !important;
  }
  .ca-fs-mob-2xs {
    font-size: var(--ca-fs-mob-2xs) !important;
  }
  .ca-fs-mob-xs {
    font-size: var(--ca-fs-mob-xs) !important;
  }
  .ca-fs-mob-sm {
    font-size: var(--ca-fs-mob-sm) !important;
  }
  .ca-fs-mob-md {
    font-size: var(--ca-fs-mob-md) !important;
  }
  .ca-fs-mob-lg {
    font-size: var(--ca-fs-mob-lg) !important;
  }
  .ca-fs-mob-xl {
    font-size: var(--ca-fs-mob-xl) !important;
  }
}
