/* Astra + Elementor compatibility layer for the captured Abjad design. */
html,
body {
  margin: 0 !important;
  padding: 0 !important;
}

html {
  font-size: 16px !important;
}

h1 { font-size: 2em; }
h2 { font-size: 1.5em; }
h3 { font-size: 1.17em; }
h4 { font-size: 1em; }
h5 { font-size: 0.83em; }
h6 { font-size: 0.67em; }

body.elementor-page {
  overflow-x: clip;
}

.elementor-widget-abjad_editable_markup,
.elementor-widget-abjad_editable_markup > .elementor-widget-container {
  display: contents !important;
}

.abjad-elementor-global.e-con,
.abjad-elementor-global.e-con > .e-con-inner {
  display: contents !important;
}

.abjad-elementor-main.e-con,
.abjad-elementor-main.e-con > .e-con-inner {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

.elementor-location-header,
.elementor-location-footer,
.elementor > .e-con {
  --container-max-width: none;
}

.abjad-main .hentry {
  margin: 0 !important;
}

.abjad-footer address {
  margin: 0 !important;
}

.abjad-form__title {
  font-size: 1.5rem !important;
}

.abjad-prose .abjad-form__title {
  margin-top: 1.7em;
  font-size: clamp(1.55rem, 3vw, 2.15rem) !important;
}

.abjad-program-inquiry .abjad-form__title {
  margin-top: 0;
  font-size: 1.45rem !important;
}

.abjad-form label {
  line-height: 1.75 !important;
}

.abjad-form input:not([type="hidden"]) {
  height: calc(1.75em + 22px);
}

/* WordPress's generated flow-layout rules replace the source theme's
   heading and paragraph rhythm. Restore that rhythm inside managed copy. */
.abjad-prose :where(.is-layout-flow) > * {
  margin-block-start: 0;
  margin-block-end: 0;
}

.abjad-prose :where(.is-layout-flow) > :where(h1, h2, h3, h4, h5, h6) {
  margin-block-end: 0.55em;
}

.abjad-prose :where(.is-layout-flow) > p {
  margin-block-end: 1em;
}

.abjad-prose .abjad-copy-section > .wp-block-list {
  margin-top: 20px;
  margin-inline: 0;
  margin-bottom: 0;
}

.abjad-prose :where(.abjad-copy-section, .abjad-copy-faq) > :last-child {
  margin-bottom: 0;
}

body.error404 .abjad-elementor-main.e-con {
  display: grid !important;
  min-height: 72vh !important;
  padding-block: 90px !important;
  place-items: center;
}

body > .elementor,
body > .elementor > .elementor-element {
  width: 100%;
}

/* Preserve the source theme's framed phone composition. Elementor Canvas
   otherwise forces the main container back to the full viewport width. */
@media (max-width: 430px) {
  body.abjad-home .abjad-elementor-main.e-con {
    width: calc(100% - 16px) !important;
    margin-inline: auto !important;
  }

  body.has-abjad-mobile-contact-bar {
    padding-block-end: calc(68px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* Elementor's editor outline remains available without altering front-end layout. */
.elementor-editor-active .elementor-widget-abjad_editable_markup {
  min-height: 12px;
}
