/* Stage 52 — canonical shared geometry variables.
 * These used to live only in widgets.css. Modern scoped widgets no longer load
 * that aggregate, so shared geometry must live in the design-system bridge. */
:root{
  --ad1-shell:1360px;
  --ad1-bg:var(--ad1-color-background-dark,#131213);
  --ad1-charcoal:color-mix(in srgb,var(--ad1-color-background-dark,#131213) 92%,white);
  --ad1-ink:var(--ad1-color-text-light,#f6f2ef);
  --ad1-paper:var(--ad1-color-background-light,#f6f2ef);
  --ad1-paper-2:color-mix(in srgb,var(--ad1-color-background-light,#f6f2ef) 90%,var(--ad1-color-border-on-light,#d8d1cc));
  --ad1-text:var(--ad1-color-text,var(--e-global-color-text,#3d3838));
  --ad1-muted:var(--ad1-color-meta-on-dark,#c6bfba);
  --ad1-muted-dark:var(--ad1-color-meta-on-light,#6f6965);
  --ad1-red:var(--ad1-color-accent,var(--e-global-color-accent,#971d1e));
  --ad1-red-hover:var(--ad1-button-hover-background,var(--ad1-color-brand-burgundy,#941c19));
  --ad1-ease:cubic-bezier(.22,1,.36,1);
}
:where(.elementor-widget[class*="elementor-widget-ad1-"]),
:where(.elementor-widget[class*="elementor-widget-ad1-"]) *{box-sizing:border-box;min-width:0}
.elementor-widget[class*="elementor-widget-ad1-"]{width:100%;max-width:100%}
/* AD1 Elementor Widgets 0.14.5 — Elementor Active Kit bridge (Typography v1.1 / Colour v1.0).
 * Active Kit owns semantic typography and design-token colours.
 * Widget controls remain explicit local overrides; components own geometry only.
 */
.elementor-widget[class*="elementor-widget-ad1-"]{
  --ad1-role-primary-family:var(--ad1-font-primary,var(--e-global-typography-primary-font-family,inherit));
  --ad1-role-primary-size:var(--ad1-global-h1-size,var(--e-global-typography-primary-font-size,inherit));
  --ad1-role-primary-weight:var(--ad1-global-h1-weight,var(--e-global-typography-primary-font-weight,inherit));
  --ad1-role-primary-line-height:var(--ad1-global-h1-line-height,var(--e-global-typography-primary-line-height,inherit));
  --ad1-role-primary-letter-spacing:var(--ad1-global-h1-letter-spacing,var(--e-global-typography-primary-letter-spacing,normal));

  --ad1-role-secondary-family:var(--ad1-font-secondary,var(--e-global-typography-secondary-font-family,inherit));
  --ad1-role-secondary-size:var(--ad1-global-h2-size,var(--e-global-typography-secondary-font-size,inherit));
  --ad1-role-secondary-weight:var(--ad1-global-h2-weight,var(--e-global-typography-secondary-font-weight,inherit));
  --ad1-role-secondary-line-height:var(--ad1-global-h2-line-height,var(--e-global-typography-secondary-line-height,inherit));
  --ad1-role-secondary-letter-spacing:var(--ad1-global-h2-letter-spacing,var(--e-global-typography-secondary-letter-spacing,normal));

  --ad1-role-text-family:var(--ad1-font-text,var(--e-global-typography-text-font-family,inherit));
  --ad1-role-text-size:var(--ad1-global-body-size,var(--e-global-typography-text-font-size,inherit));
  --ad1-role-text-weight:var(--ad1-global-body-weight,var(--e-global-typography-text-font-weight,inherit));
  --ad1-role-text-line-height:var(--ad1-global-body-line-height,var(--e-global-typography-text-line-height,inherit));
  --ad1-role-text-letter-spacing:var(--ad1-global-body-letter-spacing,var(--e-global-typography-text-letter-spacing,normal));

  --ad1-role-accent-family:var(--ad1-type-eyebrow-family,var(--ad1-font-accent,var(--e-global-typography-accent-font-family,inherit)));
  --ad1-role-accent-size:var(--ad1-type-eyebrow-size,var(--e-global-typography-accent-font-size,inherit));
  --ad1-role-accent-weight:var(--ad1-type-eyebrow-weight,var(--e-global-typography-accent-font-weight,inherit));
  --ad1-role-accent-line-height:var(--ad1-type-eyebrow-line-height,var(--e-global-typography-accent-line-height,inherit));
  --ad1-role-accent-letter-spacing:var(--ad1-type-eyebrow-letter-spacing,var(--e-global-typography-accent-letter-spacing,normal));

  --ad1-role-meta-family:var(--ad1-type-meta-family,var(--ad1-role-accent-family));
  --ad1-role-meta-size:var(--ad1-type-meta-size,var(--ad1-role-accent-size));
  --ad1-role-meta-weight:var(--ad1-type-meta-weight,var(--ad1-role-accent-weight));
  --ad1-role-meta-line-height:var(--ad1-type-meta-line-height,var(--ad1-role-accent-line-height));
  --ad1-role-meta-letter-spacing:var(--ad1-type-meta-letter-spacing,var(--ad1-role-accent-letter-spacing));

  --ad1-role-lead-family:var(--ad1-type-lead-family,var(--ad1-role-text-family));
  --ad1-role-lead-size:var(--ad1-type-lead-size,var(--ad1-role-text-size));
  --ad1-role-lead-weight:var(--ad1-type-lead-weight,var(--ad1-role-text-weight));
  --ad1-role-lead-line-height:var(--ad1-type-lead-line-height,var(--ad1-role-text-line-height));
  --ad1-role-lead-letter-spacing:var(--ad1-type-lead-letter-spacing,var(--ad1-role-text-letter-spacing));

  --ad1-role-card-title-family:var(--ad1-type-card-title-family,var(--ad1-role-secondary-family));
  --ad1-role-card-title-size:var(--ad1-type-card-title-size,var(--ad1-role-secondary-size));
  --ad1-role-card-title-weight:var(--ad1-type-card-title-weight,var(--ad1-role-secondary-weight));
  --ad1-role-card-title-line-height:var(--ad1-type-card-title-line-height,var(--ad1-role-secondary-line-height));
  --ad1-role-card-title-letter-spacing:var(--ad1-type-card-title-letter-spacing,var(--ad1-role-secondary-letter-spacing));

  --ad1-role-form-label-family:var(--ad1-type-form-label-family,var(--ad1-role-accent-family));
  --ad1-role-form-label-size:var(--ad1-type-form-label-size,var(--ad1-role-accent-size));
  --ad1-role-form-label-weight:var(--ad1-type-form-label-weight,var(--ad1-role-accent-weight));
  --ad1-role-form-label-line-height:var(--ad1-type-form-label-line-height,var(--ad1-role-accent-line-height));
  --ad1-role-form-label-letter-spacing:var(--ad1-type-form-label-letter-spacing,var(--ad1-role-accent-letter-spacing));

  --ad1-role-form-field-family:var(--ad1-type-form-field-family,var(--ad1-role-text-family));
  --ad1-role-form-field-size:var(--ad1-type-form-field-size,var(--ad1-role-text-size));
  --ad1-role-form-field-weight:var(--ad1-type-form-field-weight,var(--ad1-role-text-weight));
  --ad1-role-form-field-line-height:var(--ad1-type-form-field-line-height,var(--ad1-role-text-line-height));
  --ad1-role-form-field-letter-spacing:var(--ad1-type-form-field-letter-spacing,var(--ad1-role-text-letter-spacing));

  --ad1-role-button-ui-family:var(--ad1-type-button-ui-family,var(--ad1-button-font-family,var(--ad1-role-accent-family)));
  --ad1-role-button-ui-size:var(--ad1-type-button-ui-size,var(--ad1-button-font-size,var(--ad1-role-accent-size)));
  --ad1-role-button-ui-weight:var(--ad1-type-button-ui-weight,var(--ad1-button-font-weight,var(--ad1-role-accent-weight)));
  --ad1-role-button-ui-line-height:var(--ad1-type-button-ui-line-height,var(--ad1-role-accent-line-height));
  --ad1-role-button-ui-letter-spacing:var(--ad1-type-button-ui-letter-spacing,var(--ad1-role-accent-letter-spacing));

  color:var(--ad1-color-text,var(--e-global-color-text,#3d3838));
  font-family:var(--ad1-role-text-family);
  font-size:var(--ad1-role-text-size);
  line-height:var(--ad1-role-text-line-height);
}

.elementor-widget[class*="elementor-widget-ad1-"] :where(h1){font-family:var(--ad1-role-primary-family);font-size:var(--ad1-role-primary-size);font-weight:var(--ad1-role-primary-weight);line-height:var(--ad1-role-primary-line-height);letter-spacing:var(--ad1-role-primary-letter-spacing);color:var(--ad1-color-primary,var(--e-global-color-primary,#131213))}
.elementor-widget[class*="elementor-widget-ad1-"] :where(h2,h3,h4,h5,h6){font-family:var(--ad1-role-secondary-family);font-size:var(--ad1-role-secondary-size);font-weight:var(--ad1-role-secondary-weight);line-height:var(--ad1-role-secondary-line-height);letter-spacing:var(--ad1-role-secondary-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where(p,li,dd,blockquote){font-family:var(--ad1-role-text-family);font-size:var(--ad1-role-text-size);font-weight:var(--ad1-role-text-weight);line-height:var(--ad1-role-text-line-height);letter-spacing:var(--ad1-role-text-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where([class*="eyebrow"],[class*="kicker"],[class*="category"],[class*="badge"],[class*="number"]){font-family:var(--ad1-role-accent-family);font-size:var(--ad1-role-accent-size);font-weight:var(--ad1-role-accent-weight);line-height:var(--ad1-role-accent-line-height);letter-spacing:var(--ad1-role-accent-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where([class*="meta"],time,small,dt,figcaption){font-family:var(--ad1-role-meta-family);font-size:var(--ad1-role-meta-size);font-weight:var(--ad1-role-meta-weight);line-height:var(--ad1-role-meta-line-height);letter-spacing:var(--ad1-role-meta-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where([class*="card__title"],[class*="item__title"],[class*="service__title"],[class*="project__title"],[class*="stage__title"]){font-family:var(--ad1-role-card-title-family);font-size:var(--ad1-role-card-title-size);font-weight:var(--ad1-role-card-title-weight);line-height:var(--ad1-role-card-title-line-height);letter-spacing:var(--ad1-role-card-title-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where([class*="__lead"],[class*="__intro"],[class*="__summary"],[class*="__logline"]){font-family:var(--ad1-role-lead-family);font-size:var(--ad1-role-lead-size);font-weight:var(--ad1-role-lead-weight);line-height:var(--ad1-role-lead-line-height);letter-spacing:var(--ad1-role-lead-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where(label,legend,[class*="field__label"]){color:var(--ad1-color-field-label,var(--e-global-color-secondary,#535456));font-family:var(--ad1-role-form-label-family);font-size:var(--ad1-role-form-label-size);font-weight:var(--ad1-role-form-label-weight);line-height:var(--ad1-role-form-label-line-height);letter-spacing:var(--ad1-role-form-label-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where(input,select,textarea){color:var(--ad1-color-field-text,var(--e-global-color-primary,#131213));background:var(--ad1-color-field-surface,#f6f2ef);border-color:var(--ad1-color-field-border,#d8d1cc);font-family:var(--ad1-role-form-field-family);font-size:var(--ad1-role-form-field-size);font-weight:var(--ad1-role-form-field-weight);line-height:var(--ad1-role-form-field-line-height);letter-spacing:var(--ad1-role-form-field-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where(input,textarea)::placeholder{color:var(--ad1-color-field-placeholder,#8c8580)}
.elementor-widget[class*="elementor-widget-ad1-"] :where(.ad1ew-btn,.ad1m-btn,.ad1m-text-link,.ad1contact-button,.ad1about-button,.ad1ew-projects__all,button,[role="button"]){font-family:var(--ad1-role-button-ui-family);font-size:var(--ad1-role-button-ui-size);font-weight:var(--ad1-role-button-ui-weight);line-height:var(--ad1-role-button-ui-line-height);letter-spacing:var(--ad1-role-button-ui-letter-spacing)}
.elementor-widget[class*="elementor-widget-ad1-"] :where(.ad1ew-btn--primary,.ad1m-btn:not(.ad1m-btn--ghost),.ad1contact-button--primary,.ad1about-button--primary){color:var(--ad1-button-text-color,var(--ad1-color-text-light,#f6f2ef));background-color:var(--ad1-button-background,var(--ad1-color-accent,#971d1e));border-color:var(--ad1-button-border-color,var(--ad1-color-accent,#971d1e))}
.elementor-widget[class*="elementor-widget-ad1-"] :where(.ad1ew-btn--primary,.ad1m-btn:not(.ad1m-btn--ghost),.ad1contact-button--primary,.ad1about-button--primary):is(:hover,:focus-visible){color:var(--ad1-button-hover-text-color,var(--ad1-color-text-light,#f6f2ef));background-color:var(--ad1-button-hover-background,var(--ad1-color-brand-burgundy,#941c19));border-color:var(--ad1-button-hover-border-color,var(--ad1-color-brand-burgundy,#941c19))}

@media(max-width:1024px){
  .elementor-widget[class*="elementor-widget-ad1-"]{
    --ad1-role-primary-size:var(--ad1-global-h1-size-tablet,var(--ad1-global-h1-size,var(--e-global-typography-primary-font-size,inherit)));
    --ad1-role-primary-line-height:var(--ad1-global-h1-line-height-tablet,var(--ad1-global-h1-line-height,var(--e-global-typography-primary-line-height,inherit)));
    --ad1-role-secondary-size:var(--ad1-global-h2-size-tablet,var(--ad1-global-h2-size,var(--e-global-typography-secondary-font-size,inherit)));
    --ad1-role-secondary-line-height:var(--ad1-global-h2-line-height-tablet,var(--ad1-global-h2-line-height,var(--e-global-typography-secondary-line-height,inherit)));
    --ad1-role-text-size:var(--ad1-global-body-size-tablet,var(--ad1-global-body-size,var(--e-global-typography-text-font-size,inherit)));
    --ad1-role-text-line-height:var(--ad1-global-body-line-height-tablet,var(--ad1-global-body-line-height,var(--e-global-typography-text-line-height,inherit)));
    --ad1-role-accent-size:var(--ad1-type-eyebrow-size-tablet,var(--ad1-type-eyebrow-size,var(--e-global-typography-accent-font-size,inherit)));
    --ad1-role-meta-size:var(--ad1-type-meta-size-tablet,var(--ad1-type-meta-size,var(--ad1-role-accent-size)));
    --ad1-role-lead-size:var(--ad1-type-lead-size-tablet,var(--ad1-type-lead-size,var(--ad1-role-text-size)));
    --ad1-role-card-title-size:var(--ad1-type-card-title-size-tablet,var(--ad1-type-card-title-size,var(--ad1-role-secondary-size)));
    --ad1-role-form-label-size:var(--ad1-type-form-label-size-tablet,var(--ad1-type-form-label-size,var(--ad1-role-accent-size)));
    --ad1-role-form-field-size:var(--ad1-type-form-field-size-tablet,var(--ad1-type-form-field-size,var(--ad1-role-text-size)));
    --ad1-role-button-ui-size:var(--ad1-type-button-ui-size-tablet,var(--ad1-type-button-ui-size,var(--ad1-role-accent-size)));
  }
}
@media(max-width:767px){
  .elementor-widget[class*="elementor-widget-ad1-"]{
    --ad1-role-primary-size:var(--ad1-global-h1-size-mobile,var(--ad1-global-h1-size-tablet,var(--ad1-global-h1-size,var(--e-global-typography-primary-font-size,inherit))));
    --ad1-role-primary-line-height:var(--ad1-global-h1-line-height-mobile,var(--ad1-global-h1-line-height-tablet,var(--ad1-global-h1-line-height,var(--e-global-typography-primary-line-height,inherit))));
    --ad1-role-secondary-size:var(--ad1-global-h2-size-mobile,var(--ad1-global-h2-size-tablet,var(--ad1-global-h2-size,var(--e-global-typography-secondary-font-size,inherit))));
    --ad1-role-secondary-line-height:var(--ad1-global-h2-line-height-mobile,var(--ad1-global-h2-line-height-tablet,var(--ad1-global-h2-line-height,var(--e-global-typography-secondary-line-height,inherit))));
    --ad1-role-text-size:var(--ad1-global-body-size-mobile,var(--ad1-global-body-size-tablet,var(--ad1-global-body-size,var(--e-global-typography-text-font-size,inherit))));
    --ad1-role-text-line-height:var(--ad1-global-body-line-height-mobile,var(--ad1-global-body-line-height-tablet,var(--ad1-global-body-line-height,var(--e-global-typography-text-line-height,inherit))));
    --ad1-role-accent-size:var(--ad1-type-eyebrow-size-mobile,var(--ad1-type-eyebrow-size-tablet,var(--ad1-type-eyebrow-size,var(--e-global-typography-accent-font-size,inherit))));
    --ad1-role-meta-size:var(--ad1-type-meta-size-mobile,var(--ad1-type-meta-size-tablet,var(--ad1-type-meta-size,var(--ad1-role-accent-size))));
    --ad1-role-lead-size:var(--ad1-type-lead-size-mobile,var(--ad1-type-lead-size-tablet,var(--ad1-type-lead-size,var(--ad1-role-text-size))));
    --ad1-role-card-title-size:var(--ad1-type-card-title-size-mobile,var(--ad1-type-card-title-size-tablet,var(--ad1-type-card-title-size,var(--ad1-role-secondary-size))));
    --ad1-role-form-label-size:var(--ad1-type-form-label-size-mobile,var(--ad1-type-form-label-size-tablet,var(--ad1-type-form-label-size,var(--ad1-role-accent-size))));
    --ad1-role-form-field-size:var(--ad1-type-form-field-size-mobile,var(--ad1-type-form-field-size-tablet,var(--ad1-type-form-field-size,var(--ad1-role-text-size))));
    --ad1-role-button-ui-size:var(--ad1-type-button-ui-size-mobile,var(--ad1-type-button-ui-size-tablet,var(--ad1-type-button-ui-size,var(--ad1-role-accent-size))));
  }
}
@media(prefers-reduced-motion:reduce){.elementor-widget[class*="elementor-widget-ad1-"] *{scroll-behavior:auto}}

/* Stage 51 — canonical v1.1 surface and helper contract. */
.elementor-widget[class*="elementor-widget-ad1-"]{
  --ad1-role-helper-family:var(--ad1-type-helper-family,var(--ad1-role-text-family));
  --ad1-role-helper-size:var(--ad1-type-helper-size,14px);
  --ad1-role-helper-weight:var(--ad1-type-helper-weight,400);
  --ad1-role-helper-line-height:var(--ad1-type-helper-line-height,1.5);
  --ad1-role-helper-letter-spacing:var(--ad1-type-helper-letter-spacing,0em);
  --ad1-surface-heading-color:var(--ad1-color-text-dark,var(--e-global-color-primary,#131213));
  --ad1-surface-text-color:var(--ad1-color-text,var(--e-global-color-text,#3d3838));
  --ad1-surface-meta-color:var(--ad1-color-meta-on-light,var(--e-global-color-secondary,#6f6965));
  --ad1-surface-border-color:var(--ad1-color-border-on-light,#d8d1cc);
}
.elementor-widget.ad1ew-surface-dark{
  --ad1-surface-heading-color:var(--ad1-color-text-light,#f6f2ef);
  --ad1-surface-text-color:var(--ad1-color-text-light,#f6f2ef);
  --ad1-surface-meta-color:var(--ad1-color-meta-on-dark,#c6bfba);
  --ad1-surface-border-color:var(--ad1-color-border-on-dark,#3c3a3b);
}
.elementor-widget.ad1ew-surface-light{
  --ad1-surface-heading-color:var(--ad1-color-text-dark,var(--e-global-color-primary,#131213));
  --ad1-surface-text-color:var(--ad1-color-text,var(--e-global-color-text,#3d3838));
  --ad1-surface-meta-color:var(--ad1-color-meta-on-light,#6f6965);
  --ad1-surface-border-color:var(--ad1-color-border-on-light,#d8d1cc);
}
.elementor-widget[class*="elementor-widget-ad1-"]> .elementor-widget-container{color:var(--ad1-surface-text-color)}
.elementor-widget[class*="elementor-widget-ad1-"] :where(h1,h2,h3,h4,h5,h6){color:var(--ad1-surface-heading-color)}
.elementor-widget[class*="elementor-widget-ad1-"] :where([class*="meta"],time,dt){color:var(--ad1-surface-meta-color)}
.elementor-widget[class*="elementor-widget-ad1-"] :where([class*="helper"],[class*="hint"],[class*="validation-support"]){font-family:var(--ad1-role-helper-family);font-size:var(--ad1-role-helper-size);font-weight:var(--ad1-role-helper-weight);line-height:var(--ad1-role-helper-line-height);letter-spacing:var(--ad1-role-helper-letter-spacing)}
/* Card/list titles use card-title in v1.1; Primary is reserved for the real page/Hero H1. */
.elementor-widget-ad1-dynamic-projects .ad1ew-project .ad1ew-item-title,
.elementor-widget-ad1-projects-mosaic .ad1ew-project-card .ad1ew-item-title,
.elementor-widget-ad1-news-grid .ad1-news-card__title{font-family:var(--ad1-role-card-title-family);font-size:var(--ad1-role-card-title-size);font-weight:var(--ad1-role-card-title-weight);line-height:var(--ad1-role-card-title-line-height);letter-spacing:var(--ad1-role-card-title-letter-spacing)}

