/* ============================================================
   NEXORA INTERNATIONAL - BASE & DESIGN TOKENS
   ============================================================ */

:root {
  --navy:         #062B63;
  --gold:         #C8941A;
  --accent:       #C8941A;
  --white:        #FFFFFF;
  --off-white:    #F7F7F9;
  --charcoal:     #1A1A2E;

  --gray-50:  #FAFAFA;
  --gray-100: #F3F4F6;
  --gray-200: #E5E7EB;
  --gray-300: #D1D5DB;
  --gray-400: #9CA3AF;
  --gray-500: #6B7280;
  --gray-600: #4B5563;
  --gray-700: #374151;
  --gray-800: #1F2937;
  --gray-900: #111827;

  --bg-primary:     #FFFFFF;
  --bg-secondary:   #F5F5F7;
  --text-primary:   #0D1321;
  --text-secondary: #4B5563;
  --body-text:      #374151;
  --border-light:   rgba(0,0,0,0.07);
  --border-strong:  rgba(0,0,0,0.18);
  --error:          #DC2626;
  --success:        #16A34A;

  --font-main: 'Plus Jakarta Sans', system-ui, sans-serif;
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   clamp(1.0625rem, 1.5vw, 1.175rem);
  --text-xl:   clamp(1.125rem, 2vw, 1.375rem);
  --text-2xl:  clamp(1.375rem, 2.5vw, 1.875rem);
  --text-3xl:  clamp(1.875rem, 3.5vw, 2.75rem);
  --text-4xl:  clamp(2.25rem, 4vw, 3.25rem);
  --text-5xl:  clamp(3rem, 7vw, 5rem);

  --sp-2:  0.5rem;
  --sp-4:  1rem;
  --sp-6:  1.5rem;
  --sp-8:  2rem;
  --sp-12: 3rem;
  --sp-16: 4rem;
  --sp-24: 6rem;
  --sp-32: 8rem;

  --radius-sm: 0.25rem;
  --radius-md: 0.625rem;
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;

  --shadow-sm:  0 1px 3px rgba(0,0,0,0.06);
  --shadow-md:  0 4px 16px rgba(0,0,0,0.08);
  --shadow-lg:  0 12px 36px rgba(0,0,0,0.10);
  --shadow-xl:  0 24px 64px rgba(0,0,0,0.12);

  --max-width: 1320px;
  --gutter:    clamp(1.25rem, 4vw, 3rem);

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-fast: 180ms;
  --dur-base: 300ms;
  --dur-slow: 500ms;
}

/* ============================================================
   RESET & FOUNDATION
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-family: var(--font-main);
  background-color: var(--bg-primary);
  color: var(--text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
  overflow-x: hidden; /* prevent horizontal scroll on mobile */
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden; /* prevent horizontal scroll on mobile */
}

main { flex: 1; }

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

svg { display: block; }
ul, ol { list-style: none; }

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out),
              opacity var(--dur-fast) var(--ease-out);
}

button { font-family: inherit; cursor: pointer; }

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.025em;
  color: var(--text-primary);
}

p {
  color: var(--body-text);
  line-height: 1.7;
}

/* ============================================================
   LAYOUT UTILITIES
   ============================================================ */
.container {
  width: 100%;
  max-width: var(--max-width);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.container--narrow { max-width: 780px; }

.section {
  padding-block: var(--sp-32);
  position: relative;
}

.section--off-white { background-color: var(--bg-secondary); }
.section--gray      { background-color: var(--gray-100); }
.section--navy      { background-color: var(--navy); }

.section--navy .section-heading,
.section--navy h2,
.section--navy h3 { color: var(--white); }

.section--navy p,
.section--navy .section-intro { color: rgba(255,255,255,0.75); }

/* Section Decorators */
.section-label {
  display: block;
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gold);
  margin-bottom: 0.75rem;
}

.section-label--light { color: rgba(255,255,255,0.55); }

.section-heading {
  font-size: var(--text-4xl);
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 1rem;
}

.section-intro {
  font-size: var(--text-lg);
  color: var(--gray-600);
  max-width: 640px;
  line-height: 1.75;
}

.gold-rule {
  display: block;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background-color: var(--gold);
  margin-block: 1.5rem;
}

.gold-rule--center { margin-inline: auto; }

/* Skip Link */
.skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  background: var(--navy);
  color: var(--white);
  padding: 0.5rem 1rem;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  font-weight: 700;
  z-index: 9999;
}
.skip-link:focus { top: 0; }

/* Visually Hidden */
.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Breadcrumb */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--gray-500);
  margin-bottom: 1.5rem;
  justify-content: center;
}
.breadcrumb a { color: var(--navy); }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb__sep { color: var(--gray-400); }
.breadcrumb__current { color: var(--gray-500); }

/* ============================================================
   ANIMATION BASE STATES (AnimeJS)
   ============================================================ */
.animate-text .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(18px);
}

.animate-fade-up {
  opacity: 0;
  transform: translateY(28px);
}

.animate-scale-image {
  opacity: 0;
  transform: scale(0.97);
}

/* ==========================================================================
   ENTERPRISE ACCESSIBILITY: Focus States
   ========================================================================== */
*:focus-visible {
  outline: 2px solid var(--gold) !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 4px rgba(200, 148, 26, 0.2) !important;
  transition: outline-offset 0.15s ease, box-shadow 0.15s ease;
}
