/*
 * SmartXY enterprise foundation. Load after the page stylesheet.
 * Opt-in: body[data-design="enterprise"]; homepage: data-page-type="home".
 * This file owns tokens, text/control roles and explicit alignment utilities.
 * It does not style generic hero, card, grid, media or header layouts.
 * Scoped !important declarations bridge existing inline/legacy typography.
 */
/* Inter Latin variable subset, locally hosted under SIL OFL 1.1. */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter/inter-latin-variable.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --font-sans: "Inter", Arial, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;
  --color-primary: #2458d3;
  --color-primary-dark: #1844a8;
  --color-primary-on-dark: #8fb9ff;
  --color-text-main: #101828;
  --color-text-secondary: #475467;
  --color-text-muted: #667085;
  --color-bg: #ffffff;
  --color-bg-soft: #f6f8fb;
  --color-bg-dark: #07111f;
  --color-border: #e5eaf0;
  --type-size-body: 16px;
  --type-size-body-sm: 14px;
  --type-size-card-copy: 15px;
  --type-size-meta: 13px;
  --type-size-caption: 12px;
  --type-size-button: 14px;
  --type-size-navigation: 14px;
  --type-h1: clamp(34px, 3.7vw, 48px);
  --type-home-hero: clamp(36px, 4.3vw, 56px);
  --type-h2: clamp(26px, 2.6vw, 32px);
  --type-h3: clamp(18px, 1.65vw, 20px);
  --type-h4: 17px;
  --type-lead: 18px;
  --type-line-body: 1.65;
  --type-line-h1: 1.1;
  --type-line-h2: 1.22;
  --type-line-h3: 1.35;
  --type-line-lead: 1.6;
  --type-line-caption: 1.5;
  --type-line-navigation: 1.2;
  --type-line-footer: 1.65;
  --type-weight-regular: 400;
  --type-weight-medium: 500;
  --type-weight-semibold: 600;
  --type-weight-bold: 650;
  --type-weight-button: 600;
  --type-weight-navigation: 600;
  --type-paragraph-gap: 0.8em;
  --type-list-gap: 0.375em;
  --layout-content-max: 1200px;
  --layout-reading-max: 66ch;
  --layout-gutter: 24px;
  --layout-section-space: 72px;
  --layout-grid-gap: 24px;
  --radius-control: 8px;
  --radius-surface: 12px;
  --button-min-height: 44px;
  --button-pad-x: 20px;
  --button-pad-y: 11px;
  --button-radius: var(--radius-control);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-14: 56px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-30: 120px;

  /* Compatibility aliases. New components should use the canonical names above. */
  --font-display: var(--font-sans);
  --font-mono: var(--font-sans);
  --smartxy-font-main: var(--font-sans);
  --type-font-sans: var(--font-sans);
  --type-font-display: var(--font-sans);
  --type-font-meta: var(--font-sans);
  --type-weight-heavy: var(--type-weight-bold);
  --type-line-tight: var(--type-line-h1);
  --type-line-heading: var(--type-line-h2);
  --type-line-subhead: var(--type-line-h3);
  --type-lead-compact: var(--type-lead);
  --container-width: var(--layout-content-max);
}

body[data-design="enterprise"] {
  font-family: var(--font-sans) !important;
  font-size: var(--type-size-body);
  line-height: var(--type-line-body);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
}

/* Reserve the shared header's 72px navigation row and 1px border during startup. */
body[data-design="enterprise"] [data-site-header]:not([data-site-header="rendered"]) {
  min-height: 73px;
}

/* Main content is scoped separately from the independently managed site header/footer. */
body[data-design="enterprise"] main,
body[data-design="enterprise"] main *:not(svg):not(svg *) {
  font-family: var(--font-sans) !important;
}

body[data-design="enterprise"] main :is(h1, h2, h3, h4) {
  font-weight: var(--type-weight-bold) !important;
  letter-spacing: -0.02em !important;
  text-wrap: balance;
}

body[data-design="enterprise"] main :is(h1, .page-heading) {
  font-size: var(--type-h1) !important;
  line-height: var(--type-line-h1) !important;
  letter-spacing: -0.035em !important;
}

