@font-face{font-family:"Outfit";src:url(fonts/outfit-vf.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Sora";src:url(fonts/sora-vf.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}

/* aiapro-layout.css — brighter, not dusty. Linked last. Visual only. */
:root {
  --bg: #050816 !important;
  --surface: #12162B !important;
  --ink: #F8FAFF !important;
  --ink-2: #C4B5FD !important;
  --line: #312E81 !important;
  --cyan: #818CF8 !important;
  --cyan-d: #22D3EE !important;
}

body {
  font-size: 16.5px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #F8FAFF !important;
  background: #050816 !important;
}

h1, h2, h3 { color: #F8FAFF; }

h1 em, h2 em, h3 em {
  color: #A5B4FC !important;
  -webkit-text-fill-color: #A5B4FC !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

a { color: #F8FAFF; }
p a, li a, footer a {
  color: #67E8F8;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.nav-links a, .brand, .btn { text-decoration: none; }
.nav-links a { color: #C4B5FD; }
.brand { color: #F8FAFF; }

.btn, a.btn {
  background: linear-gradient(135deg, #818CF8, #22D3EE) !important;
  color: #050816 !important;
  border: none !important;
}

/* ------------------------------------------------------------------
   Tools restore (2026-08-20). Visibility + 44px tap only.
   Does not add products, calculators, or copy. Does not hide tools.
   ------------------------------------------------------------------ */

/* Skip-links: overflow-x:hidden on html/body can clip left:-9999px
   even after :focus { left:0 }. Pin focused skip to the viewport. */
.skip-to-content:focus,
.skip-to-content:focus-visible,
a.skip-to-content:focus,
.skip:focus,
.skip:focus-visible,
.skip-link:focus,
.skip-link:focus-visible,
a.skip-link:focus {
  position: fixed !important;
  left: 12px !important;
  top: 12px !important;
  width: auto !important;
  height: auto !important;
  min-width: 44px;
  min-height: 44px;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  display: inline-flex !important;
  align-items: center;
  z-index: 2147483646 !important;
}

/* Accessibility toolbar injected by enhance.js */
.enh-bar,
.enh-panel,
.enh-lang {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.enh-btn,
.enh-toggle,
.enh-step,
.enh-reset {
  min-width: 44px;
  min-height: 44px;
}

/* Existing CTAs / form controls / downloads */
.nav-cta,
.btn,
a.btn,
.btn-pri,
a.btn-pri,
.btn-sec,
button.send,
#inquire button.send,
#inquire input,
#inquire select,
.dl .btn,
.dl a.btn,
a[download] {
  min-height: 44px;
}

/* Social chips already used as tap tools */
.chip {
  min-width: 44px;
  min-height: 44px;
}

/* Glossary A-Z jump filters */
.index a,
nav.az a,
nav.index a {
  min-width: 44px;
  min-height: 44px;
  box-sizing: border-box;
}

/* Coverage search on the record */
.cc-search,
input.cc-search,
input[type="search"] {
  min-height: 44px;
  box-sizing: border-box;
}

/* Record / shared site-search modal (markup already in the tree) */
#site-search-modal {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.85);
  z-index: 10000;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 6rem 1rem 1rem;
}
#site-search-modal.open { display: flex !important; }
#site-search-modal-inner {
  background: #fff;
  max-width: 720px;
  width: 100%;
  border-radius: 14px;
  padding: 1.5rem;
  max-height: 75vh;
  overflow-y: auto;
}
#site-search-close {
  min-width: 44px;
  min-height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  float: right;
  font-size: 1.4rem;
}

#site-tools-bar {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}
#site-tools-bar .stb-btn,
.stb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  min-width: 44px;
  min-height: 44px;
  background: #0A0A0A;
  color: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  font-size: 1.1rem;
  position: relative;
}
.stb-btn[data-label]::after {
  content: attr(data-label);
  position: absolute;
  right: 56px;
  white-space: nowrap;
  background: #0A0A0A;
  color: #fff;
  padding: 0.45rem 0.8rem;
  border-radius: 6px;
  font-size: 0.85rem;
  opacity: 0;
  pointer-events: none;
}
.stb-btn:hover::after,
.stb-btn:focus::after { opacity: 0.98; }

#google_translate_widget {
  position: fixed;
  bottom: 1rem;
  right: 5rem;
  z-index: 9998;
  background: #fff;
  padding: 0.4rem 0.6rem;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  display: none;
}
#google_translate_widget.open { display: block !important; }

@media print {
  #site-tools-bar,
  #site-search-modal,
  #google_translate_widget,
  .enh-bar,
  .enh-panel,
  .enh-lang { display: none !important; }
}


/* Brighter type: Sora display + Outfit body. Visual only. */
h1, h2, h3, .brand, .eyebrow {
  font-family: "Sora", "Outfit", sans-serif !important;
}
body, p, li, .lede, .nav-links, .card p, footer {
  font-family: "Outfit", "Sora", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
.brand {
  letter-spacing: -0.03em;
  font-weight: 650;
}

section, .hero {
  padding-top: clamp(3rem, 6vw, 6rem);
  padding-bottom: clamp(3rem, 6vw, 6rem);
}
.lede, .hero p { max-width: 65ch; }

html, body { overflow-x: hidden; }
img, svg, video { max-width: 100%; }

@media (max-width: 640px) {
  body { font-size: 16px; line-height: 1.55; }
  html, body { overflow-x: hidden; }
  h1, .hero h1 { font-size: 2rem !important; line-height: 1.15; }
  .wrap, .nav-in, .hero, section {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .nav-in { flex-wrap: wrap !important; }
  .nav-links { flex-wrap: wrap !important; }
  .nav-links a { min-height: 44px; display: inline-flex; align-items: center; }
  .btn, a.btn { width: 100%; min-height: 44px; justify-content: center; }
  img, video { max-width: 100%; height: auto; }
}

/* ==== 2026-08-20 modern bg + type + fine print ====
   Visual only. Solid paper / light wash. Type hierarchy + 62–68ch measure. Body 16–16.5px / lh 1.55–1.6.
   Fine print 0.6875rem / 1.4 / centered. Linked last so these win. */

:root {
  --paper: #050816 !important;
  --fine: rgba(248, 250, 255, 0.55) !important;
  --measure: 68ch;
}


html, body {
  background-color: #050816 !important;
  background-image: none !important;
}



/* ----- Body rhythm (uniform across home + inner) ----- */
html body {
  font-size: 16.5px !important;
  line-height: 1.58 !important;
}
html body a:not(.btn):not(.cta):not(.cta-btn):not(.nl):not(.nav-links a):not(.brand) {
  font-size: inherit;
}
/* ----- Type hierarchy (home + inner pages share the system) ----- */
h1, .cover-title, .lb-title {
  text-wrap: balance;
  line-height: 1.12;
}
h2, .block h2, .sec-title, .section-title {
  text-wrap: balance;
  line-height: 1.18;
  margin-top: 1.65em;
  margin-bottom: 0.48em;
}
h3 {
  text-wrap: balance;
  line-height: 1.22;
  margin-top: 1.3em;
  margin-bottom: 0.38em;
}
h1 + p, h2 + p, h3 + p,
h1 + .lede, h2 + .lede, h3 + .lede {
  margin-top: 0.2em;
}

/* Inner pages: same faces, calmer scale, not cramped */
body > .wrap > h1,
main > .wrap > h1,
main > h1:first-child,
body > .wrap h1 {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  line-height: 1.14;
  margin: 0.15em 0 0.4em;
  max-width: 22ch;
}
body > .wrap > h2,
main > .wrap > h2,
body > .wrap h2 {
  font-size: clamp(1.18rem, 2.2vw, 1.5rem);
  margin-top: 1.7em;
  margin-bottom: 0.45em;
}
body > .wrap > h3,
main > .wrap > h3,
body > .wrap h3 {
  font-size: 1.05rem;
  margin-top: 1.3em;
}

body > .wrap {
  max-width: 44rem;
  margin-inline: auto;
  padding: clamp(2.6rem, 5.5vw, 4.8rem) 1.25rem 3rem;
}
main > .wrap {
  padding-block: clamp(0.4rem, 2vw, 1.2rem);
}

/* Body measure ~60–68ch, paragraph air */
main p, article p, .wrap > p, .col-wide p, .col-narrow p,
.block p, .lede, p.lede, p.body, dd {
  max-width: 68ch;
}
main p, article p, .wrap > p, .col-wide p, .col-narrow p,
.block p.body, p.body {
  margin: 0 0 1.08em;
  line-height: 1.6;
}
.sub, p.sub {
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0 0 1.35em;
  color: var(--fine);
  max-width: 68ch;
}
a.back {
  display: inline-block;
  margin-bottom: 1.25rem;
  font-size: 0.92rem;
}

/* Lists: hanging indent (outside markers, wrap under text) */
main ul, main ol, article ul, article ol, .wrap ul, .wrap ol,
.col-wide ul, .col-narrow ul {
  max-width: 68ch;
  padding-left: 1.5em;
  margin: 0 0 1.2em;
  line-height: 1.6;
  list-style-position: outside;
}
main li + li, article li + li, .wrap li + li {
  margin-top: 0.4em;
}
main li, article li, .wrap li {
  padding-left: 0.25em;
  text-indent: 0;
}

/* ----- Mobile stacks ----- */
@media (max-width: 640px) {
  html, body { overflow-x: hidden; }
  body { font-size: 16px !important; line-height: 1.55 !important; }
  h1, .hero h1, .cover-title, .lb-title, .phero h1, .hero-split h1 {
    font-size: 2rem !important;
    line-height: 1.15 !important;
    max-width: 100%;
  }

  .grid, .grid2, .cards3, .feature, .cols, .stats .row,
  .hero .in, .statement .row, .cover-grid, .port, .card-grid,
  .princ, .impact .row, .contact, .bigfoot .cols,
  .heroart .body, .statband .row {
    grid-template-columns: 1fr !important;
  }
  body > .wrap, main .wrap, .nav-in, footer {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .btnrow, .hero .btns, .hbtns, .cta {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
}

/* ----- Fine print: small, uniform, centered ----- */
/* Simple footers (copyright / legal / network strip) */
html body footer:not(.bigfoot):not(:has(.footer-inner)),
html body footer.fine:not(:has(.footer-inner)),
html body .fine {
  font-size: 0.6875rem !important;
  line-height: 1.4 !important;
  text-align: center !important;
  color: var(--fine) !important;
  padding: 1.25rem 1.25rem 2rem !important;
  max-width: 42rem;
  margin-inline: auto;
  letter-spacing: 0.01em;
}
html body footer:not(.bigfoot):not(:has(.footer-inner)) .wrap,
html body footer.fine:not(:has(.footer-inner)) .wrap {
  max-width: 42rem;
  margin-inline: auto;
  text-align: center !important;
}

/* Legal bits everywhere — including designed footers */
html body footer .legal,
html body footer p.legal,
html body footer .disclaimer,
html body footer .footer-bottom,
html body footer .footer-bottom div,
html body footer .ah-identity,
html body footer .ah-identity a,
html body footer .base,
html body footer .base span,
html body footer p.fine,
html body .legal,
html body p.legal,
html body .ah-identity,
html body [data-legal],
html body [data-legal] p,
html body [data-legal] div,
html body [data-legal] span,
html body [data-legal-band],
html body footer:not(:has(.footer-inner)):not(.bigfoot) p,
html body footer:not(:has(.footer-inner)):not(.bigfoot) li,
html body footer:not(:has(.footer-inner)):not(.bigfoot) small,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .note,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .fnet-h,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .fl,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .pl,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .netf,
html body footer:not(:has(.footer-inner)):not(.bigfoot) span,
html body footer:not(:has(.footer-inner)):not(.bigfoot) a {
  font-size: 0.6875rem !important;
  line-height: 1.4 !important;
  text-align: center !important;
  color: var(--fine) !important;
}
html body [data-legal],
html body [data-legal-band],
html body .ah-identity,
html body .legal,
html body footer .disclaimer,
html body footer .footer-bottom,
html body footer .base {
  max-width: 42rem;
  margin-inline: auto;
}
html body footer .disclaimer,
html body footer .footer-bottom,
html body [data-legal] {
  padding: 1.25rem 1.25rem 2rem !important;
}

html body footer:not(:has(.footer-inner)):not(.bigfoot) a,
html body footer.fine:not(:has(.footer-inner)) a,
html body .fine a,
html body footer .legal a,
html body footer .pl a,
html body footer .fl a,
html body footer .ah-identity a,
html body footer .netf a,
html body footer .disclaimer a,
html body footer .footer-bottom a,
html body .legal a,
html body .ah-identity a,
html body [data-legal] a,
html body [data-legal] a[style],
html body .pl a {
  font-size: 0.6875rem !important;
  line-height: 1.4 !important;
  color: var(--fine) !important;
  text-decoration: underline !important;
  text-decoration-style: dotted !important;
  text-underline-offset: 2px;
  font-weight: 400 !important;
}

/* Designed footers keep brand / columns; legal strip only shrinks */
html body footer:has(.footer-inner),
html body footer.bigfoot {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
html body footer:has(.footer-inner) .footer-inner,
html body footer:has(.footer-inner) .footer-inner a,
html body footer:has(.footer-inner) .footer-h,
html body footer:has(.footer-inner) .brand-mark,
html body footer.bigfoot .cols,
html body footer.bigfoot .cols a,
html body footer.bigfoot .blurb,
html body footer.bigfoot h3 {
  font-size: revert;
  line-height: revert;
  text-align: revert;
  color: revert;
  max-width: none;
}

html body footer.bigfoot .base,
html body footer.bigfoot .base span,
html body footer.bigfoot [data-legal],
html body footer.bigfoot [data-legal] p,
html body footer.bigfoot [data-legal] div,
html body footer.bigfoot [data-legal] span,
html body footer.bigfoot [data-legal] a {
  font-size: 0.6875rem !important;
  line-height: 1.4 !important;
  text-align: center !important;
  color: var(--fine-on-dark, rgba(255,255,255,0.62)) !important;
}
html body footer.bigfoot [data-legal],
html body footer.bigfoot .base {
  max-width: 42rem;
  margin-inline: auto;
  padding: 1.25rem 1.25rem 1.5rem !important;
}
html body footer.bigfoot [data-legal] a {
  text-decoration: underline !important;
  text-decoration-style: dotted !important;
  text-underline-offset: 2px;
}

html body footer:not(.bigfoot):not(:has(.footer-inner)) .fl,
html body footer:not(.bigfoot):not(:has(.footer-inner)) .pl {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 0.85rem;
  max-width: 42rem;
  margin-inline: auto;
}
