/* ==========================================================
   XTC Base - global resets, containment, and page rhythm
   ========================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body,
button,
input,
textarea,
select {
  font-family: var(--xtc-font-sans);
}

body {
  margin: 0;
  background: var(--xtc-page-bg);
  color: var(--xtc-ink);
}

h1,
h2,
h3,
h4,
h5,
h6,
.site-title,
.site-title a,
.xtc-btn,
.xtc-kicker {
  font-family: var(--xtc-font-sans);
}

#colophon.site-footer {
  display: none !important;
}

#page,
.site {
  background: transparent;
}

:is(.xtc-shell, .xtc-content-shell) {
  width: min(var(--xtc-container-wide), calc(100% - (2 * var(--xtc-container-gutter))));
  margin-inline: auto;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.xtc-shell .xtc-content-shell,
.xtc-page__body-inner .xtc-content-shell {
  width: auto;
  max-width: none;
  margin-inline: 0;
}

#primary.site-main {
  padding-top: var(--xtc-page-top-space);
}

body.home #primary.site-main {
  padding-top: calc(var(--xtc-page-top-space) + var(--xtc-header-offset));
}

.xtc-section {
  padding-top: var(--xtc-section-space);
  margin-top: 0;
  scroll-margin-top: calc(var(--xtc-header-height) + var(--xtc-page-top-space));
}

.xtc-section > :first-child {
  margin-top: 0;
}

.xtc-section > :last-child {
  margin-bottom: 0;
}

.xtc-shell--service-layout .xtc-section,
.xtc-shell--contact-page .xtc-section {
  padding-top: var(--xtc-section-space-tight);
}

.xtc-flow > * + *,
.xtc-prose > * + * {
  margin-top: var(--xtc-flow-space);
}

.xtc-shell :is(.xtc-section__intro, .xtc-lead),
.xtc-page__body-inner,
.xtc-page__content,
.xtc-article-content,
body.single-post .entry-content,
body.page:not(.home) .entry-content {
  max-width: var(--xtc-container-sm);
  margin-inline: auto;
}

.xtc-section > :not(.xtc-section__intro):not(.xtc-hero) + :not(.xtc-section__intro):not(.xtc-hero) {
  margin-top: var(--xtc-flow-space-lg);
}

.xtc-page__content,
.xtc-article-content,
body.single-post .entry-content,
body.page:not(.home) .entry-content {
  text-align: left;
}
