/* ==========================================================================
   01 BASE :: ground, typography, Astra chrome suppression
   ========================================================================== */
html{ background:var(--ink-850); scroll-behavior:smooth; overflow-x:hidden; max-width:100%; }
html,body,
body.ast-separate-container,
body.ast-plain-container,
#page,#content,#primary,
.site,.site-content,
.ast-separate-container #primary,
.ast-separate-container .ast-article-single{
  background:var(--ink-850) !important;
  color:var(--text-2);
}
body{
  font-family:var(--font-text);
  line-height:1.65;
  overflow-x:hidden;
  max-width:100%;
}
h1,h2,h3,h4,h5,h6,.entry-title{
  font-family:var(--font-display) !important;
  color:var(--text) !important;
  letter-spacing:-.03em;
  line-height:1.1;
}
h1{ font-weight:800; letter-spacing:-.04em; }
a{ color:var(--link); }
a:hover,a:focus{ color:var(--cyan-300); }
::selection{ background:var(--cyan-400); color:var(--on-cyan); }
:focus-visible{ outline:2px solid var(--cyan-400); outline-offset:3px; border-radius:6px; }

::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background:var(--ink-900); }
::-webkit-scrollbar-thumb{ background:#22304F; border-radius:99px; border:3px solid var(--ink-900); }
::-webkit-scrollbar-thumb:hover{ background:#2E4067; }

.e-con,.e-con-inner{ max-width:100%; }

/* Astra's own header/footer chrome is replaced by the Xpro templates */
.site-header,.ast-above-header,.ast-below-header,
.site-footer,.ast-small-footer,.ast-primary-header-bar{
  display:none !important;
}
.ast-container,.ast-container-fluid{ max-width:var(--wrap); }
.ast-separate-container .ast-article-single,
.ast-separate-container .site-main>.ast-row{ padding:0; }
.entry-content{ margin-top:0; }
.ast-breadcrumbs-wrapper,.ast-archive-description{ display:none; }

/* Every Elementor / WooCommerce page routes through this wrapper: lock it
   to the same 1280 + 24px gutter as the Xpro header/footer so nothing
   drifts out of alignment with the rest of the site. */
.elementor-page .ast-container,
.woocommerce .ast-container,
.woocommerce-page .ast-container,
.post-type-archive-product .ast-container,
.tax-product_cat .ast-container{
  max-width:100% !important;
  padding-inline:0 !important;
}
.post-type-archive-product #primary,
.woocommerce #primary,
.woocommerce-page #primary{ margin:0 !important; padding:0 !important; }
.elementor-page .e-con.e-con-boxed,
.xpro-theme-builder-header .e-con.e-con-boxed,
#xpro-theme-builder-footer .e-con.e-con-boxed{
  padding-inline:max(24px,calc((100% - var(--wrap)) / 2)) !important;
}

/* Kill any leftover Astra floating chrome -- the design has its own */
#ast-scroll-top,.ast-scroll-top-icon{ display:none !important; }

/* Type utilities, matched 1:1 to the source build's class names */
.label{
  display:flex; align-items:center; gap:10px;
  font-size:var(--t-label); font-weight:700; text-transform:uppercase;
  letter-spacing:.18em; color:var(--text-3);
}
.label::before{
  content:""; width:18px; height:2px; background:var(--cyan-400); flex:0 0 auto;
}
.mh-card__divider{ border-top:1px solid var(--line); }
.lead{ font-size:var(--t-lead); line-height:1.55; color:var(--text-2); font-weight:400; }
.sm{ font-size:var(--t-sm); }
.xs{ font-size:var(--t-xs); }
.muted{ color:var(--text-2); }
.faint{ color:var(--text-3); }
.num{ font-variant-numeric:tabular-nums; letter-spacing:-.01em; }

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