body[data-design="enterprise"][data-page-type="home"] main h1 {
  font-size: var(--type-home-hero) !important;
}

body[data-design="enterprise"] main :is(h2, .section-heading) {
  font-size: var(--type-h2) !important;
  line-height: var(--type-line-h2) !important;
}

body[data-design="enterprise"] main h3 {
  font-size: var(--type-h3) !important;
  line-height: var(--type-line-h3) !important;
}

/* Semantic H2s inside summaries/cards keep the compact visual role. */
body[data-design="enterprise"] main :is(
  .card-heading, .product-card-heading, .card > h2, .card > h3, .feature-panel > h2,
  .aeo-summary > h2, .faq-lite > h2, .compliance-note > h2,
  .answer-summary > h2, .tt-summary > h2, .c100-summary > h2
) {
  font-size: var(--type-h3) !important;
  line-height: var(--type-line-h3) !important;
}

body[data-design="enterprise"] main h4 {
  font-size: var(--type-h4) !important;
  line-height: var(--type-line-h3) !important;
}

body[data-design="enterprise"] main :is(p, li, td, th, label, blockquote) {
  line-height: var(--type-line-body) !important;
}

body[data-design="enterprise"] main :is(p, li) {
  font-size: var(--type-size-body) !important;
}

/* Allow long product names, links and engineering terms to reflow on narrow screens. */
body[data-design="enterprise"] main :is(h1, h2, h3, h4, p, li, dt, dd, blockquote, label) {
  overflow-wrap: anywhere;
}

body[data-design="enterprise"] main p {
  max-inline-size: var(--layout-reading-max);
}

body[data-design="enterprise"] main p + p {
  margin-block-start: var(--type-paragraph-gap);
}

body[data-design="enterprise"] main li + li {
  margin-block-start: var(--type-list-gap);
}

body[data-design="enterprise"] main table {
  font-size: var(--type-size-body-sm);
}

body[data-design="enterprise"] main :is(.page-intro, .lead, .sub, .tt-lead, .ka-lead) {
  max-inline-size: 58ch;
  font-size: var(--type-lead) !important;
  line-height: var(--type-line-lead) !important;
  font-weight: var(--type-weight-regular) !important;
}

body[data-design="enterprise"] main :is(.meta, .eyebrow, .kicker, .section-label, .ka-eyebrow, .tt-eyebrow) {
  font-size: var(--type-size-meta) !important;
  line-height: var(--type-line-caption) !important;
  font-weight: var(--type-weight-semibold) !important;
  letter-spacing: 0.04em !important;
}

body[data-design="enterprise"] main :is(.caption, figcaption, small) {
  font-size: var(--type-size-caption) !important;
  line-height: var(--type-line-caption) !important;
}

body[data-design="enterprise"] main :is(
  a.btn, button.btn, a.button, a.cta, a.primary, a.secondary-cta,
  a.btn-primary, a.btn-secondary, a.btn-ghost, a.btn-accent, a.btn-dark,
  a.btn-blue, a.btn-line, a.cta-blue, a.cta-line,
  a.h-herobtn, a.h-ghost, a.h-accentbtn, a.btn-quote, button.h-editbtn,
  a.tt-primary, a.ka-primary, button[type="submit"]
) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--button-min-height) !important;
  padding: var(--button-pad-y) var(--button-pad-x) !important;
  border-radius: var(--radius-control) !important;
  font-size: var(--type-size-button) !important;
  font-weight: var(--type-weight-button) !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-align: center;
  max-inline-size: 100%;
  min-inline-size: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}

body[data-design="enterprise"] main :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  box-sizing: border-box;
  min-height: var(--button-min-height);
  border-radius: var(--radius-control);
  font-size: var(--type-size-body);
}

