/*
 * LARUS public design foundations v1.1.2
 * Shared tokens and opt-in primitives. Page-family visuals remain page-owned.
 */
@font-face {
  font-family: "LARUS Public Sans";
  src: url("../fonts/PublicSans-Regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "LARUS Public Sans";
  src: url("../fonts/PublicSans-Medium.otf") format("opentype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "LARUS Public Sans";
  src: url("../fonts/PublicSans-Bold.otf") format("opentype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --larus-ink: #0f2037;
  --larus-ink-soft: #33455e;
  --larus-muted: #516176;
  --larus-line: #d8e0e9;
  --larus-line-strong: #b8c5d4;
  --larus-surface: #ffffff;
  --larus-surface-subtle: #f5f7fa;
  --larus-surface-accent: #eef5fc;
  --larus-action: #0066cc;
  --larus-action-hover: #004e9a;
  --larus-success: #147a52;
  --larus-warning: #9a5b00;
  --larus-danger: #b42318;
  --larus-focus: #ffbf47;

  --larus-font-sans: "LARUS Public Sans", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Arial, sans-serif;
  --larus-font-cjk: "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei",
    "Hiragino Sans GB", sans-serif;
  --larus-font-arabic: "Noto Sans Arabic", Tahoma, "Segoe UI", Arial,
    sans-serif;
  --larus-font-body: var(--larus-font-sans);
  --larus-font-heading: var(--larus-font-sans);
  --larus-body-leading: 1.6;
  --larus-heading-leading: 1.08;
  --larus-heading-tracking: -0.018em;
  --larus-display-leading: 1.02;
  --larus-display-tracking: -0.052em;
  --larus-eyebrow-tracking: 0.02em;
  --larus-eyebrow-transform: uppercase;
  --larus-text-xs: 0.75rem;
  --larus-text-sm: 0.875rem;
  --larus-text-base: 1rem;
  --larus-text-lg: 1.125rem;
  --larus-text-xl: 1.375rem;
  --larus-text-2xl: clamp(1.75rem, 2.4vw, 2.5rem);
  --larus-text-display: clamp(2.25rem, 4.5vw, 4.5rem);

  --larus-space-1: 0.25rem;
  --larus-space-2: 0.5rem;
  --larus-space-3: 0.75rem;
  --larus-space-4: 1rem;
  --larus-space-6: 1.5rem;
  --larus-space-8: 2rem;
  --larus-space-12: 3rem;
  --larus-space-16: 4rem;
  --larus-space-24: 6rem;

  --larus-radius-sm: 0.375rem;
  --larus-radius-md: 0.5rem;
  --larus-radius-lg: 0.75rem;
  --larus-shadow-sm: 0 1px 2px rgba(15, 32, 55, 0.08);
  --larus-shadow-md: 0 12px 30px rgba(15, 32, 55, 0.12);
  --larus-content: 75rem;
  --larus-shell: 80rem;
  --larus-prose: 68ch;
  --larus-header-height: 6.75rem;
  --larus-motion-fast: 160ms;
  --larus-motion-base: 220ms;
}

html {
  color: var(--larus-ink);
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--larus-header-height) + var(--larus-space-4));
}

body.larus-site {
  min-width: 20rem;
  background: var(--larus-surface);
  color: var(--larus-ink);
  font-family: var(--larus-font-body);
  font-size: var(--larus-text-base);
  line-height: var(--larus-body-leading);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

html[data-larus-typography="cjk"] body.larus-site {
  --larus-font-body: var(--larus-font-cjk);
  --larus-font-heading: var(--larus-font-cjk);
  --larus-body-leading: 1.75;
  --larus-heading-leading: 1.18;
  --larus-heading-tracking: -0.012em;
  --larus-display-leading: 1.16;
  --larus-display-tracking: -0.012em;
  --larus-eyebrow-tracking: 0.04em;
  --larus-eyebrow-transform: none;
  line-break: strict;
}

html[data-larus-typography="arabic"] body.larus-site {
  --larus-font-body: var(--larus-font-arabic);
  --larus-font-heading: var(--larus-font-arabic);
  --larus-body-leading: 1.8;
  --larus-heading-leading: 1.24;
  --larus-heading-tracking: 0;
  --larus-display-leading: 1.22;
  --larus-display-tracking: 0;
  --larus-eyebrow-tracking: 0;
  --larus-eyebrow-transform: none;
}

html[data-larus-typography="turkic"] body.larus-site {
  --larus-body-leading: 1.65;
  --larus-heading-leading: 1.1;
  --larus-heading-tracking: -0.012em;
  --larus-display-leading: 1.08;
  --larus-display-tracking: -0.012em;
  --larus-eyebrow-transform: none;
}

body.larus-site *,
body.larus-site *::before,
body.larus-site *::after {
  box-sizing: border-box;
}

body.larus-site img,
body.larus-site svg,
body.larus-site video {
  max-width: 100%;
}

body.larus-site :where(h1, h2, h3, h4) {
  font-family: var(--larus-font-heading);
  font-weight: 700;
  line-height: var(--larus-heading-leading);
  letter-spacing: var(--larus-heading-tracking);
  text-wrap: balance;
}

body.larus-site :where(p, li) {
  text-wrap: pretty;
}

body.larus-site :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--larus-focus);
  outline-offset: 2px;
  box-shadow: 0 0 0 7px var(--larus-ink);
}

