/*
 * Scale Minds WordPress Brand System — Final Core Palette
 * Core interface colors are derived from the supplied HTML design.
 * Exact logo colors are supportive only and must not become routine CTA/link/focus colors.
 */

:root {
  /* Font roles */
  --sm-font-display: "Inter", sans-serif;
  --sm-font-body: "Inter", sans-serif;
  --sm-font-data: "Inter", sans-serif;

  /* Core primary */
  --sm-primary-500: #0B5F32;
  --sm-primary-700: #094F2A;
  --sm-primary-900: #073D21;
  --sm-primary-050: #EAF2ED;

  /* Core secondary and neutrals */
  --sm-secondary-900: #1A1A1A;
  --sm-secondary-700: #3D3D3D;
  --sm-secondary-500: #565656;
  --sm-secondary-400: #6A6A6A;
  --sm-neutral-050: #F8F8F8;
  --sm-neutral-100: #F0F0F0;
  --sm-neutral-200: #E4E4E4;
  --sm-neutral-300: #D0D0D0;
  --sm-neutral-600: #7C7C7C;
  --sm-white: #FFFFFF;

  /* Exact logo colors — supportive only */
  --sm-support-red: #EA4535;
  --sm-support-green: #3BB554;
  --sm-support-yellow: #FDB515;
  --sm-support-blue: #4F7DBF;

  /* Functional signals — meaning only */
  --sm-danger: #C2331F;
  --sm-danger-050: #FBEDEB;
  --sm-warning: #7A4C00;
  --sm-warning-050: #FFF6DB;
  --sm-info: #3569A8;
  --sm-info-050: #EEF3FA;

  /* Semantic aliases */
  --sm-action: var(--sm-primary-500);
  --sm-action-hover: var(--sm-primary-700);
  --sm-success: var(--sm-primary-500);
  --sm-ink: var(--sm-secondary-900);
  --sm-text: var(--sm-secondary-700);
  --sm-text-muted: var(--sm-secondary-500);
  --sm-border-strong: var(--sm-neutral-600);
  --sm-border: var(--sm-neutral-200);
  --sm-surface: var(--sm-white);
  --sm-surface-subtle: var(--sm-neutral-050);
  --sm-surface-muted: var(--sm-neutral-100);
  --sm-overlay: rgba(26, 26, 26, .68);

  /* Layout from the supplied HTML */
  --sm-container: 1240px;
  --sm-container-content: 760px;
  --sm-gutter: clamp(16px, 3vw, 40px);

  /* 4px spacing scale */
  --sm-space-1: 4px;
  --sm-space-2: 8px;
  --sm-space-3: 12px;
  --sm-space-4: 16px;
  --sm-space-5: 24px;
  --sm-space-6: 32px;
  --sm-space-7: 48px;
  --sm-space-8: 64px;
  --sm-space-9: 96px;
  --sm-space-10: 128px;

  /* Shape and depth from the supplied HTML */
  --sm-radius-sm: 6px;
  --sm-radius-md: 10px;
  --sm-radius-lg: 16px;
  --sm-radius-pill: 999px;
  --sm-shadow-1: 0 1px 2px rgba(17,17,17,.06), 0 1px 1px rgba(17,17,17,.04);
  --sm-shadow-2: 0 4px 12px rgba(17,17,17,.08), 0 2px 4px rgba(17,17,17,.05);
  --sm-shadow-3: 0 18px 48px rgba(17,17,17,.14);

  /* Motion and focus */
  --sm-ease: cubic-bezier(.2, 0, 0, 1);
  --sm-duration-fast: 120ms;
  --sm-duration-base: 200ms;
  --sm-duration-slow: 320ms;
  --sm-focus-ring: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--sm-primary-500);
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--sm-font-body);
  font-size: 16px;
  line-height: 1.65;
  letter-spacing: -.011em;
  color: var(--sm-text);
  background: var(--sm-surface);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { color: var(--sm-primary-900); background: var(--sm-primary-050); }

:where(h1, h2, h3, h4, h5, h6) {
  margin-block: 0;
  font-family: var(--sm-font-display);
  color: var(--sm-ink);
  text-wrap: balance;
}

h1, .sm-h1 { font-size: clamp(2.5rem, 6vw, 4.75rem); line-height: 1.02; font-weight: 650; letter-spacing: -.045em; }
h2, .sm-h2 { font-size: clamp(2.125rem, 3.6vw, 3rem); line-height: 1.08; font-weight: 650; letter-spacing: -.035em; }
h3, .sm-h3 { font-size: clamp(1.75rem, 2.8vw, 2.25rem); line-height: 1.15; font-weight: 620; letter-spacing: -.025em; }
h4, .sm-h4 { font-size: clamp(1.5rem, 2vw, 1.75rem); line-height: 1.22; font-weight: 620; letter-spacing: -.018em; }
h5, .sm-h5 { font-size: clamp(1.25rem, 1.6vw, 1.375rem); line-height: 1.28; font-weight: 620; letter-spacing: -.012em; }
h6, .sm-h6 { font-size: clamp(1.0625rem, 1.25vw, 1.125rem); line-height: 1.35; font-weight: 650; letter-spacing: -.006em; }