/* Text is sized by its reading role, independently of its semantic tag. */
body[data-design="enterprise"] main :is(.card-copy, .product-card-copy),
body[data-design="enterprise"] main :is(.card-copy, .product-card-copy) :is(p, li) {
  font-size: var(--type-size-card-copy) !important;
  line-height: 1.6 !important;
}
body[data-design="enterprise"] main .body-copy {
  font-size: var(--type-size-body) !important;
  line-height: var(--type-line-body) !important;
}
body[data-design="enterprise"] main :is(.compact-heading, .metric-label) {
  font-size: var(--type-h4) !important;
  font-weight: var(--type-weight-semibold) !important;
  line-height: 1.4 !important;
  letter-spacing: -0.01em !important;
}
body[data-design="enterprise"] main .product-spec-group-title {
  font-size: var(--type-size-meta) !important;
  font-weight: var(--type-weight-semibold) !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em !important;
}
body[data-design="enterprise"] main table :is(p, li, td, th) {
  font-size: var(--type-size-body-sm) !important;
  line-height: 1.6 !important;
  overflow-wrap: anywhere;
}
body[data-design="enterprise"] main :is(h1, h2, h3) { margin-block-end: 0.65em; }
body[data-design="enterprise"] main :is(h1, h2) > :is(em, strong) { font-weight: inherit !important; }
body[data-design="enterprise"] main :is(h2, h3, h4) { font-weight: var(--type-weight-semibold) !important; }

/* Explicit utilities only: no generic container or grid overrides. */
body[data-design="enterprise"] .content-container {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--layout-content-max);
  margin-inline: auto;
  padding-inline: var(--layout-gutter);
}

body[data-design="enterprise"] .reading-copy {
  max-inline-size: var(--layout-reading-max);
}

body[data-design="enterprise"] main .readable-muted {
  color: var(--color-text-secondary) !important;
}

/* Keep section destinations visible below the shared sticky navigation. */
body[data-design="enterprise"] main,
body[data-design="enterprise"] main [id] {
  scroll-margin-top: 96px;
}

body[data-design="enterprise"] main > nav.breadcrumbs,
body[data-design="enterprise"] main > nav.page-outline {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--layout-content-max);
  margin-inline: auto;
  padding-inline: var(--layout-gutter);
}

/* A contained main already supplies its own gutters. */
body[data-design="enterprise"] :is(.tt-main, .solution-main) > :is(nav.breadcrumbs, nav.page-outline),
body[data-design="enterprise"][data-page-type="solution"] main > :is(nav.breadcrumbs, nav.page-outline) {
  padding-inline: 0;
}

body[data-design="enterprise"] nav.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  padding-block: 20px;
  font-size: var(--type-size-meta);
  line-height: 1.5;
  color: var(--color-text-secondary);
}

body[data-design="enterprise"] .ar99-pro-attachment-page > nav.breadcrumbs {
  color: #cbd5e1;
}

body[data-design="enterprise"] .sxy-chatbot,
body[data-design="enterprise"] .sxy-chatbot * {
  font-family: var(--font-sans) !important;
}

/* Quiet chapter navigation: text links instead of a second button bar. */
body[data-design="enterprise"] .page-outline { margin-block: 16px 32px; }
body[data-design="enterprise"] .page-outline__links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  padding-block: 12px;
  border-top: 1px solid var(--color-border);
}
body[data-design="enterprise"] .page-outline__links > a {
  display: inline-flex;
  align-items: center;
  min-height: var(--button-min-height);
  padding: 4px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-text-secondary);
  font-size: var(--type-size-meta);
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  text-underline-offset: 5px;
}
body[data-design="enterprise"] .page-outline__links > a:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

body[data-design="enterprise"] main :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--color-primary);
  outline-offset: 3px;
}

@media (max-width: 768px) {
  :root {
    --type-h1: 32px;
    --type-home-hero: 36px;
    --type-h2: 26px;
    --type-h3: 18px;
    --type-lead: 17px;
    --layout-gutter: 20px;
    --layout-section-space: 48px;
    --button-min-height: 48px;
  }

  body[data-design="enterprise"] .page-outline {
    margin-block: 16px 24px;
  }
}

@media (max-width: 520px) {
  body[data-design="enterprise"] .sxy-chatbot-button {
    width: 44px;
    height: 44px;
    right: 12px;
    bottom: 12px;
    font-size: 22px;
  }
}
