@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&display=swap');

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--msa-paper); }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--msa-ink);
  background: var(--msa-paper);
  font-family: var(--msa-body);
  font-size: 17px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
::selection { background: var(--msa-accent); color: var(--msa-white); }

.msa-shell {
  width: min(calc(100% - (var(--msa-shell-gutter) * 2)), var(--msa-shell-max));
  margin-inline: auto;
}

.msa-eyebrow {
  margin: 0 0 18px;
  color: var(--msa-muted);
  font-size: 11px;
  line-height: 1.2;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
}

.msa-display {
  margin: 0;
  font-family: var(--msa-display);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.035em;
}

.msa-section-title {
  margin: 0;
  font-family: var(--msa-display);
  font-size: clamp(44px, 4.3vw, 68px);
  line-height: .99;
  letter-spacing: -.034em;
  font-weight: 400;
}

.msa-body-large {
  font-size: clamp(18px, 1.28vw, 21px);
  line-height: 1.55;
}

.msa-text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  padding-bottom: 7px;
  border-bottom: 1px solid currentColor;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: gap .25s var(--msa-ease), color .25s var(--msa-ease);
}
.msa-text-link:hover { gap: 18px; color: var(--msa-accent-deep); }

body.elementor-page .msa-btn {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 0 23px;
  border: 1px solid transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--msa-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: .085em !important;
  text-transform: uppercase !important;
  cursor: pointer;
  transition: background .25s var(--msa-ease), color .25s var(--msa-ease), border-color .25s var(--msa-ease), transform .25s var(--msa-ease);
}
body.elementor-page .msa-btn:hover { transform: translateY(-2px); }
body.elementor-page .msa-btn--primary { background: var(--msa-accent) !important; color: var(--msa-white) !important; }
body.elementor-page .msa-btn--primary:hover { background: var(--msa-accent-deep) !important; }
body.elementor-page .msa-btn--outline { background: transparent !important; color: inherit !important; border-color: currentColor !important; }
body.elementor-page .msa-btn--light { color: var(--msa-white) !important; border-color: rgba(255,255,255,.65) !important; }

:focus-visible { outline: 3px solid #bb8c70; outline-offset: 4px; }
.msa-anchor { scroll-margin-top: calc(var(--msa-header-h) + 18px); }

/* Elementor is only the full-width host. All actual layout lives in msa-* classes. */
body.elementor-page > .elementor-location-header,
body.elementor-page > .elementor-location-footer,
body.elementor-page > [data-elementor-type="wp-page"] {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.elementor-page > .elementor-location-header > .e-con,
body.elementor-page > .elementor-location-footer > .e-con,
body.elementor-page > [data-elementor-type="wp-page"] > .e-con {
  --width: 100% !important;
  --content-width: 100% !important;
  --container-max-width: none !important;
  --gap: 0px !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

body.elementor-page .elementor-location-header .elementor-widget-html,
body.elementor-page .elementor-location-footer .elementor-widget-html,
body.elementor-page > [data-elementor-type="wp-page"] > .e-con > .elementor-widget-html,
body.elementor-page .elementor-location-header .elementor-widget-html > .elementor-widget-container,
body.elementor-page .elementor-location-footer .elementor-widget-html > .elementor-widget-container,
body.elementor-page > [data-elementor-type="wp-page"] > .e-con > .elementor-widget-html > .elementor-widget-container {
  --container-widget-width: 100% !important;
  --container-widget-flex-grow: 1 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 0 0 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.elementor-page .elementor-widget-html > .elementor-widget-container { overflow: visible; }

@media (max-width: 767px) { body { font-size: 15px; } }