.sm-body-lg { font-size: clamp(1.0625rem, 1.5vw, 1.125rem); line-height: 1.65; }
.sm-body { font-size: 1rem; line-height: 1.65; }
.sm-small { font-size: .875rem; line-height: 1.55; }
.sm-caption { font-size: .75rem; line-height: 1.4; }
.sm-data { font-family: var(--sm-font-data); font-variant-numeric: tabular-nums; }
.sm-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sm-font-data);
  font-size: .75rem;
  line-height: 1;
  font-weight: 650;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sm-text-muted);
}
.sm-kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--sm-primary-500); }

:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 0;
  box-shadow: var(--sm-focus-ring);
}

.sm-container { width: min(100% - (2 * var(--sm-gutter)), var(--sm-container)); margin-inline: auto; }
.sm-prose { max-width: var(--sm-container-content); }
.sm-section { padding-block: clamp(64px, 8vw, 112px); }
.sm-section--subtle { background: var(--sm-surface-subtle); }
.sm-section--dark { background: var(--sm-primary-900); color: var(--sm-white); }

/* Buttons */
:where(.sm-btn, .wp-element-button, .wp-block-button__link, button[type="submit"], input[type="submit"]) {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 11px 20px;
  border: 1px solid transparent;
  border-radius: var(--sm-radius-md);
  font-family: var(--sm-font-body);
  font-size: .9375rem;
  line-height: 1.2;
  font-weight: 650;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--sm-duration-base) var(--sm-ease), border-color var(--sm-duration-base) var(--sm-ease), color var(--sm-duration-base) var(--sm-ease), transform var(--sm-duration-fast) var(--sm-ease), box-shadow var(--sm-duration-base) var(--sm-ease);
}

:where(.sm-btn--primary, .wp-block-button:not(.is-style-outline) .wp-block-button__link, button[type="submit"], input[type="submit"]) {
  color: var(--sm-white);
  background: var(--sm-primary-500);
  border-color: var(--sm-primary-500);
}
:where(.sm-btn--primary, .wp-block-button:not(.is-style-outline) .wp-block-button__link, button[type="submit"], input[type="submit"]):hover {
  color: var(--sm-white);
  background: var(--sm-primary-700);
  border-color: var(--sm-primary-700);
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(11,95,50,.18);
}
.sm-btn--secondary, .wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--sm-ink);
  background: var(--sm-white);
  border-color: var(--sm-border-strong);
}
.sm-btn--secondary:hover, .wp-block-button.is-style-outline .wp-block-button__link:hover {
  color: var(--sm-white);
  background: var(--sm-ink);
  border-color: var(--sm-ink);
}
.sm-btn--text { min-height: 36px; padding-inline: 4px; color: var(--sm-primary-500); background: transparent; border-color: transparent; }
.sm-btn--text:hover { color: var(--sm-primary-700); text-decoration: underline; text-underline-offset: 4px; }
.sm-btn--on-dark { color: var(--sm-primary-900); background: var(--sm-white); border-color: var(--sm-white); }
.sm-btn--on-dark:hover { background: var(--sm-primary-050); border-color: var(--sm-primary-050); }
.sm-btn--on-dark-outline { color: var(--sm-white); background: transparent; border-color: rgba(255,255,255,.6); }
.sm-btn--on-dark-outline:hover { border-color: var(--sm-white); background: rgba(255,255,255,.08); }
.sm-btn--danger { color: var(--sm-danger); background: var(--sm-danger-050); border-color: var(--sm-danger); }
.sm-btn--danger:hover { color: var(--sm-white); background: var(--sm-danger); }
.sm-btn--sm { min-height: 36px; padding: 8px 14px; font-size: .8125rem; }
.sm-btn--lg { min-height: 52px; padding: 14px 24px; font-size: 1rem; }
:where(.sm-btn, .wp-element-button, .wp-block-button__link, button, input[type="submit"]):disabled,
:where(.sm-btn, .wp-element-button, .wp-block-button__link)[aria-disabled="true"] { opacity: .46; cursor: not-allowed; transform: none; box-shadow: none; }

