/* NTIS base layer — resets, bidirectional defaults, links, utilities.
   Author with logical properties (inline-start/end, block-start/end) so one
   implementation serves Arabic (RTL) and English (LTR). */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* A nested theme island must re-resolve its own ink, not inherit the parent's. */
[data-ntis-theme]{color:var(--text-body)}
h1,h2,h3,h4,h5,h6{margin:0;color:var(--text-strong)}
h1{font:var(--type-h1)}h2{font:var(--type-h2)}h3{font:var(--type-h3)}h4{font:var(--type-h4)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration-color:color-mix(in srgb,var(--text-link) 40%,transparent);text-underline-offset:3px;transition:var(--t-color)}
a:hover{color:var(--text-link-hover);text-decoration-color:currentColor}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
button,input,select,textarea{font:inherit;color:inherit}
img,svg{display:block;max-width:100%}
hr{border:0;border-top:var(--border-hairline) solid var(--border-subtle);margin:var(--space-7) 0}
::selection{background:var(--selection-bg);color:var(--selection-ink)}
code,kbd,pre{font-family:var(--font-mono);font-size:0.9em}
:lang(ar),:dir(rtl){line-height:var(--lh-body);letter-spacing:var(--ls-none)}
/* Western digits in both locales; tabular wherever numbers are compared. */
table,.u-tabular{font-variant-numeric:tabular-nums}

/* Utilities */
.u-eyebrow{font:var(--type-eyebrow);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-muted)}
.u-eyebrow:dir(rtl),.u-eyebrow:lang(ar){letter-spacing:var(--ls-none);text-transform:none}
.u-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Directional glyphs (arrows, chevrons, carets) flip; logos, clocks, checks never do. */
.u-mirror:dir(rtl){transform:scaleX(-1)}
/* Show an element in one theme only (block-level; wrap inline content). */
.u-dark-only{display:var(--show-in-dark)}
.u-light-only{display:var(--show-in-light)}

/* Layout primitives — the responsive grid in tokens/layout.css */
.ntis-container{width:100%;max-width:calc(var(--container-max) + 2 * var(--grid-margin));margin-inline:auto;padding-left:var(--gutter-left);padding-right:var(--gutter-right)}
.ntis-container--narrow{max-width:calc(var(--container-narrow) + 2 * var(--grid-margin))}
.ntis-grid{display:grid;grid-template-columns:repeat(var(--grid-columns),minmax(0,1fr));gap:var(--grid-gutter)}
.ntis-grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
[data-ntis-surface="marketing"]{font:var(--type-body)}
/* Section bands — full-bleed sections separated by a change of surface, never
   by a border, rule or shadow. Alternate base ↔ alt; for the one contrasting
   band, add data-ntis-theme with the opposite theme (a theme island). Never two
   identical bands in a row. */
.ntis-band{background:var(--surface-band);color:var(--text-body);padding-block:var(--section-y);padding-left:var(--gutter-left);padding-right:var(--gutter-right)}
.ntis-band--alt{background:var(--surface-band-alt)}
.ntis-band--hero{background:var(--gradient-hero)}
.ntis-band--sm{padding-block:var(--section-y-sm)}
.ntis-band__inner{max-width:var(--container-max);margin-inline:auto}
.ntis-section{padding-block:var(--section-y)}
.ntis-section--sm{padding-block:var(--section-y-sm)}

/* Mesh grounds (tokens/gradients.css) — large grounds only. Colour sits away
   from the text: physical left in Arabic, mirrored in English. */
.u-mesh-night{background:var(--mesh-night)}.u-mesh-night:dir(ltr){background:var(--mesh-night-mirror)}
.u-mesh-dawn{background:var(--mesh-dawn)}.u-mesh-dawn:dir(ltr){background:var(--mesh-dawn-mirror)}
.u-mesh-brand{background:var(--mesh-brand)}.u-mesh-brand:dir(ltr){background:var(--mesh-brand-mirror)}
.u-mesh-arcs{background:var(--mesh-arcs)}.u-mesh-arcs:dir(ltr){background:var(--mesh-arcs-mirror)}
.u-mesh-paper{background:var(--mesh-paper)}.u-mesh-paper:dir(ltr){background:var(--mesh-paper-mirror)}
.u-mesh-mist{background:var(--mesh-mist)}.u-mesh-mist:dir(ltr){background:var(--mesh-mist-mirror)}
.ntis-band--hero:dir(ltr){background:var(--gradient-hero-mirror)}
