@import url("https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600;700;800&display=swap");

/* Qesora action language · R341
   Typography and icon treatment only. Component geometry, colour, surface,
   borders and page-specific hierarchy intentionally remain owned by each UI. */

:root {
  --qesora-action-font: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --qesora-action-weight: 700;
  --qesora-action-weight-primary: 800;
  --qesora-action-tracking: .025em;
  --qesora-action-icon-stroke: 2.35;
}

:is(
  #qesora-action-language-specificity,
  [data-qesora-button-style],
  .btn-acc,
  .btn-ghost,
  .an-empty-cta,
  .qesora-header-cta,
  .qesora-mobile-auth__signup,
  .qesora-button--primary,
  .qesora-button--secondary,
  .qesora-plan-button,
  .qesora-home-action,
  .qesora-home-first-action,
  .qesora-home-text-action,
  .q-primary-action,
  .q-secondary-action,
  .q-upload-error-retry,
  .q-upload-error-cancel,
  .q-media-upload-cancel,
  .qesora-inline-retry,
  .task11-confirm-quote,
  .task11-quote-cancel,
  .inv-send,
  .gs-btn-primary,
  .gs-btn-outline,
  .nc-btn-back,
  .nc-btn-next,
  .nc-launch-btn,
  .run-btn,
  .step-back-btn,
  .tc-cta,
  .m-cta,
  .qesora-mobile-nav-new,
  #qesora-new-project,
  #new-analysis-header,
  #header-new-analysis
) {
  font-family: var(--qesora-action-font) !important;
  font-weight: var(--qesora-action-weight) !important;
  font-variation-settings: "wght" 700;
  letter-spacing: var(--qesora-action-tracking) !important;
  text-transform: uppercase;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  font-synthesis: none;
}

:is(
  #qesora-action-language-primary-specificity,
  [data-qesora-button-style="primary"],
  .btn-acc,
  .qesora-header-cta,
  .qesora-mobile-auth__signup,
  .qesora-button--primary,
  .qesora-plan-button,
  .qesora-home-action,
  .qesora-home-first-action,
  .qesora-home-text-action,
  .q-primary-action,
  .an-empty-cta,
  .q-upload-error-retry,
  .qesora-inline-retry,
  .task11-confirm-quote,
  .inv-send,
  .gs-btn-primary,
  .nc-btn-next,
  .nc-launch-btn,
  .run-btn,
  .tc-cta,
  .m-cta,
  #qesora-new-project,
  #new-analysis-header,
  #header-new-analysis
) {
  font-weight: var(--qesora-action-weight-primary) !important;
  font-variation-settings: "wght" 800;
}

/* Public-page CTAs are sometimes rendered with inline typography on their
   inner spans. Keep the label and arrow on the same approved face and weight. */
