/* ==========================================================================
   NAVIONFX — homepage.css
   Homepage-specific styles only.
   All heading / sub / body typography comes from base.css.
   ========================================================================== */
/* HERO */
/* HERO */
.home-hero { position:relative; overflow:hidden; background:#ffffff; }
#hero-dots { position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.home-hero-container { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; min-height:100vh; padding-top:120px; padding-bottom:80px; }
.home-hero-inner { max-width:780px; width:100%; text-align:center; display:flex; flex-direction:column; align-items:center; }
.home-hero-h1 { font-size:clamp(56px,9vw,120px); font-weight:900; line-height:1.0; letter-spacing:-0.04em; color:#0f172a; text-transform:uppercase; margin-bottom:20px; display:flex; flex-direction:column; align-items:center; }
.home-hero-typed { display:block; min-height:clamp(56px,9vw,120px); }
.home-hero-typed .hero-typing-text { color:var(--color-accent); font-size:clamp(56px,9vw,120px); font-weight:900; letter-spacing:-0.04em; text-transform:uppercase; }
.home-hero-typed .typing-cursor { font-size:clamp(56px,9vw,120px); color:var(--color-accent); }
.home-hero-sub { font-size:17px; font-weight:400; color:#374151; line-height:1.7; max-width:560px; margin:0 auto 36px; }
.home-hero-input-row { display:flex; align-items:stretch; max-width:480px; width:100%; margin:0 auto 48px; background:#ffffff; border:1.5px solid #e2e8f0; border-radius:14px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,0.06); }
.home-hero-email { flex:1; border:none; outline:none; padding:14px 20px; font-size:15px; font-family:var(--font); color:#0f172a; background:transparent; }
.home-hero-cta { display:flex; align-items:center; background:var(--color-accent); color:#ffffff; font-size:14px; font-weight:700; padding:14px 24px; white-space:nowrap; text-decoration:none; font-family:var(--font); transition:background 0.2s; }
.home-hero-cta:hover { background:var(--color-accent-dark); }
.home-hero-stats { display:flex; align-items:center; justify-content:center; gap:32px; flex-wrap:wrap; }
.home-hero-stat { text-align:center; }
.home-hero-stat-val { font-size:22px; font-weight:800; color:#0f172a; letter-spacing:-0.04em; }
.home-hero-stat-lbl { font-size:12px; color:#6b7280; font-weight:500; margin-top:2px; }
.home-hero-divider { width:1px; height:32px; background:#e2e8f0; }

@media (max-width:767px) { .home-hero-container { padding-top:100px; padding-bottom:60px; } .home-hero-sub { font-size:15px; } .home-hero-stats { gap:20px; } .home-hero-divider { height:24px; } }
/* PILL */
.hero-pill { display:inline-flex; align-items:center; gap:10px; background:rgba(255,255,255,0.82); border:1px solid rgba(37,99,235,0.18); border-radius:100px; padding:5px 16px 5px 5px; margin-bottom:28px; position:relative; overflow:hidden; box-shadow:0 2px 16px rgba(37,99,235,0.1),0 1px 0 rgba(255,255,255,0.9) inset; cursor:default; transform-origin:center; }
.hero-pill:not(:hover) { animation:pill-entry 0.9s cubic-bezier(0.34,1.56,0.64,1) forwards,pill-breathe 4s ease-in-out 1.5s infinite; }
.hero-pill:hover { transform:scale(1.04); box-shadow:0 6px 28px rgba(37,99,235,0.18),0 1px 0 rgba(255,255,255,0.9) inset; transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1),box-shadow 0.3s ease; animation:none; }
.hero-pill::before { content:''; position:absolute; top:0; left:-100%; width:60%; height:100%; background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,0) 40%,rgba(255,255,255,0.55) 50%,rgba(255,255,255,0) 60%,transparent 100%); animation:pill-shimmer 4s ease-in-out 1.2s infinite; pointer-events:none; z-index:2; }
.hero-pill-badge { display:inline-flex; align-items:center; background:var(--color-accent); color:#fff; font-weight:700; font-size:12px; padding:4px 12px; border-radius:100px; position:relative; overflow:hidden; flex-shrink:0; }
.hero-pill-badge::after { content:''; position:absolute; top:0; left:-80%; width:50%; height:100%; background:linear-gradient(105deg,transparent,rgba(255,255,255,0.35),transparent); animation:badge-shimmer 4s ease-in-out 2.8s infinite; pointer-events:none; }
.hero-pill-text { color:var(--color-text-dark); font-weight:500; font-size:12px; white-space:nowrap; }

@keyframes pill-entry { 0% { transform:scaleX(0.18) scaleY(0.7); opacity:0; } 60% { opacity:1; } 100% { transform:scaleX(1) scaleY(1); opacity:1; } }
@keyframes pill-breathe { 0%,100% { transform:scale(1); box-shadow:0 2px 16px rgba(37,99,235,0.10),0 1px 0 rgba(255,255,255,0.9) inset; } 50% { transform:scale(1.018); box-shadow:0 4px 22px rgba(37,99,235,0.18),0 1px 0 rgba(255,255,255,0.9) inset; } }
@keyframes pill-shimmer { 0% { left:-100%; } 30%,100% { left:140%; } }
@keyframes badge-shimmer { 0% { left:-80%; } 25%,100% { left:140%; } }


/* ── WHY US (.wus-*) ────────────────────────────────────────────────────── */
.wus-section { overflow: hidden; padding: 100px 0; position: relative; }

.wus-layout {
  display: grid;
  grid-template-columns: 60fr 40fr;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
  gap: 64px;
  position: relative;
  z-index: 1;
  min-height: 560px;
}

.wus-left { display: flex; flex-direction: column; gap: 28px; }

/* counter */
.wus-meta { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.wus-meta-cur { font-size: 26px; color: #fff; letter-spacing: -0.03em; line-height: 1; }
.wus-meta-sep { color: rgba(255,255,255,0.2); font-size: 16px; }
.wus-meta-tot { color: rgba(255,255,255,0.28); font-size: 16px; }
.wus-meta-bar { flex: 1; max-width: 140px; height: 2px; background: rgba(255,255,255,0.1); border-radius: 2px; overflow: hidden; margin-left: 6px; }
.wus-meta-bar-fill { height: 100%; background: #3b82f6; border-radius: 2px; width: 20%; transition: width 0.5s cubic-bezier(0.25,0.46,0.45,0.94); }

/* arrows */
.wus-arrows { display: flex; gap: 12px; }
.wus-arrow-btn { width: 56px; height: 56px; border-radius: 50%; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.7); font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; flex-shrink: 0; }
.wus-arrow-btn:hover { background: rgba(255,255,255,0.13); color: #fff; transform: scale(1.07); }
.wus-arrow-btn--filled { background: #2563eb; border-color: #2563eb; color: #fff; }
.wus-arrow-btn--filled:hover { background: #1d4ed8; border-color: #1d4ed8; }

/* track */
.wus-right { overflow: hidden; }
.wus-track-wrap { overflow: hidden; border-radius: 28px; }
.wus-track { display: flex; gap: 20px; transition: transform 0.55s cubic-bezier(0.25,0.46,0.45,0.94); will-change: transform; }

/* card */
.wus-card {
  flex: 0 0 100%;
  min-height: 520px;
  border-radius: 28px;
  padding: 36px 32px 32px;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  background: rgba(37,99,235,0.15);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.18);
  box-shadow:
    0 8px 32px rgba(0,0,0,0.5),
    0 2px 0 rgba(255,255,255,0.2) inset,
    0 -1px 0 rgba(0,0,0,0.4) inset,
    0 0 40px rgba(37,99,235,0.1) inset;
  transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.wus-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.5) 40%, rgba(255,255,255,0.15) 100%);
  z-index: 1;
}
.wus-card::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60%;
  background: linear-gradient(to top, rgba(255,255,255,0.02) 0%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}
.wus-card:hover {
  border-color: rgba(59,130,246,0.45);
  box-shadow:
    0 24px 60px rgba(0,0,0,0.6),
    0 0 0 1px rgba(59,130,246,0.25),
    0 2px 0 rgba(255,255,255,0.25) inset,
    0 -1px 0 rgba(0,0,0,0.4) inset,
    0 0 60px rgba(37,99,235,0.15) inset;
  transform: perspective(1000px) rotateY(-2deg) translateY(-4px);
}

.wus-card-glow { position: absolute; top: -60px; right: -60px; width: 200px; height: 200px; background: radial-gradient(circle, rgba(59,130,246,0.18) 0%, transparent 70%); pointer-events: none; z-index: 0; }
.wus-card-num { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; color: rgba(255,255,255,0.22); flex-shrink: 0; position: relative; z-index: 1; }
.wus-card-img { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 200px; position: relative; z-index: 1; }
.wus-card-img img { width: 180px; height: 180px; object-fit: contain; filter: drop-shadow(0 20px 40px rgba(0,0,0,0.5)) drop-shadow(0 0 20px rgba(59,130,246,0.15)); transition: transform 0.4s ease, filter 0.4s ease; }
.wus-card:hover .wus-card-img img { transform: translateY(-6px) scale(1.04); filter: drop-shadow(0 28px 50px rgba(0,0,0,0.6)) drop-shadow(0 0 30px rgba(59,130,246,0.3)); }
.wus-card-body { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; padding-top: 8px; position: relative; z-index: 1; }
.wus-card-title { font-size: 22px; font-weight: 800; color: #ffffff; line-height: 1.2; margin: 0; letter-spacing: -0.02em; }
.wus-card-desc { font-size: 14px; color: rgba(255,255,255,0.55); line-height: 1.7; margin: 0; }
.wus-stat-num { font-size: 68px; font-weight: 900; color: #ffffff; letter-spacing: -0.06em; line-height: 1; }
.wus-stat-num span { color: rgba(255,255,255,0.3); font-size: 0.65em; }
.wus-stat-lbl { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.35); margin-bottom: 4px; }
.wus-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 4px; }
.wus-tag { font-size: 12px; font-weight: 600; padding: 5px 13px; border-radius: 100px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.16); color: rgba(255,255,255,0.8); backdrop-filter: blur(4px); }

@media (max-width: 1024px) {
  .wus-layout { padding: 0 32px; gap: 40px; }
  .wus-card { min-height: 460px; }
  .wus-card-img img { width: 150px; height: 150px; }
}
@media (max-width: 767px) {
  .wus-section { padding: 64px 0; }
  .wus-layout { grid-template-columns: 1fr; padding: 0 20px; gap: 36px; min-height: unset; }
  .wus-card { min-height: 420px; padding: 28px 24px 24px; }
  .wus-card-img img { width: 130px; height: 130px; }
  .wus-arrow-btn { width: 50px; height: 50px; font-size: 18px; }
  .wus-card:hover { transform: none; }
}


/* ── GLOBAL MARKETS ─────────────────────────────────────────────────────── */
.markets-inner { max-width: 900px; margin: 0 auto; }
.markets-grid  { display: flex; flex-direction: column; gap: 12px; }
.markets-row   { display: flex; gap: 12px; height: 210px; }

.markets-card {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  background: #fff;
  border: 1px solid rgba(59,130,246,0.14);
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 24px rgba(59,130,246,0.07), 0 1px 4px rgba(0,0,0,0.04);
  cursor: pointer;
  will-change: flex-grow;
  transition: flex-grow 0.6s cubic-bezier(0.4,0,0.2,1), box-shadow 0.6s ease, border-color 0.6s ease;
  opacity: 0;
  transform: translateY(18px);
}
.markets-card.entered {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.4,0,0.2,1), flex-grow 0.6s cubic-bezier(0.4,0,0.2,1), box-shadow 0.6s ease, border-color 0.6s ease;
}
.markets-card.active { flex-grow: 2.8; border-color: rgba(59,130,246,0.36); box-shadow: 0 14px 44px rgba(59,130,246,0.12), 0 2px 8px rgba(0,0,0,0.06); flex-direction: row; }
.markets-card::before { content: ''; position: absolute; top: 0; left: 15%; right: 15%; height: 2px; background: linear-gradient(to right, transparent, #3b82f6, transparent); border-radius: 2px; opacity: 0; z-index: 2; transition: opacity 0.6s ease; }
.markets-card.active::before { opacity: 1; }

.markets-card-img { position: relative; flex: 1 1 0; display: flex; align-items: center; justify-content: center; background: #f0f5ff; overflow: hidden; transition: flex 0.6s cubic-bezier(0.4,0,0.2,1), width 0.6s cubic-bezier(0.4,0,0.2,1); border-bottom: 1px solid rgba(59,130,246,0.07); }
.markets-card.active .markets-card-img { flex: 0 0 140px; width: 140px; border-bottom: none; border-right: 1px solid rgba(59,130,246,0.07); }
.markets-card-img img { width: 120px; height: 120px; object-fit: contain; filter: drop-shadow(0 4px 14px rgba(59,130,246,0.15)); transition: transform 0.6s cubic-bezier(0.4,0,0.2,1), filter 0.6s ease, width 0.6s ease, height 0.6s ease; }
.markets-card.active .markets-card-img img { width: 100px; height: 100px; filter: drop-shadow(0 6px 22px rgba(59,130,246,0.28)); }

.markets-card-content { flex-shrink: 0; display: flex; flex-direction: column; justify-content: center; padding: 12px 16px 14px; gap: 5px; overflow: hidden; transition: padding 0.6s ease; }
.markets-card.active .markets-card-content { flex: 1 1 0; padding: 18px 20px; }
.markets-card-name { font-size: 13px; font-weight: 700; color: #0f172a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: font-size 0.6s ease; }
.markets-card.active .markets-card-name { font-size: 16px; white-space: normal; margin-bottom: 2px; }
.markets-card-desc { font-size: 12px; color: #64748b; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; max-height: 0; opacity: 0; transition: max-height 0.55s cubic-bezier(0.4,0,0.2,1), opacity 0.4s ease 0.1s; }
.markets-card.active .markets-card-desc { max-height: 60px; opacity: 1; }
.markets-card-footer { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-top: 4px; }
.markets-stat { font-size: 11px; font-weight: 600; color: #3b82f6; background: rgba(59,130,246,0.08); border: 1px solid rgba(59,130,246,0.15); padding: 3px 10px; border-radius: 100px; white-space: nowrap; }
.markets-binance-tag { font-size: 11px; font-weight: 700; color: #fff; background: #1e293b; border-radius: 100px; padding: 3px 10px; white-space: nowrap; letter-spacing: 0.01em; box-shadow: 0 2px 8px rgba(15,23,42,0.18); }

@media (max-width: 767px) {
  .markets-row { flex-direction: column; height: auto; }
  .markets-card, .markets-card.active { flex: 1 1 auto !important; flex-direction: column !important; }
  .markets-card-img, .markets-card.active .markets-card-img { flex: none !important; width: 100% !important; height: 120px; border-right: none; border-bottom: 1px solid rgba(59,130,246,0.07); }
  .markets-card-desc { max-height: 60px; opacity: 1; }
}


/* ── PRICING — mobile unlock ────────────────────────────────────────────── */
@media (max-width: 767px) {
  .pricing-section.section-vh-xl { height: auto !important; min-height: unset !important; overflow: visible !important; align-items: flex-start; padding-top: 64px; padding-bottom: 64px; }
}


/* ── PLATFORMS (dark section) ───────────────────────────────────────────── */
.platforms-section { position: relative; }
.platforms-section .container { position: relative; z-index: 1; }

.platforms-tabs {
  display: flex;
  justify-content: center;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 100px;
  padding: 5px;
  width: fit-content;
  margin: 0 auto 56px;
}
.platforms-tab {
  padding: 10px 28px;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,0.35);
  cursor: pointer;
  border: none;
  background: transparent;
  font-family: var(--font);
  transition: all 0.25s ease;
  white-space: nowrap;
}
.platforms-tab.active {
  background: rgba(37,99,235,0.25);
  color: #93c5fd;
  border: 1px solid rgba(37,99,235,0.4);
  box-shadow: 0 2px 12px rgba(37,99,235,0.2);
}

.platforms-panel { display: none; }
.platforms-panel.active {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  animation: platforms-panel-in 0.5s cubic-bezier(0.22,1,0.36,1);
}
@keyframes platforms-panel-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.platforms-panel--flip { direction: rtl; }
.platforms-panel--flip > * { direction: ltr; }

.platforms-img {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 40px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.05) inset;
}
.platforms-img img { width: 80%; height: 80%; object-fit: contain; transition: transform 0.5s ease; }
.platforms-panel.active .platforms-img img { transform: scale(1.03); }

.platforms-img-badge {
  position: absolute;
  bottom: 20px; left: 20px;
  z-index: 2;
  background: rgba(15,23,42,0.85);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.platforms-img-badge-dot { width: 8px; height: 8px; background: #22c55e; border-radius: 50%; animation: platforms-dot-pulse 2s infinite; }
@keyframes platforms-dot-pulse { 0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,0.4)} 50%{box-shadow:0 0 0 6px rgba(34,197,94,0)} }
.platforms-img-badge span { font-size: 12px; font-weight: 700; color: #f0f6ff; }

.platforms-text { display: flex; flex-direction: column; gap: 22px; }
.platforms-text-num { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: rgba(96,165,250,0.6); }
.platforms-text h3 { font-size: 34px; font-weight: 800; color: #f0f6ff; letter-spacing: -0.3px; line-height: 1.2; }
.platforms-text h3 span { color: #60a5fa; }
.platforms-text p { font-size: 15px; color: rgba(255,255,255,0.5); line-height: 1.7; }

.platforms-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.platforms-tag { font-size: 11.5px; font-weight: 600; padding: 5px 12px; border-radius: 100px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.7); }
.platforms-tag--soon { background: rgba(250,204,21,0.08); border-color: rgba(250,204,21,0.2); color: #fbbf24; }

.platforms-actions { display: flex; flex-direction: column; gap: 14px; }
.platforms-dl-row { display: flex; gap: 8px; flex-wrap: wrap; }
.platforms-dl-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  font-size: 11.5px;
  font-weight: 600;
  color: #f0f6ff;
  text-decoration: none;
  font-family: var(--font);
  transition: all 0.2s;
}
.platforms-dl-btn:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.22); transform: translateY(-1px); }
.platforms-cta-link { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 700; color: #60a5fa; text-decoration: none; transition: gap 0.2s; }
.platforms-cta-link:hover { gap: 11px; }
.platforms-coming-note { font-size: 13px; color: rgba(255,255,255,0.25); }

@media (max-width: 900px) {
  .platforms-panel.active { grid-template-columns: 1fr; gap: 32px; }
  .platforms-panel--flip { direction: ltr; }
  .platforms-tabs { flex-wrap: wrap; border-radius: 20px; }
  .platforms-text h3 { font-size: 26px; }
}
@media (max-width: 767px) {
  .platforms-tabs { width: 100%; margin: 0 auto 32px; }
  .platforms-tab { padding: 8px 12px; font-size: 11px; flex: 1; text-align: center; }
  .platforms-img-badge { padding: 6px 10px; }
  .platforms-img-badge span { font-size: 10px; }
  .platforms-img-badge-dot { width: 6px; height: 6px; }
  .platforms-text h3 { font-size: 22px; }
  .platforms-text p { font-size: 13px; }
}


/* ── HOW IT WORKS ───────────────────────────────────────────────────────── */
.how-it-works-body { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: start; }
.how-it-works-visual { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 120px; align-self: flex-start; }
.how-it-works-frame { position: relative; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 16/11; background: #f8fafc; box-shadow: 0 0 0 1px rgba(0,0,0,0.06), 0 16px 48px rgba(0,0,0,0.08); width: 80%; margin-left: auto; }
.how-it-works-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.5s ease; }
.how-it-works-img.active { opacity: 1; }
.how-it-works-label { display: flex; justify-content: space-between; align-items: center; padding: 0 4px; margin-left: auto; width: 80%; }
.how-it-works-step-count { font-size: 12px; color: #94a3b8; font-weight: 500; }
.how-it-works-step-name { font-size: 13px; font-weight: 700; color: var(--color-accent); }

.timeline-step { display: flex; gap: 20px; }
.timeline-step-left { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; padding-top: 2px; }
.timeline-dot-wrap { display: flex; flex-direction: column; align-items: center; }
.timeline-dot { width: 14px; height: 14px; border-radius: 50%; background: #e2e8f0; border: 2px solid #e2e8f0; transition: background 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease; flex-shrink: 0; z-index: 1; }
.timeline-step.active .timeline-dot,
.timeline-step.done .timeline-dot { background: var(--color-accent); border-color: var(--color-accent); }
.timeline-step.active .timeline-dot { box-shadow: 0 0 0 4px rgba(37,99,235,0.15), 0 0 0 7px rgba(37,99,235,0.06); }
.timeline-line { width: 2px; height: 80px; background: #e2e8f0; border-radius: 2px; margin: 4px 0; position: relative; overflow: hidden; flex-shrink: 0; }
.timeline-line-fill { position: absolute; top: 0; left: 0; width: 100%; height: 0%; background: var(--color-accent); border-radius: 2px; }
.timeline-step.done .timeline-line-fill { height: 100%; }
.timeline-step.active .timeline-line-fill { animation: timeline-travel 3.6s linear forwards; }
@keyframes timeline-travel { 0% { height: 0%; } 100% { height: 100%; } }

.timeline-content { flex: 1; height: 80px; display: flex; flex-direction: column; justify-content: flex-start; gap: 4px; }
.timeline-num { font-size: 10px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: #cbd5e1; transition: color 0.4s ease; }
.timeline-step.active .timeline-num,
.timeline-step.done .timeline-num { color: var(--color-accent); }
.timeline-title { font-size: 20px; font-weight: 700; color: #cbd5e1; line-height: 1.3; margin: 0; transition: color 0.4s ease; }
.timeline-step.active .timeline-title { color: var(--color-text-dark); }
.timeline-step.done .timeline-title { color: #94a3b8; }
.timeline-desc { font-size: 13px; color: #64748b; line-height: 1.6; margin: 0; opacity: 0; transition: opacity 0.4s ease; }
.timeline-step.active .timeline-desc { opacity: 1; }

@media (max-width: 991px) {
  .how-it-works-body { grid-template-columns: 1fr; gap: 40px; }
  .how-it-works-visual { position: static; }
}
@media (max-width: 767px) {
  .timeline-line { height: 60px; }
  .how-it-works.section-vh-lg { height: auto !important; min-height: unset !important; overflow: visible !important; align-items: flex-start; padding-top: 64px; padding-bottom: 64px; }
  .how-it-works-visual { align-items: center; width: 100%; }
  .how-it-works-frame { width: 100%; margin-left: 0; aspect-ratio: 4/3; }
  .how-it-works-label { width: 100%; margin-left: 0; padding: 0 2px; }
}


/* ── FAQ — mobile unlock ────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .home-faq.section-vh-lg { height: auto !important; min-height: unset !important; overflow: visible !important; align-items: flex-start; padding-top: 64px; padding-bottom: 64px; }
}