/* Core components */
.sm-card {
  padding: clamp(20px, 3vw, 32px);
  background: var(--sm-surface);
  border: 1px solid var(--sm-border);
  border-radius: var(--sm-radius-md);
  box-shadow: var(--sm-shadow-1);
}
.sm-card--interactive { transition: transform var(--sm-duration-base) var(--sm-ease), border-color var(--sm-duration-base) var(--sm-ease), box-shadow var(--sm-duration-base) var(--sm-ease); }
.sm-card--interactive:hover { transform: translateY(-3px); border-color: var(--sm-primary-500); box-shadow: var(--sm-shadow-2); }
.sm-stat { font-family: var(--sm-font-data); font-size: clamp(2rem, 4vw, 3rem); line-height: 1; font-weight: 650; letter-spacing: -.035em; color: var(--sm-primary-500); font-variant-numeric: tabular-nums; }
.sm-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border-radius: var(--sm-radius-pill); font-family: var(--sm-font-data); font-size: .75rem; font-weight: 650; letter-spacing: .04em; background: var(--sm-surface-muted); color: var(--sm-text); }
.sm-badge--success { background: var(--sm-primary-050); color: var(--sm-primary-900); }
.sm-badge--info { background: var(--sm-info-050); color: var(--sm-info); }
.sm-badge--warning { background: var(--sm-warning-050); color: var(--sm-warning); }
.sm-badge--danger { background: var(--sm-danger-050); color: var(--sm-danger); }
.sm-alert { padding: 16px 18px; border: 1px solid var(--sm-border); border-left-width: 4px; border-radius: var(--sm-radius-sm); background: var(--sm-surface); }
.sm-alert--success { border-left-color: var(--sm-primary-500); background: var(--sm-primary-050); }
.sm-alert--info { border-left-color: var(--sm-info); background: var(--sm-info-050); }
.sm-alert--warning { border-left-color: var(--sm-warning); background: var(--sm-warning-050); }
.sm-alert--danger { border-left-color: var(--sm-danger); background: var(--sm-danger-050); }

