.napb-page {
  --site-design-primary: #57308b;
  --site-design-secondary: #7042d2;
  --site-design-accent: #f7ccb5;
  --site-design-bg: #ffffff;
  --site-design-panel: #f7f3fb;
  --site-design-text: #333f55;
  --site-design-muted: #69727d;
  --site-design-line: rgba(87, 48, 139, 0.2);
  --site-design-font-display: Montserrat, sans-serif;
  --site-design-font-body: Montserrat, sans-serif;
  --site-design-content: 1200px;
  --site-design-content-narrow: 860px;
  --site-design-gutters: 20px;
  --site-design-radius-card: 20px;
  --site-design-radius-control: 40px;

  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  color: var(--site-design-text);
  background: var(--site-design-bg);
  font-family: var(--site-design-font-body);
  font-size: 18px;
  line-height: 1.6;
}

.napb-page,
.napb-page *,
.napb-page *::before,
.napb-page *::after {
  box-sizing: border-box;
}

/* Match the white canvas of the existing Elementor site. */
body.napb-page-active #wrapper {
  background: #ffffff;
}

/*
 * Managed pages use Elementor's site grid: section backgrounds span the
 * content canvas while inner content aligns with the 1200px header/footer
 * container and its 10px responsive side gutters.
 */
body.napb-page-active #content > .ast-container {
  max-width: none;
  padding-inline: 0;
}

.napb-page img,
.napb-page svg,
.napb-page video {
  display: block;
  max-width: 100%;
  height: auto;
}

.napb-page a,
.napb-page button,
.napb-page input,
.napb-page select,
.napb-page textarea {
  font: inherit;
}

.napb-page h1,
.napb-page h2,
.napb-page h3,
.napb-page h4,
.napb-page p {
  overflow-wrap: break-word;
}

.napb-page .napb-shell {
  width: min(calc(100% - var(--site-design-gutters)), var(--site-design-content));
  margin-inline: auto;
}

.napb-page .napb-shell--narrow {
  width: min(calc(100% - var(--site-design-gutters)), var(--site-design-content-narrow));
}

.napb-page .napb-button {
  display: inline-flex;
  min-height: 60px;
  align-items: center;
  justify-content: center;
  padding: 10px 24px;
  border: 1px solid var(--site-design-primary);
  border-radius: var(--site-design-radius-control);
  background: var(--site-design-primary);
  color: #ffffff;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.napb-page .napb-button:hover,
.napb-page .napb-button:focus-visible {
  border-color: var(--site-design-secondary);
  background: var(--site-design-secondary);
  color: #ffffff;
}

.napb-page .napb-button--ghost {
  background: transparent;
  color: var(--site-design-primary);
}

@media (max-width: 767px) {
  .napb-page {
    font-size: 16px;
  }
}

