/* ==========================================================================
   0. FONT IMPORTS (ASPEKTA & HELVETICA NOW DISPLAY)
   ========================================================================== */
@font-face {
  font-family: 'Helvetica Now Display';
  src: url('https://cdn.prod.website-files.com/6a5e1b2ea7187af913158218/6a5e3ce6b1b1a7bfc13e848e_HelveticaNowDisplay-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Helvetica Now Display';
  src: url('https://cdn.prod.website-files.com/6a5e1b2ea7187af913158218/6a5e2006cf79ff1f024de0e8_HelveticaNowDisplay-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Aspekta';
  src: url('https://cdn.prod.website-files.com/6a5e1b2ea7187af913158218/6a5e21679065f3015fb0b691_Aspekta-400.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Aspekta';
  src: url('https://cdn.prod.website-files.com/6a5e1b2ea7187af913158218/6a5e21675e160993b6e1d1fa_Aspekta-500.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Aspekta';
  src: url('https://cdn.prod.website-files.com/6a5e1b2ea7187af913158218/6a5e2167cbed5e6d6f7a5ca5_Aspekta-700.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ==========================================================================
   SYSTEM DESIGN TOKENS & FOUNDATIONS - PT RAFSTAR LOGISTIC
   Theme: Light Ice-Blue Canvas with Deep Obsidian Navy Contrast
   ========================================================================== */

:root {
  /* --- 1. TYPOGRAPHY FAMILIES --- */
  --font-heading: 'Helvetica Now Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-body: 'Aspekta', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* --- 2. CORE 3 COLORS & FUNCTIONAL EXTENSIONS --- */
  /* A. Electric Royal Blue (Brand Accent) */
  --nx-c-primary: #1b43fe;              /* Base Accent */
  --nx-c-primary-hover: #1234cc;        /* Hover State */
  --nx-c-primary-rgb: 27, 67, 254;
  --nx-c-accent-glow: rgba(27, 67, 254, 0.35);

  /* B. Deep Obsidian Blue (Dark Sections / Headers / Footer) */
  --nx-bg-dark-base: #02091c;          /* Base Dark Canvas */
  --nx-bg-dark-subtle: #06112c;        /* Elevated Dark Surface / Card */
  --nx-bg-dark-surface: #0a1738;       /* Surface Dark Level 2 */

  /* C. Ice Blue Tint (Dominant Light Canvas) */
  --nx-bg-body: #f4f6ff;               /* Base Light Canvas */
  --nx-bg-surface: #ffffff;            /* Pure White untuk Kartu & Konten */

  /* --- 3. TEXT HIERARCHY --- */
  --nx-c-heading: #02091c;             /* Judul Utama di Canvas Terang */
  --nx-c-body: #334155;                /* Slate Pekat untuk Paragraf */
  --nx-c-muted: #64748b;               /* Abu-abu Netral */
  --nx-c-heading-light: #f8fafc;       /* Teks Terang untuk Canvas Gelap */
  --nx-c-muted-light: #94a3b8;         /* Teks Redup Lembut untuk Canvas Gelap */

  /* --- 4. BORDERS & CARD ACCENTS --- */
  --nx-border-subtle: #dbe3fe;         /* Border Terang Halus Berona Biru */
  --nx-card-border: rgba(27, 67, 254, 0.12);   /* Border Kartu dengan Tint Biru */

  /* --- 5. WEBFLOW COMPATIBILITY TOKENS --- */
  --_colors---brand-100: var(--nx-c-primary);
  --_colors---secondary-300: var(--nx-bg-dark-base);
  --_colors---primary-100: var(--nx-bg-surface);
  --_colors---primary-200: var(--nx-bg-body);

  /* --- 6. FLUID TYPE SCALE (CLAMP) --- */
  --nx-fs-display: clamp(2.75rem, 6vw, 4.5rem);
  --nx-fs-h1: clamp(2.25rem, 5vw, 3.5rem);
  --nx-fs-h2: clamp(1.75rem, 3.5vw, 2.5rem);
  --nx-fs-h3: clamp(1.35rem, 2.5vw, 1.85rem);
  --nx-fs-h4: clamp(1.15rem, 1.8vw, 1.35rem);
  --nx-fs-body-lg: 1.125rem;
  --nx-fs-body: 1rem;
  --nx-fs-body-sm: 0.875rem;
  --nx-fs-eyebrow: 0.8125rem;
  --nx-fs-caption: 0.75rem;

  /* Line Heights */
  --nx-lh-tight: 1.1;
  --nx-lh-heading: 1.25;
  --nx-lh-body: 1.6;

  /* --- 7. SPACING SCALE & WEBFLOW MAPPINGS --- */
  --nx-space-xs: 0.75rem;
  --nx-space-sm: 1rem;
  --nx-space-md: 1.5rem;
  --nx-space-lg: 2.5rem;
  --nx-space-xl: 4rem;

  --_sizes---default-size--width: 100%;
  --_sizes---container--max-width: 85rem;
  --_sizes---spacing--spacing-normal: var(--nx-space-md);
  --_sizes---spacing--spacing-medium: 2rem;
  --_sizes---spacing--spacing-big: clamp(2.5rem, 5vw, 5rem);
  --_sizes---spacing--spacing-large: var(--nx-space-lg);
  --_sizes---spacing--spacing-massive: 5rem;

  /* --- 8. UTILITY & TIMING --- */
  --nx-radius-sm: 8px;
  --nx-radius-md: 14px;
  --nx-radius-lg: 20px;
  --nx-radius-pill: 9999px;
  --nx-dur-fast: 200ms;
  --nx-dur-normal: 300ms;
}

/* ==========================================================================
   GLOBAL RESET & VIEWPORT SAFETY
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  height: 100%;
  scroll-behavior: smooth;
}

body {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  background-color: var(--nx-bg-body);
  color: var(--nx-c-body);
  font-family: var(--font-body);
  font-size: var(--nx-fs-body);
  line-height: var(--nx-lh-body);
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* ==========================================================================
   GLOBAL LAYOUT WRAPPERS
   ========================================================================== */
.padding-global {
  width: var(--_sizes---default-size--width);
  max-width: 100%;
  padding-right: var(--_sizes---spacing--spacing-medium);
  padding-left: var(--_sizes---spacing--spacing-medium);
  margin-left: auto;
  margin-right: auto;
}

.container-large {
  width: var(--_sizes---default-size--width);
  max-width: var(--_sizes---container--max-width);
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 768px) {
  .padding-global {
    padding-right: var(--nx-space-sm);
    padding-left: var(--nx-space-sm);
  }
}

/* ==========================================================================
   TYPOGRAPHY UTILITIES
   ========================================================================== */
.nx-display {
  font-family: var(--font-heading);
  font-size: var(--nx-fs-display);
  line-height: var(--nx-lh-tight);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--nx-c-heading);
  text-transform: uppercase;
  margin: 0;
}

.nx-h1 {
  font-family: var(--font-heading);
  font-size: var(--nx-fs-h1);
  line-height: var(--nx-lh-tight);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--nx-c-heading);
  margin: 0;
}

.nx-h2 {
  font-family: var(--font-heading);
  font-size: var(--nx-fs-h2);
  line-height: var(--nx-lh-heading);
  font-weight: 700;
  color: var(--nx-c-heading);
  letter-spacing: -0.02em;
  text-wrap: balance;
  margin: 0;
}

.nx-h3 {
  font-family: var(--font-heading);
  font-size: var(--nx-fs-h3);
  line-height: var(--nx-lh-heading);
  font-weight: 600;
  color: var(--nx-c-heading);
  margin: 0;
}

.nx-body-lg {
  font-family: var(--font-body);
  font-size: var(--nx-fs-body-lg);
  line-height: var(--nx-lh-body);
  color: var(--nx-c-body);
  margin: 0;
}

.nx-body {
  font-family: var(--font-body);
  font-size: var(--nx-fs-body);
  line-height: var(--nx-lh-body);
  color: var(--nx-c-body);
  margin: 0;
}

.nx-body-sm {
  font-family: var(--font-body);
  font-size: var(--nx-fs-body-sm);
  line-height: var(--nx-lh-body);
  color: var(--nx-c-muted);
  margin: 0;
}

.nx-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--font-heading, "Helvetica Now Display", sans-serif);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--nx-c-heading, #02091c);
  line-height: 1.4;
  margin: 0;
}

.nx-eyebrow::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--nx-c-primary, #1b43fe);
  box-shadow: 0 0 8px var(--nx-c-accent-glow);
  flex-shrink: 0;
}

.is-theme-dark .nx-eyebrow {
  color: #ffffff;
}

.is-theme-dark .nx-eyebrow::before {
  background-color: var(--nx-c-primary, #1b43fe);
}

.nx-bracket {
  color: var(--nx-c-muted);
}

.nx-caption {
  font-family: var(--font-body);
  font-size: var(--nx-fs-caption);
  line-height: 1.4;
}

.nx-heading-accent,
.nx-highlight {
  color: var(--nx-c-primary);
  display: inline;
}

/* ==========================================================================
   BUTTON UTILITIES
   ========================================================================== */
.nx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 26px;
  border-radius: var(--nx-radius-pill);
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all var(--nx-dur-fast) ease;
}

.nx-btn-primary {
  background-color: var(--nx-c-primary);
  color: #ffffff;
  border: 1px solid var(--nx-c-primary);
  box-shadow: 0 4px 18px var(--nx-c-accent-glow);
}

.nx-btn-primary:hover {
  background-color: var(--nx-c-primary-hover);
  border-color: var(--nx-c-primary-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(27, 67, 254, 0.45);
}

.nx-btn-secondary {
  background-color: transparent;
  color: var(--nx-c-heading);
  border: 1px solid var(--nx-border-subtle);
}

.nx-btn-secondary:hover {
  background-color: #ffffff;
  border-color: var(--nx-c-primary);
  color: var(--nx-c-primary);
  transform: translateY(-2px);
}

/* ==========================================================================
   ELEGANT ENTRANCE: CINEMATIC SECTION REVEAL (PAGE LOAD)
   ========================================================================== */
@keyframes nxCinematicLift {
  0% {
    opacity: 0;
    transform: translateY(28px) scale(0.985);
    filter: blur(4px);
  }
  60% {
    filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes nxMediaCinematic {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(0.97);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.nx-reveal-section .container-large > * {
  animation: nxCinematicLift 1000ms cubic-bezier(0.16, 1, 0.3, 1) both;
  will-change: transform, opacity;
}

.nx-reveal-section .container-large > *:nth-child(1) { animation-delay: 80ms; }
.nx-reveal-section .container-large > *:nth-child(2) { animation-delay: 200ms; }
.nx-reveal-section .container-large > *:nth-child(3) { animation-delay: 320ms; }
.nx-reveal-section .container-large > *:nth-child(4) { animation-delay: 440ms; }
.nx-reveal-section .container-large > *:nth-child(5) { animation-delay: 560ms; }

.nx-reveal-section .service-header__media,
.nx-reveal-section .fleet-grid,
.nx-reveal-section .services-grid {
  animation: nxMediaCinematic 1200ms cubic-bezier(0.16, 1, 0.3, 1) both !important;
  animation-delay: 420ms !important;
}

/* ==========================================================================
   SCROLL REVEAL & STAGGER DELAY UTILITIES (TAMBAHAN PENTING)
   ========================================================================== */
.nx-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* State Aktif saat masuk viewport */
.nx-reveal.is-inview,
.nx-reveal.is-revealed,
.nx-reveal-section .nx-reveal {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Delay Bertingkat (Stagger) */
.nx-delay-1 {
  transition-delay: 120ms !important;
  animation-delay: 120ms !important;
}

.nx-delay-2 {
  transition-delay: 240ms !important;
  animation-delay: 240ms !important;
}

.nx-delay-3 {
  transition-delay: 360ms !important;
  animation-delay: 360ms !important;
}

.nx-delay-4 {
  transition-delay: 480ms !important;
  animation-delay: 480ms !important;
}

@media (prefers-reduced-motion: reduce) {
  .nx-reveal,
  .nx-reveal-section .container-large > *,
  .nx-reveal-section .service-header__media,
  .nx-reveal-section .fleet-grid,
  .nx-reveal-section .services-grid {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

/* ==========================================================================
   UTILITAS PENGATUR JARAK
   ========================================================================== */
.no-padding-top,
.pt-0 {
  padding-top: 0 !important;
}

/* ==========================================================================
   ELEMENTOR ADMIN EDITOR FIX: BYPASS NX REVEAL & SHUTTER ANIMATIONS
   ========================================================================== */
.elementor-editor-active .nx-reveal,
.elementor-editor-active [data-nx-reveal],
.elementor-editor-active .is-reveal,
.elementor-editor-active [class*="reveal"] {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  clip-path: none !important;
}

.elementor-editor-active .fleet-visual-card::before {
  transform: translateY(105%) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.elementor-editor-active .fleet-visual-img {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.elementor-editor-active .feature-card,
.elementor-editor-active .coverage-card,
.elementor-editor-active .service-card {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* Smooth Scroll Global */
html {
  scroll-behavior: smooth;
}

/* Offset Header Sticky / Navbar (Mencegah Judul Section Tertutup Navbar) */
:target {
  scroll-margin-top: 90px;
}