/* Forms: native + common WordPress plugins */
:where(.sm-form, .gform_wrapper, .wpforms-container, .fluentform, .wpcf7) :where(label, legend) {
  display: block;
  margin-bottom: 7px;
  font-family: var(--sm-font-body);
  font-size: .875rem;
  line-height: 1.4;
  font-weight: 650;
  color: var(--sm-ink);
}
:where(.sm-form, .gform_wrapper, .wpforms-container, .fluentform, .wpcf7) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), textarea, select) {
  width: 100%;
  min-height: 48px;
  padding: 11px 14px;
  border: 1px solid var(--sm-border-strong);
  border-radius: var(--sm-radius-md);
  background: var(--sm-white);
  color: var(--sm-ink);
  font-family: var(--sm-font-body);
  font-size: 1rem;
  line-height: 1.4;
  transition: border-color var(--sm-duration-base) var(--sm-ease), box-shadow var(--sm-duration-base) var(--sm-ease), background-color var(--sm-duration-base) var(--sm-ease);
}
:where(.sm-form, .gform_wrapper, .wpforms-container, .fluentform, .wpcf7) textarea { min-height: 136px; resize: vertical; }
:where(.sm-form, .gform_wrapper, .wpforms-container, .fluentform, .wpcf7) :where(input, textarea)::placeholder { color: #737373; opacity: 1; }
:where(.sm-form, .gform_wrapper, .wpforms-container, .fluentform, .wpcf7) :where(input, textarea, select):focus { border-color: var(--sm-primary-500); box-shadow: 0 0 0 3px rgba(11,95,50,.18); outline: 0; }
:where(.sm-form, .gform_wrapper, .wpforms-container, .fluentform, .wpcf7) :where(input, textarea, select)[aria-invalid="true"],
:where(.sm-form, .gform_wrapper, .wpforms-container, .fluentform, .wpcf7) .gfield_error :where(input, textarea, select),
:where(.sm-form, .gform_wrapper, .wpforms-container, .fluentform, .wpcf7) .wpforms-error :where(input, textarea, select) { border-color: var(--sm-danger); background: var(--sm-danger-050); }
.sm-field-help { margin-top: 6px; font-size: .8125rem; color: var(--sm-text-muted); }
.sm-field-error { margin-top: 6px; font-size: .8125rem; font-weight: 600; color: var(--sm-danger); }
:where(input, textarea, select):disabled { background: var(--sm-surface-muted); color: var(--sm-secondary-400); cursor: not-allowed; }
:where(input[type="checkbox"], input[type="radio"]) { inline-size: 20px; block-size: 20px; accent-color: var(--sm-primary-500); }
.sm-field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sm-field-stack { display: grid; gap: 18px; }

.sm-accordion { border-top: 1px solid var(--sm-border-strong); }
.sm-accordion details { border-bottom: 1px solid var(--sm-border); }
.sm-accordion summary { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 16px; font-family: var(--sm-font-display); font-weight: 620; color: var(--sm-ink); cursor: pointer; }
.sm-accordion details[open] summary { color: var(--sm-primary-500); }
.sm-accordion .sm-accordion__content { padding: 0 36px 20px 0; color: var(--sm-text-muted); }

.sm-link { color: var(--sm-primary-500); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.sm-link:hover { color: var(--sm-primary-700); }
.sm-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

/* Supportive logo colors: apply only to tiny markers/charts/illustration parts. */
.sm-support-marker--red { background: var(--sm-support-red); }
.sm-support-marker--green { background: var(--sm-support-green); }
.sm-support-marker--yellow { background: var(--sm-support-yellow); }
.sm-support-marker--blue { background: var(--sm-support-blue); }

@media (max-width: 767px) {
  .sm-section { padding-block: 64px; }
  .sm-field-row { grid-template-columns: 1fr; }
  :where(.sm-btn, .wp-element-button, .wp-block-button__link) { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* Elementor integration --------------------------------------------------- */
body.sm-design-system-active {
  --e-global-color-primary: var(--sm-primary-500);
  --e-global-color-secondary: var(--sm-secondary-900);
  --e-global-color-text: var(--sm-secondary-700);
  --e-global-color-accent: var(--sm-primary-500);
}

.sm-design-system-active .elementor-widget-heading :where(h1,h2,h3,h4,h5,h6),
.sm-design-system-active .elementor-heading-title {
  font-family: var(--sm-font-display);
}

.sm-design-system-active .elementor-widget-text-editor,
.sm-design-system-active .elementor-widget-icon-list,
.sm-design-system-active .elementor-widget-testimonial {
  font-family: var(--sm-font-body);
  color: var(--sm-text);
}

.sm-design-system-active .elementor-button,
.sm-design-system-active .elementor-widget-button .elementor-button {
  min-height: 44px;
  padding: 11px 20px;
  border: 1px solid var(--sm-primary-500);
  border-radius: var(--sm-radius-md);
  background: var(--sm-primary-500);
  color: var(--sm-white);
  font-family: var(--sm-font-body);
  font-size: .9375rem;
  font-weight: 650;
  line-height: 1.2;
  transition: background-color var(--sm-duration-base) var(--sm-ease), border-color var(--sm-duration-base) var(--sm-ease), transform var(--sm-duration-fast) var(--sm-ease), box-shadow var(--sm-duration-base) var(--sm-ease);
}
.sm-design-system-active .elementor-button:hover,
.sm-design-system-active .elementor-button:focus-visible {
  background: var(--sm-primary-700);
  border-color: var(--sm-primary-700);
  color: var(--sm-white);
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(11,95,50,.18);
}

.sm-design-system-active .elementor-field-group > label,
.sm-design-system-active .elementor-field-label {
  margin-bottom: 7px;
  color: var(--sm-ink);
  font-family: var(--sm-font-body);
  font-size: .875rem;
  font-weight: 650;
}
.sm-design-system-active .elementor-field-group :where(.elementor-field-textual, input, textarea, select) {
  min-height: 48px;
  padding: 11px 14px;
  border: 1px solid var(--sm-border-strong);
  border-radius: var(--sm-radius-md);
  background: var(--sm-white);
  color: var(--sm-ink);
  font-family: var(--sm-font-body);
  font-size: 1rem;
}
.sm-design-system-active .elementor-field-group :where(.elementor-field-textual, input, textarea, select):focus {
  border-color: var(--sm-primary-500);
  box-shadow: 0 0 0 3px rgba(11,95,50,.18);
}

/* Widget layout ---------------------------------------------------------- */
.sm-widget { position: relative; }
.sm-widget__inner { width: min(100% - (2 * var(--sm-gutter)), var(--sm-container)); margin-inline: auto; }
.sm-richtext > :first-child { margin-top: 0; }
.sm-richtext > :last-child { margin-bottom: 0; }
.sm-richtext p { margin: 0 0 1em; }
.sm-richtext ul { list-style: disc; padding-left: 1.25rem; }
.sm-richtext ol { list-style: decimal; padding-left: 1.25rem; }

.sm-section-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: clamp(24px,4vw,64px); align-items: end; }
.sm-section-heading__copy { display: grid; gap: 16px; max-width: 780px; }
.sm-section-heading__meta { color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .75rem; font-weight: 600; letter-spacing: .1em; line-height: 1.7; text-align: right; text-transform: uppercase; }

.sm-hero { padding-block: clamp(56px,7vw,96px); overflow: hidden; }
.sm-hero--subtle { background: var(--sm-surface-subtle); }
.sm-hero--dark { background: var(--sm-primary-900); color: var(--sm-white); }
.sm-hero__grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(320px,.92fr); gap: clamp(32px,5vw,72px); align-items: center; }
.sm-hero__content { display: grid; gap: 26px; }
.sm-hero__trust { display: inline-flex; align-items: center; gap: 8px; justify-self: start; min-height: 32px; padding: 6px 13px; border: 1px solid var(--sm-border); border-radius: var(--sm-radius-pill); background: var(--sm-surface-subtle); color: var(--sm-text-muted); font-size: .75rem; font-weight: 550; }
.sm-hero__trust::before { content:""; width: 7px; height: 7px; border-radius: 50%; background: var(--sm-primary-500); }
.sm-hero__title { margin: 0; }
.sm-hero__title em { color: var(--sm-primary-500); font-style: normal; }
.sm-hero--dark :where(.sm-hero__title,.sm-hero__description) { color: var(--sm-white); }
.sm-hero__description { max-width: 58ch; color: var(--sm-text-muted); font-size: clamp(1.0625rem,1.5vw,1.125rem); line-height: 1.65; }
.sm-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.sm-hero__media { position: relative; min-height: 480px; }
.sm-hero__image { width: 100%; height: 100%; min-height: 480px; object-fit: cover; border-radius: var(--sm-radius-lg); background: linear-gradient(135deg,var(--sm-neutral-100),var(--sm-neutral-200)); }
.sm-hero__floating-card { position: absolute; left: -18px; bottom: 42px; max-width: 300px; padding: 16px 18px; border: 1px solid var(--sm-border); border-radius: var(--sm-radius-md); background: var(--sm-white); box-shadow: var(--sm-shadow-2); color: var(--sm-ink); }
.sm-hero__floating-card strong { display: block; margin-bottom: 4px; font-family: var(--sm-font-display); }
.sm-hero__floating-card span { color: var(--sm-text-muted); font-size: .8125rem; }
.sm-hero__metrics { display: grid; grid-template-columns: repeat(var(--sm-columns,4),minmax(0,1fr)); border: 1px solid var(--sm-border); border-radius: var(--sm-radius-md); overflow: hidden; }
.sm-hero__metric { min-width: 0; padding: 16px 18px; border-right: 1px solid var(--sm-border); background: var(--sm-white); }
.sm-hero__metric:last-child { border-right: 0; }
.sm-hero__metric-value { display: block; color: var(--sm-ink); font-family: var(--sm-font-data); font-size: clamp(1.35rem,2vw,1.65rem); font-weight: 650; letter-spacing: -.03em; line-height: 1.1; }
.sm-hero__metric:first-child .sm-hero__metric-value { color: var(--sm-primary-500); }
.sm-hero__metric-label { display: block; margin-top: 5px; color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .65rem; font-weight: 600; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }

.sm-logo-strip { display: grid; grid-template-columns: repeat(var(--sm-columns,6),minmax(0,1fr)); gap: 12px; }
.sm-logo-strip__item { min-height: 76px; display: flex; align-items: center; justify-content: center; padding: 16px; border: 1px solid var(--sm-border); border-radius: var(--sm-radius-md); background: var(--sm-white); }
.sm-logo-strip__item img { max-width: 130px; max-height: 42px; object-fit: contain; filter: grayscale(1); opacity: .72; transition: filter var(--sm-duration-base), opacity var(--sm-duration-base); }
.sm-logo-strip__item:hover img { filter: none; opacity: 1; }
.sm-logo-strip__text { color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .7rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }

.sm-metric-grid { display: grid; grid-template-columns: repeat(var(--sm-columns,3),minmax(0,1fr)); gap: 16px; }
.sm-metric-card { display: flex; flex-direction: column; gap: 14px; min-height: 100%; padding: clamp(22px,3vw,30px); border: 1px solid var(--sm-border); border-radius: var(--sm-radius-md); background: var(--sm-white); transition: transform var(--sm-duration-base) var(--sm-ease), border-color var(--sm-duration-base), box-shadow var(--sm-duration-base); }
.sm-metric-card:hover { transform: translateY(-3px); border-color: var(--sm-primary-500); box-shadow: var(--sm-shadow-2); }
.sm-metric-card__value { color: var(--sm-primary-500); font-family: var(--sm-font-data); font-size: clamp(2.25rem,4vw,3rem); font-weight: 650; letter-spacing: -.04em; line-height: 1; }
.sm-metric-card__label { color: var(--sm-ink); font-family: var(--sm-font-display); font-size: 1rem; font-weight: 650; }
.sm-metric-card__meta { color: var(--sm-text-muted); font-size: .8125rem; }
.sm-metric-card__link { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--sm-border); color: var(--sm-primary-500); font-size: .8125rem; font-weight: 650; }

.sm-comparison { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.sm-comparison__column { display: grid; align-content: start; gap: 12px; }
.sm-comparison__header { padding: 24px; border: 1px solid var(--sm-border); border-radius: var(--sm-radius-md); background: var(--sm-surface-subtle); }
.sm-comparison__column--positive .sm-comparison__header { border-color: var(--sm-primary-500); background: var(--sm-primary-050); }
.sm-comparison__column--negative .sm-comparison__header { border-color: var(--sm-danger); background: var(--sm-danger-050); }
.sm-comparison__badge { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 12px; padding: 5px 10px; border: 1px solid currentColor; border-radius: var(--sm-radius-pill); background: var(--sm-white); font-family: var(--sm-font-data); font-size: .68rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.sm-comparison__column--positive .sm-comparison__badge { color: var(--sm-primary-500); }
.sm-comparison__column--negative .sm-comparison__badge { color: var(--sm-danger); }
.sm-comparison__item { display: grid; grid-template-columns: 30px 1fr; gap: 14px; padding: 20px 22px; border: 1px solid var(--sm-border); border-radius: var(--sm-radius-md); background: var(--sm-white); }
.sm-comparison__mark { width: 28px; height: 28px; display: grid; place-items: center; border-radius: var(--sm-radius-sm); font-weight: 750; }
.sm-comparison__column--positive .sm-comparison__mark { border: 1px solid var(--sm-primary-500); background: var(--sm-primary-050); color: var(--sm-primary-500); }
.sm-comparison__column--negative .sm-comparison__mark { border: 1px solid var(--sm-danger); background: var(--sm-danger-050); color: var(--sm-danger); }
.sm-comparison__eyebrow { color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .68rem; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; }
.sm-comparison__item-title { margin-top: 4px; color: var(--sm-ink); font-family: var(--sm-font-display); font-size: 1rem; font-weight: 650; }
.sm-comparison__item-text { margin-top: 5px; color: var(--sm-text-muted); font-size: .875rem; line-height: 1.55; }

.sm-feature-grid { display: grid; grid-template-columns: repeat(var(--sm-columns,3),minmax(0,1fr)); gap: 16px; }
.sm-feature-card { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 16px; min-height: 100%; padding: 24px; border: 1px solid var(--sm-border); border-radius: var(--sm-radius-md); background: var(--sm-white); }
.sm-feature-card::before { content:""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--sm-primary-500); }
.sm-feature-card__icon { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--sm-primary-500); border-radius: var(--sm-radius-md); background: var(--sm-primary-050); color: var(--sm-primary-500); font-size: 22px; }
.sm-feature-card__number { color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .7rem; font-weight: 650; letter-spacing: .1em; }
.sm-feature-card__title { margin: 5px 0 0; font-size: 1.15rem; }
.sm-feature-card__text { color: var(--sm-text-muted); font-size: .875rem; line-height: 1.6; }
.sm-feature-card__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--sm-border); }
.sm-feature-card__chip { padding: 4px 9px; border: 1px solid var(--sm-border); border-radius: var(--sm-radius-pill); background: var(--sm-surface-subtle); color: var(--sm-text-muted); font-size: .7rem; font-weight: 550; }

