/* Structural foundation; all shared custom properties live in tokens.css. */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  min-width: 320px;
  background: var(--color-light-gray);
  color: var(--color-charcoal);
  font-family: var(--font-ui);
  font-size: var(--text-body-size);
  line-height: var(--text-body-line);
  font-weight: var(--font-weight-regular);
}

/* One document clearance for the viewport-owned mobile header. */
@media (max-width: 1023px) {
  body { padding-top: var(--shell-header-height-mobile); }
}

img, svg, video, canvas { display: block; max-width: 100%; height: auto; }

button, input, select, textarea { font: inherit; color: inherit; }

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

.type-display {
  font-family: var(--font-display);
  font-size: var(--text-display-mobile-size);
  line-height: var(--text-display-mobile-line);
  font-weight: var(--font-weight-bold);
}

.type-h1-product { font-size: var(--text-h1-size); line-height: var(--text-h1-line); font-weight: var(--font-weight-bold); }
.type-h2 { font-size: var(--text-h2-size); line-height: var(--text-h2-line); font-weight: var(--font-weight-semibold); }
.type-h3 { font-size: var(--text-h3-size); line-height: var(--text-h3-line); font-weight: var(--font-weight-semibold); }
.type-h4 { font-size: var(--text-h4-size); line-height: var(--text-h4-line); font-weight: var(--font-weight-semibold); }
.type-body-large { font-size: var(--text-body-lg-size); line-height: var(--text-body-lg-line); font-weight: var(--font-weight-regular); }
.type-body { font-size: var(--text-body-size); line-height: var(--text-body-line); font-weight: var(--font-weight-regular); }
.type-small { font-size: var(--text-small-size); line-height: var(--text-small-line); font-weight: var(--font-weight-regular); }
.type-caption { font-size: var(--text-caption-size); line-height: var(--text-caption-line); font-weight: var(--font-weight-regular); }
.u-tabular-nums { font-variant-numeric: tabular-nums; }

.container {
  width: min(100% - (var(--container-padding-mobile) * 2), var(--container-desktop));
  margin-inline: auto;
}

.container-fluid {
  width: var(--container-fluid);
  padding-inline: var(--container-padding-mobile);
}

.grid-12 {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
}

.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }
.gap-xl { gap: var(--space-xl); }
.gap-2xl { gap: var(--space-2xl); }
.gap-3xl { gap: var(--space-3xl); }

.section { padding-block: var(--space-5xl); }
.section-compact { padding-block: var(--space-3xl); }

@media (min-width: 768px) {
  .type-display {
    font-size: var(--text-display-size);
    line-height: var(--text-display-line);
  }

  .container { width: min(100% - (var(--container-padding-tablet) * 2), var(--container-tablet)); }
  .container-fluid { padding-inline: var(--container-padding-tablet); }
  .grid-12 { gap: var(--space-xl); }
}

@media (min-width: 1280px) {
  .container { width: min(100% - (var(--container-padding-desktop) * 2), var(--container-desktop)); }
  .container-fluid { padding-inline: var(--container-padding-desktop); }
  .section { padding-block: var(--space-6xl); }
}

.ag-skip-link {
  position: fixed;
  inset-block-start: var(--space-sm);
  inset-inline-start: var(--space-sm);
  z-index: var(--z-overlay);
  padding: var(--space-md) var(--space-lg);
  border-radius: var(--radius-md);
  background: var(--color-deep-navy);
  color: var(--color-warm-white);
  transform: translateY(-200%);
}
.ag-skip-link:focus {
  transform: translateY(0);
  outline: 0;
  box-shadow: var(--control-focus-ring, 0 0 0 3px var(--color-caspian-blue));
}


/* Runtime-safe global behavior formerly supplied by runtime-base.css. */
html{overflow-x:clip;scroll-behavior:smooth}body{overflow-wrap:anywhere;background:var(--ag-surface-muted)}
main{min-width:0}a,button,input,select,textarea{accent-color:var(--ag-gold-500)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-caspian-blue);outline-offset:3px}
.ag-runtime-container{width:min(calc(100% - (2 * var(--ag-gutter))),var(--ag-content));margin-inline:auto}
.ag-eyebrow{margin:0;color:var(--ag-gold-600);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ag-neutral-page{min-height:58vh;display:grid;place-items:center;padding:clamp(40px,8vw,96px) var(--ag-gutter)}
.ag-neutral-page .ag-empty-state{width:min(100%,680px);text-align:center}
.ag-card,.ag-shell-section,.ag-empty-state{border:1px solid var(--ag-line);border-radius:var(--ag-radius-lg);background:var(--ag-surface-raised);box-shadow:var(--ag-shadow-card)}
.ag-status,.ag-badge{white-space:normal;overflow-wrap:anywhere}
@media(max-width:390px){.ag-runtime-container{width:calc(100% - 32px)}.ag-card,.ag-shell-section,.ag-empty-state{border-radius:var(--ag-radius-md)}}