.larus-skip-link {
  position: fixed;
  inset-block-start: var(--larus-space-3);
  inset-inline-start: var(--larus-space-3);
  z-index: 100000;
  padding: var(--larus-space-3) var(--larus-space-4);
  border-radius: var(--larus-radius-sm);
  background: var(--larus-ink);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transform: translateY(calc(-100% - var(--larus-space-6)));
  transition: transform var(--larus-motion-fast) ease;
}

.larus-skip-link:focus-visible {
  color: #fff;
  transform: translateY(0);
}

#main-content {
  scroll-margin-top: calc(var(--larus-header-height) + var(--larus-space-4));
}

body.larus-site :where(h1, h2, h3, h4, h5, h6)[id] {
  scroll-margin-top: calc(var(--larus-header-height) + var(--larus-space-4));
}

/* Shared layout primitives for subsequent page-family work. */
.larus-container {
  width: min(calc(100% - 2rem), var(--larus-content));
  margin-inline: auto;
}

.larus-container--wide {
  max-width: var(--larus-shell);
}

.larus-prose {
  max-width: var(--larus-prose);
}

.larus-stack > * {
  margin-block: 0;
}

.larus-stack > * + * {
  margin-block-start: var(--larus-stack-space, var(--larus-space-6));
}

.larus-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--larus-cluster-space, var(--larus-space-4));
}

.larus-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  gap: var(--larus-grid-space, var(--larus-space-6));
}

.larus-section {
  padding-block: clamp(var(--larus-space-12), 7vw, var(--larus-space-24));
}

.larus-eyebrow {
  color: var(--larus-action);
  font-size: var(--larus-text-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.larus-heading--display {
  max-width: 18ch;
  margin: 0;
  font-size: var(--larus-text-display);
  line-height: 1.05;
}

.larus-heading--section {
  max-width: 28ch;
  margin: 0;
  font-size: var(--larus-text-2xl);
  line-height: 1.16;
}

.larus-lead {
  max-width: 60ch;
  color: var(--larus-muted);
  font-size: var(--larus-text-lg);
  line-height: 1.65;
}

.larus-button {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: var(--larus-space-2);
  padding: 0.65rem 1.125rem;
  border: 1px solid transparent;
  border-radius: var(--larus-radius-sm);
  font: inherit;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  touch-action: manipulation;
  transition: background-color var(--larus-motion-fast) ease,
    border-color var(--larus-motion-fast) ease, color var(--larus-motion-fast) ease;
}

.larus-button--primary {
  background: var(--larus-action);
  color: #fff;
}

.larus-button--primary:hover {
  background: var(--larus-action-hover);
  color: #fff;
  text-decoration: none;
}

.larus-button--secondary {
  border-color: var(--larus-line-strong);
  background: var(--larus-surface);
  color: var(--larus-ink);
}

.larus-button--secondary:hover {
  border-color: var(--larus-action);
  color: var(--larus-action-hover);
  text-decoration: none;
}

.larus-card {
  padding: clamp(var(--larus-space-6), 3vw, var(--larus-space-8));
  border: 1px solid var(--larus-line);
  border-radius: var(--larus-radius-lg);
  background: var(--larus-surface);
  box-shadow: var(--larus-shadow-sm);
}

.larus-stat {
  display: grid;
  gap: var(--larus-space-1);
}

.larus-stat__value {
  color: var(--larus-ink);
  font-size: var(--larus-text-2xl);
  font-weight: 700;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

.larus-stat__label {
  color: var(--larus-muted);
  font-size: var(--larus-text-sm);
}

.larus-field {
  display: grid;
  gap: var(--larus-space-2);
}

.larus-field__label {
  color: var(--larus-ink);
  font-weight: 700;
}

.larus-input {
  min-height: 2.75rem;
  width: 100%;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--larus-line-strong);
  border-radius: var(--larus-radius-sm);
  background: var(--larus-surface);
  color: var(--larus-ink);
}

.larus-input:hover {
  border-color: var(--larus-muted);
}

.larus-field__hint {
  color: var(--larus-muted);
  font-size: var(--larus-text-sm);
}

.larus-field__error {
  color: var(--larus-danger);
  font-size: var(--larus-text-sm);
  font-weight: 700;
}

.larus-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--larus-line);
  border-radius: var(--larus-radius-md);
}

.larus-table {
  width: 100%;
  min-width: 40rem;
  border-collapse: collapse;
  background: var(--larus-surface);
}

