:root{--ms-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11L11 3M11 3H5M11 3v6'/%3E%3C/svg%3E")}.elementor-widget-heading .elementor-heading-title,.elementor-widget-text-editor>.elementor-widget-container>p,.elementor-widget-text-editor>.elementor-widget-container>h1,.elementor-widget-text-editor>.elementor-widget-container>h2,.elementor-widget-text-editor>.elementor-widget-container>h3,.elementor-widget-text-editor>.elementor-widget-container>h4{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;margin:0;padding:0}.elementor-widget>.elementor-widget-container{margin:0;padding:0}.elementor.elementor .e-con>.elementor-widget[class*="ms-"]{max-width:var(--ms-measure,100%)}.elementor-widget-heading.ms-eyebrow::before{content:none}.elementor-widget-heading.ms-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:0.625rem;line-height:1}.elementor-widget-heading.ms-eyebrow .elementor-heading-title::before{content:"";width:22px;height:1px;background:currentColor;opacity:0.55;flex:none}.elementor-widget-button.ms-btn{background:none;border:0;padding:0;border-radius:0;overflow:visible;display:inline-flex;width:auto}.elementor-widget-button.ms-btn>.elementor-widget-container,.elementor-widget-button.ms-btn .elementor-button-wrapper{display:inline-flex}.elementor-widget-button.ms-btn .elementor-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0.6rem;padding:0.95rem 1.6rem;background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-bd);border-radius:var(--ms-r-pill);font-family:var(--ms-font-sans);font-size:var(--ms-t-sm);font-weight:600;letter-spacing:-0.005em;line-height:1;text-transform:none;text-decoration:none;transition:transform var(--ms-dur) var(--ms-ease-out),box-shadow var(--ms-dur) var(--ms-ease-out),background-color var(--ms-dur) var(--ms-ease),color var(--ms-dur) var(--ms-ease),border-color var(--ms-dur) var(--ms-ease)}.elementor-widget-button.ms-btn .elementor-button:hover{transform:translateY(-2px);box-shadow:var(--ms-shadow-md)}.elementor-widget-button.ms-btn--lg .elementor-button{padding:1.15rem 2rem;font-size:var(--ms-t-body)}.elementor-widget-button.ms-btn--block,.elementor-widget-button.ms-btn--block .elementor-button{width:100%}.elementor-widget-button.ms-btn .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:0.6rem}.elementor-widget-button.ms-btn .elementor-button-text::after{content:"";display:inline-block;width:14px;height:14px;margin-left:0.6rem;vertical-align:-2px;background:currentColor;-webkit-mask:var(--ms-arrow) center / contain no-repeat;mask:var(--ms-arrow) center / contain no-repeat;transition:transform var(--ms-dur) var(--ms-ease-out)}.elementor-widget-button.ms-btn--lg .elementor-button-text::after{width:15px;height:15px}.elementor-widget-button.ms-btn .elementor-button:hover .elementor-button-text::after{transform:translateX(3px)}.elementor-widget-button.ms-btn--ghost .elementor-button-text::after,.elementor-widget-button.ms-btn--outline-invert .elementor-button-text::after{content:none}.ms-ab-duality__tags .elementor-widget-button .elementor-button{padding:0.45rem 0.9rem;border:1px solid var(--ms-line);border-radius:var(--ms-r-pill);background:none;font-size:var(--ms-t-xs);font-weight:500;letter-spacing:normal;text-transform:none;color:var(--ms-ink-soft);transition:border-color var(--ms-dur) var(--ms-ease),color var(--ms-dur) var(--ms-ease),background-color var(--ms-dur) var(--ms-ease)}.ms-ab-duality__tags .elementor-widget-button .elementor-button:hover{border-color:var(--ms-indigo);color:var(--ms-indigo);background:var(--ms-indigo-50);transform:none;box-shadow:none}.ms-ab-duality__tags .elementor-button-text::after{content:none !important}.e-con.ms-container,.e-con.ms-container--wide{display:block;--margin-inline-start:auto;--margin-inline-end:auto;--padding-inline-start:var(--ms-gutter);--padding-inline-end:var(--ms-gutter);margin-inline:auto;padding-inline:var(--ms-gutter);width:100%}.e-con.ms-container{max-width:var(--ms-container);--ms-measure:var(--ms-container)}.e-con.ms-container--wide{max-width:var(--ms-container-wide);--ms-measure:var(--ms-container-wide)}.e-con.ms-section{--padding-block-start:var(--ms-section-y);--padding-block-end:var(--ms-section-y)}.e-con.ms-section--lg{--padding-block-start:var(--ms-section-y-lg);--padding-block-end:var(--ms-section-y-lg)}.e-con>.elementor-widget-image,.e-con>.elementor-widget-image>.elementor-widget-container{width:100%}.e-con[class*="__figure"]>.elementor-widget-image,.e-con[class*="__figure"]>.elementor-widget-image>.elementor-widget-container,.e-con[class*="__band"]>.elementor-widget-image,.e-con[class*="__band"]>.elementor-widget-image>.elementor-widget-container,.e-con[class*="__bg"]>.elementor-widget-image,.e-con[class*="__bg"]>.elementor-widget-image>.elementor-widget-container,.e-con[class*="__texture"]>.elementor-widget-image,.e-con[class*="__texture"]>.elementor-widget-image>.elementor-widget-container,.e-con[class*="__visual"]>.elementor-widget-image,.e-con[class*="__visual"]>.elementor-widget-image>.elementor-widget-container,.e-con[class*="__media"]>.elementor-widget-image,.e-con[class*="__media"]>.elementor-widget-image>.elementor-widget-container{height:100%}
/* --- Specificity escalation -------------------------------------------------
   Astra ships Elementor-specific rules at (0,2,1):
     .elementor-widget-heading h1.elementor-heading-title{line-height:1.4em}
   which outranks the (0,2,0) pass-through above. Elementor likewise pins
   widget spacing at (0,2,0):
     .elementor-widget:not(:last-child){margin-block-end:var(--kit-widget-spacing,20px)}
   Both are answered here at (0,3,0)+ so the HTML's own values win. --- */
.e-con .elementor-widget-heading .elementor-heading-title,
.e-con .elementor-widget-text-editor>.elementor-widget-container>p{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;margin:0;padding:0}
.e-con .elementor-widget-heading.ms-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:0.625rem;line-height:1}
.elementor.elementor .e-con>.elementor-widget[class*="ms-"]{margin-block-end:var(--ms-mb,var(--kit-widget-spacing,0px))}
/* --- Root font-size ---------------------------------------------------------
   Astra rescales the root below its breakpoints:
     @media (max-width:921px){html{font-size:91.2%}}
     @media (max-width:544px){html{font-size:91.2%}}
   The HTML build has no such rule, so every rem-derived size, space and clamp()
   came out 8.8% small on tablet/mobile. :root is (0,1,0) and beats html (0,0,1),
   so the source-of-truth 16px root is restored. --- */
@media (max-width:921px){:root{font-size:100%}}
@media (max-width:544px){:root{font-size:100%}}