.sm-case-study { display: grid; grid-template-columns: minmax(280px,.85fr) minmax(0,1.15fr); gap: clamp(28px,4vw,56px); align-items: center; }
.sm-case-study--reverse .sm-case-study__media { order: 2; }
.sm-case-study__media { position: relative; }
.sm-case-study__image { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--sm-radius-lg); background: var(--sm-surface-muted); }
.sm-case-study__result { position: absolute; right: -12px; bottom: 20px; padding: 14px 18px; border: 1px solid var(--sm-primary-500); border-radius: var(--sm-radius-md); background: var(--sm-white); box-shadow: var(--sm-shadow-2); }
.sm-case-study__result-value { display: block; color: var(--sm-primary-500); font-family: var(--sm-font-data); font-size: 1.75rem; font-weight: 650; letter-spacing: -.03em; }
.sm-case-study__result-label { display: block; margin-top: 3px; color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .65rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.sm-case-study__content { display: grid; gap: 16px; }
.sm-case-study__meta { color: var(--sm-text-muted); font-size: .8rem; }
.sm-case-study__meta strong { color: var(--sm-ink); }
.sm-case-study__description { max-width: 58ch; color: var(--sm-text-muted); line-height: 1.7; }
.sm-case-study__stats { display: grid; grid-template-columns: repeat(var(--sm-columns,3),minmax(0,1fr)); gap: 20px; padding-top: 16px; border-top: 1px solid var(--sm-border); }
.sm-case-study__stat-label { display: block; color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .65rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.sm-case-study__stat-value { display: block; margin-top: 4px; color: var(--sm-ink); font-family: var(--sm-font-data); font-size: 1.05rem; font-weight: 650; }

.sm-testimonial-grid { display: grid; grid-template-columns: repeat(var(--sm-columns,3),minmax(0,1fr)); gap: 16px; }
.sm-testimonial { display: flex; flex-direction: column; gap: 20px; min-height: 100%; padding: 24px; border: 1px solid var(--sm-border); border-radius: var(--sm-radius-md); background: var(--sm-white); }
.sm-testimonial--featured { grid-column: span 2; padding: clamp(28px,4vw,44px); }
.sm-testimonial__quote { margin: 0; color: var(--sm-secondary-700); font-size: 1rem; line-height: 1.65; }
.sm-testimonial--featured .sm-testimonial__quote { color: var(--sm-ink); font-family: var(--sm-font-display); font-size: clamp(1.25rem,2.2vw,1.75rem); font-weight: 520; line-height: 1.4; letter-spacing: -.02em; }
.sm-testimonial__footer { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--sm-border); }
.sm-testimonial__avatar { width: 42px; height: 42px; flex: 0 0 auto; border-radius: 50%; object-fit: cover; background: var(--sm-surface-muted); }
.sm-testimonial__name { display: block; color: var(--sm-ink); font-weight: 650; }
.sm-testimonial__role { display: block; color: var(--sm-text-muted); font-size: .78rem; }
.sm-testimonial__metric { margin-left: auto; text-align: right; }
.sm-testimonial__metric-value { display: block; color: var(--sm-primary-500); font-family: var(--sm-font-data); font-size: 1.5rem; font-weight: 650; }
.sm-testimonial__metric-label { display: block; color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .62rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

.sm-fit-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.sm-fit-card { padding: clamp(24px,3vw,36px); border: 1px solid var(--sm-border); border-radius: var(--sm-radius-lg); background: var(--sm-white); }
.sm-fit-card--yes { border-color: var(--sm-primary-500); }
.sm-fit-card__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 8px; padding-bottom: 18px; border-bottom: 1px solid var(--sm-border); }
.sm-fit-card__stamp { padding: 5px 10px; border: 1px solid currentColor; border-radius: var(--sm-radius-pill); font-family: var(--sm-font-data); font-size: .66rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.sm-fit-card--yes .sm-fit-card__stamp { color: var(--sm-primary-500); background: var(--sm-primary-050); }
.sm-fit-card--no .sm-fit-card__stamp { color: var(--sm-danger); background: var(--sm-danger-050); }
.sm-fit-card__list { display: grid; }
.sm-fit-card__item { display: grid; grid-template-columns: 26px 1fr; gap: 13px; padding: 16px 0; border-bottom: 1px solid var(--sm-border); }
.sm-fit-card__item:last-child { border-bottom: 0; }
.sm-fit-card__mark { width: 24px; height: 24px; display: grid; place-items: center; border-radius: var(--sm-radius-sm); font-weight: 750; }
.sm-fit-card--yes .sm-fit-card__mark { border: 1px solid var(--sm-primary-500); background: var(--sm-primary-050); color: var(--sm-primary-500); }
.sm-fit-card--no .sm-fit-card__mark { border: 1px solid var(--sm-danger); background: var(--sm-danger-050); color: var(--sm-danger); }
.sm-fit-card__label { color: var(--sm-ink); font-weight: 650; }
.sm-fit-card__detail { display: block; margin-top: 4px; color: var(--sm-text-muted); font-size: .8rem; font-weight: 400; line-height: 1.55; }

.sm-faq { border-top: 1px solid var(--sm-border-strong); }
.sm-faq__item { border-bottom: 1px solid var(--sm-border); }
.sm-faq__question { list-style: none; display: grid; grid-template-columns: auto 1fr 24px; gap: 16px; align-items: center; min-height: 68px; padding: 18px 4px; color: var(--sm-ink); font-family: var(--sm-font-display); font-size: clamp(1rem,1.3vw,1.12rem); font-weight: 650; cursor: pointer; }
.sm-faq__question::-webkit-details-marker { display: none; }
.sm-faq__number { color: var(--sm-text-muted); font-family: var(--sm-font-data); font-size: .68rem; letter-spacing: .08em; }
.sm-faq__icon { position: relative; width: 22px; height: 22px; }
.sm-faq__icon::before,.sm-faq__icon::after { content:""; position: absolute; background: currentColor; transition: transform var(--sm-duration-slow) var(--sm-ease),opacity var(--sm-duration-slow); }
.sm-faq__icon::before { width: 14px; height: 2px; left: 4px; top: 10px; }
.sm-faq__icon::after { width: 2px; height: 14px; left: 10px; top: 4px; }
.sm-faq__item[open] .sm-faq__question { color: var(--sm-primary-500); }
.sm-faq__item[open] .sm-faq__icon::after { transform: rotate(90deg); opacity: 0; }
.sm-faq__answer { max-width: 68ch; padding: 0 44px 24px 0; color: var(--sm-text-muted); line-height: 1.7; }

.sm-cta { padding: clamp(32px,5vw,64px); border-radius: var(--sm-radius-lg); background: var(--sm-primary-900); color: var(--sm-white); }
.sm-cta__grid { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 32px; align-items: center; }
.sm-cta__copy { display: grid; gap: 14px; max-width: 760px; }
.sm-cta :where(h2,h3,p) { color: var(--sm-white); }
.sm-cta__description { color: rgba(255,255,255,.8) !important; }
.sm-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
.sm-cta__bullets { display: grid; grid-template-columns: repeat(var(--sm-columns,4),minmax(0,1fr)); gap: 1px; margin-top: 32px; border: 1px solid rgba(255,255,255,.15); border-radius: var(--sm-radius-md); overflow: hidden; background: rgba(255,255,255,.15); }
.sm-cta__bullet { display: flex; align-items: center; gap: 8px; padding: 17px; background: var(--sm-primary-900); color: rgba(255,255,255,.9); font-size: .78rem; font-weight: 550; }
.sm-cta__bullet::before { content:""; width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; background: var(--sm-white); }

.sm-form-shell { padding: clamp(24px,4vw,40px); border: 1px solid var(--sm-border); border-radius: var(--sm-radius-lg); background: var(--sm-white); box-shadow: var(--sm-shadow-1); }
.sm-form-shell__head { display: grid; gap: 10px; margin-bottom: 24px; }
.sm-form-shell__description { color: var(--sm-text-muted); }

@media (max-width: 1024px) {
  .sm-hero__grid { grid-template-columns: 1fr; }
  .sm-hero__media { min-height: 420px; }
  .sm-hero__image { min-height: 420px; }
  .sm-feature-grid { --sm-columns: 2 !important; }
  .sm-logo-strip { --sm-columns: 3 !important; }
}
@media (max-width: 767px) {
  .sm-section-heading { grid-template-columns: 1fr; }
  .sm-section-heading__meta { text-align: left; }
  .sm-hero__floating-card { left: 10px; right: 10px; max-width: none; }
  .sm-hero__metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sm-hero__metric:nth-child(2n) { border-right: 0; }
  .sm-hero__metric:nth-child(-n+2) { border-bottom: 1px solid var(--sm-border); }
  .sm-logo-strip { --sm-columns: 2 !important; }
  .sm-metric-grid,.sm-feature-grid,.sm-testimonial-grid { grid-template-columns: 1fr; }
  .sm-comparison,.sm-fit-grid,.sm-case-study { grid-template-columns: 1fr; }
  .sm-case-study--reverse .sm-case-study__media { order: 0; }
  .sm-testimonial--featured { grid-column: auto; }
  .sm-cta__grid { grid-template-columns: 1fr; }
  .sm-cta__actions { justify-content: flex-start; }
  .sm-cta__bullets { grid-template-columns: 1fr 1fr; }
}

/* Theme Builder utility classes ----------------------------------------- */
.sm-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  min-height: 72px;
  border-bottom: 1px solid var(--sm-border);
  background: rgba(255,255,255,.88);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
}
.sm-site-header .elementor-nav-menu--main .elementor-item {
  border-radius: var(--sm-radius-sm);
  color: var(--sm-text);
  font-family: var(--sm-font-body);
  font-size: .875rem;
  font-weight: 550;
}
.sm-site-header .elementor-nav-menu--main .elementor-item:hover,
.sm-site-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--sm-ink); }
.sm-site-header .sm-header-cta .elementor-button { min-height: 40px; padding: 9px 16px; }
.sm-site-footer { padding-block: clamp(48px,6vw,72px) 32px; border-top: 1px solid var(--sm-border); background: var(--sm-white); }
.sm-site-footer :where(h2,h3,h4) { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.sm-site-footer a { color: var(--sm-secondary-700); }
.sm-site-footer a:hover { color: var(--sm-primary-500); }
.sm-section-white { background: var(--sm-white); }
.sm-section-grey { background: var(--sm-surface-subtle); }
.sm-section-green { background: var(--sm-primary-900); color: var(--sm-white); }
.sm-section-green :where(h1,h2,h3,h4,h5,h6,p,a) { color: inherit; }