.larus-table :where(th, td) {
  padding: var(--larus-space-3) var(--larus-space-4);
  border-block-end: 1px solid var(--larus-line);
  text-align: start;
  vertical-align: top;
}

.larus-table th {
  background: var(--larus-surface-subtle);
  color: var(--larus-ink);
  font-size: var(--larus-text-sm);
  font-weight: 700;
}

/* Existing production shell: restrained visual alignment without page rewrites. */
body.larus-site #ln-header {
  --ln-text: var(--larus-ink);
  --ln-text-soft: var(--larus-muted);
  --ln-line: rgba(15, 32, 55, 0.14);
  --ln-accent: var(--larus-action);
  --ln-accent-strong: var(--larus-action-hover);
  --ln-shadow: var(--larus-shadow-sm);
  min-height: var(--larus-header-height);
  border-block-end: 1px solid rgba(15, 32, 55, 0.1);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 1px 0 rgba(15, 32, 55, 0.04);
  color: var(--larus-ink);
}

body.larus-site #ln-header .ln-shell {
  width: min(calc(100% - 2rem), var(--larus-shell));
  margin-inline: auto;
}

body.larus-site #ln-header :where(a, button) {
  font-family: inherit;
  touch-action: manipulation;
}

body.larus-site #ln-header .ln-mobile-scroll {
  overscroll-behavior: contain;
}

body.larus-site #ln-header .ln-top-row {
  box-shadow: none;
}

body.larus-site #ln-header .ln-main-row {
  border-radius: var(--larus-radius-lg);
  box-shadow: var(--larus-shadow-sm);
}

body.larus-site #ln-header .ln-social-btn {
  min-width: 2rem;
  min-height: 2rem;
}

body.larus-site #ln-header .ln-menu-toggle {
  min-height: 2.75rem;
}

body.larus-site #ln-header :where(a, button)[class*="primary"],
body.larus-site #ln-header :where(a, button)[class*="cta"] {
  min-height: 3rem;
  border-radius: var(--larus-radius-sm);
  background: var(--larus-action);
  color: #fff;
}

body.larus-site #ln-header :where(a, button)[class*="primary"]:hover,
body.larus-site #ln-header :where(a, button)[class*="cta"]:hover {
  background: var(--larus-action-hover);
  color: #fff;
}

body.larus-site #ln-header :where(.ln-drop-menu, .dropdown-menu, [class*="menu-panel"]) {
  border-color: var(--larus-line);
  border-radius: var(--larus-radius-md);
  box-shadow: var(--larus-shadow-md);
}

body.larus-site .contact {
  color: var(--larus-ink);
  font-family: inherit;
}

body.larus-site .site-footer {
  background: var(--larus-ink);
  color: #dbe4ee;
  font-family: inherit;
}

body.larus-site .site-footer :where(h2, h3, h4) {
  color: #fff;
}

body.larus-site .site-footer a {
  color: #dbe4ee;
  text-decoration-color: rgba(219, 228, 238, 0.45);
  text-underline-offset: 0.18em;
}

body.larus-site .site-footer a:hover {
  color: #fff;
  text-decoration-color: #fff;
}

body.larus-site .footer-bottom {
  border-block-start-color: rgba(255, 255, 255, 0.18);
  background: #0a1728;
  color: #dbe4ee;
  font-family: inherit;
}

[dir="rtl"] body.larus-site #ln-header .ln-shell,
[dir="rtl"] body.larus-site .larus-cluster {
  direction: rtl;
}

[dir="rtl"] body.larus-site :where(.dropdown-menu, [class*="menu-panel"]) {
  text-align: start;
}

[dir="rtl"] body.larus-site #ln-header .ln-drop-menu {
  right: 0;
  left: auto;
  text-align: start;
}

[dir="rtl"] body.larus-site #ln-header .ln-language-dropdown .ln-drop-menu,
[dir="rtl"] body.larus-site #ln-header .ln-utility > .ln-dropdown:last-child .ln-drop-menu {
  right: auto;
  left: 0;
}

[dir="rtl"] body.larus-site #ln-header .ln-mobile-group summary::after {
  right: auto;
  left: 0.625rem;
}

@media (max-width: 767px) {
  :root {
    --larus-header-height: 4.5rem;
  }

  html {
    scroll-behavior: auto;
  }

  .larus-container,
  body.larus-site #ln-header .ln-shell {
    width: min(calc(100% - 1.5rem), var(--larus-content));
  }

  .larus-button {
    width: 100%;
  }

  body.larus-site #ln-header :where(a, button) {
    min-height: 2.75rem;
  }

  body.larus-site #ln-header :where(.ln-mobile-panel, [class*="drawer"], [class*="panel"]) {
    padding-block-end: max(var(--larus-space-6), env(safe-area-inset-bottom));
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body.larus-site *,
  body.larus-site *::before,
  body.larus-site *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media (forced-colors: active) {
  .larus-button,
  .larus-card,
  .larus-input,
  .larus-table-wrap {
    border: 1px solid CanvasText;
  }
}