html body :is(
  #qesora-action-language-label-specificity,
  [data-qesora-button-style="primary"],
  .btn-acc,
  .qesora-header-cta,
  .qesora-mobile-auth__signup
) > span {
  font-family: inherit !important;
  font-weight: inherit !important;
  font-variation-settings: inherit;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

:is(
  #qesora-action-language-icon-specificity,
  [data-qesora-button-style],
  .btn-acc,
  .btn-ghost,
  .an-empty-cta,
  .qesora-header-cta,
  .qesora-mobile-auth__signup,
  .qesora-button--primary,
  .qesora-button--secondary,
  .qesora-plan-button,
  .qesora-home-action,
  .qesora-home-first-action,
  .qesora-home-text-action,
  .q-primary-action,
  .q-secondary-action,
  .q-upload-error-retry,
  .q-upload-error-cancel,
  .q-media-upload-cancel,
  .qesora-inline-retry,
  .task11-confirm-quote,
  .task11-quote-cancel,
  .inv-send,
  .gs-btn-primary,
  .gs-btn-outline,
  .nc-btn-back,
  .nc-btn-next,
  .nc-launch-btn,
  .run-btn,
  .step-back-btn,
  .tc-cta,
  .m-cta,
  .qesora-mobile-nav-new,
  #qesora-new-project,
  #new-analysis-header,
  #header-new-analysis,
  .maintenance-access
) :where(svg, img[class*="icon"], span[class*="icon"]) {
  flex: 0 0 auto;
}

:is(
  #qesora-action-language-icon-specificity,
  [data-qesora-button-style],
  .btn-acc,
  .btn-ghost,
  .an-empty-cta,
  .qesora-header-cta,
  .qesora-mobile-auth__signup,
  .qesora-button--primary,
  .qesora-button--secondary,
  .qesora-plan-button,
  .qesora-home-action,
  .qesora-home-first-action,
  .qesora-home-text-action,
  .q-primary-action,
  .q-secondary-action,
  .q-upload-error-retry,
  .q-upload-error-cancel,
  .q-media-upload-cancel,
  .qesora-inline-retry,
  .task11-confirm-quote,
  .task11-quote-cancel,
  .inv-send,
  .gs-btn-primary,
  .gs-btn-outline,
  .nc-btn-back,
  .nc-btn-next,
  .nc-launch-btn,
  .run-btn,
  .step-back-btn,
  .tc-cta,
  .m-cta,
  .qesora-mobile-nav-new,
  #qesora-new-project,
  #new-analysis-header,
  #header-new-analysis,
  .maintenance-access
) svg {
  display: block;
  overflow: visible;
  color: inherit;
}

:is(
  #qesora-action-language-icon-specificity,
  [data-qesora-button-style],
  .btn-acc,
  .btn-ghost,
  .an-empty-cta,
  .qesora-header-cta,
  .qesora-mobile-auth__signup,
  .qesora-button--primary,
  .qesora-button--secondary,
  .qesora-plan-button,
  .qesora-home-action,
  .qesora-home-first-action,
  .qesora-home-text-action,
  .q-primary-action,
  .q-secondary-action,
  .q-upload-error-retry,
  .q-upload-error-cancel,
  .q-media-upload-cancel,
  .qesora-inline-retry,
  .task11-confirm-quote,
  .task11-quote-cancel,
  .inv-send,
  .gs-btn-primary,
  .gs-btn-outline,
  .nc-btn-back,
  .nc-btn-next,
  .nc-launch-btn,
  .run-btn,
  .step-back-btn,
  .tc-cta,
  .m-cta,
  .qesora-mobile-nav-new,
  #qesora-new-project,
  #new-analysis-header,
  #header-new-analysis,
  .maintenance-access
) svg :where(path, line, polyline, polygon, circle, rect, ellipse) {
  stroke-width: var(--qesora-action-icon-stroke) !important;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

:is(
  #qesora-action-language-glyph-specificity,
  .qesora-home-action__plus,
  .qesora-home-action__arrow,
  .qesora-home-text-action__arrow,
  .qesora-campaign-button-icon,
  [aria-hidden="true"].arrow,
  [aria-hidden="true"].plus
) {
  font-family: var(--qesora-action-font) !important;
  font-weight: 800 !important;
  font-variation-settings: "wght" 800;
  line-height: 1;
}

/* The two principal creation CTAs keep the stronger icon weight approved in
   R340; the global rule must never make them look lighter. */
:is(#qesora-action-language-principal-icon, .btn-acc, .qesora-header-cta, #qesora-new-project) svg
  :where(path, line, polyline, polygon, circle, rect, ellipse) {
  stroke-width: 2.5 !important;
}

@media (max-width: 640px) {
  :is(
    #qesora-action-language-mobile-specificity,
    [data-qesora-button-style],
    .btn-acc,
    .btn-ghost,
    .an-empty-cta,
    .qesora-header-cta,
    .qesora-mobile-auth__signup,
    .qesora-button--primary,
    .qesora-button--secondary,
    .qesora-plan-button,
    .qesora-home-action,
    .qesora-home-first-action,
    .qesora-home-text-action,
    .q-primary-action,
    .q-secondary-action,
    .q-upload-error-retry,
    .q-upload-error-cancel,
    .q-media-upload-cancel,
    .qesora-inline-retry,
    .task11-confirm-quote,
    .task11-quote-cancel,
    .inv-send,
    .gs-btn-primary,
    .gs-btn-outline,
    .nc-btn-back,
    .nc-btn-next,
    .nc-launch-btn,
    .run-btn,
    .step-back-btn,
    .tc-cta,
    .m-cta,
    .qesora-mobile-nav-new,
    #qesora-new-project,
    #new-analysis-header,
    #header-new-analysis
  ) {
    letter-spacing: .02em !important;
  }
}
