/* =========================================================================
   KLAVEN Landing Page — local styles, on top of SIMCORP design tokens.
   ========================================================================= */

* { box-sizing: border-box; }
/* No global smooth-scroll — we use behavior:'smooth' in JS handlers only,
   so programmatic jumps from tools can land instantly. */
body {
  margin: 0;
  background: var(--bg-page);
  color: var(--fg-1);
  font-family: var(--font-sans);
}
/* Correção anterior (overflow-x:hidden + overflow-y:visible) não resolve:
   pela spec CSS Overflow, sempre que um eixo é "visible" e o outro não,
   o eixo "visible" é computado como "auto" — mesmo quando declarado
   explicitamente. Isso transforma <html> num scroll container próprio e
   quebra position:sticky (o header do menu "some"/trava ao rolar).
   "overflow-x: clip" evita essa conversão por definição (não estabelece
   um eixo de scroll), então overflow-y permanece "visible" de verdade.
   Suportado desde Safari 16 (set/2022), Chrome 90, Firefox 69 — o valor
   "hidden" abaixo é só um fallback para navegadores muito antigos. */
html { overflow-x: hidden; overflow-y: visible; }
@supports (overflow-x: clip) {
  html { overflow-x: clip; overflow-y: visible; }
}

/* ─── Layout primitives ─── */
.container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 28px; }
.section { padding: 112px 0; position: relative; }
.section-tight { padding: 80px 0; }
.section-soft { background: var(--bg-soft); }
.section-dark {
  background:
    radial-gradient(circle at 18% 22%, rgba(132,191,4,0.12), transparent 42%),
    radial-gradient(circle at 88% 80%, rgba(0,121,193,0.18), transparent 50%),
    linear-gradient(135deg, #023b5b 0%, #012a44 100%);
  color: #fff;
}
.section-dark h1,
.section-dark h2,
.section-dark h3 { color: #fff; }
.section-dark p { color: rgba(255,255,255,0.78); }

/* ─── Eyebrow ─── */
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 800;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--sc-blue-900);
  background: rgba(132,191,4,0.18);
  border: 1px solid rgba(132,191,4,0.45);
  padding: 6px 12px;
  border-radius: 999px;
  margin-bottom: 22px;
}
.eyebrow .dot {
  width: 6px; height: 6px; border-radius: 999px;
  background: var(--sc-green-500);
  box-shadow: 0 0 0 3px rgba(132,191,4,0.25);
}
.eyebrow.on-dark {
  color: #fff;
  background: rgba(132,191,4,0.15);
  border-color: rgba(132,191,4,0.55);
}

/* ─── Display headings ─── */
.h-display {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(40px, 5.6vw, 56px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--sc-blue-900);
  margin: 0 0 22px 0;
}
.h-display .accent {
  background: linear-gradient(135deg, #84BF04 0%, #6FA303 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  display: inline-block;
}
.h-section {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(32px, 3.6vw, 52px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--sc-blue-900);
  margin: 0 0 20px 0;
}
.lead-large {
  font-size: 19px;
  line-height: 1.6;
  color: var(--fg-2);
  font-weight: 500;
  max-width: 62ch;
  margin: 0 0 32px 0;
}
.section-head { max-width: 760px; margin: 0 auto 64px; text-align: center; }
.section-head .lead-large { margin-left: auto; margin-right: auto; }

/* ─── Buttons ─── */
.btn {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 15px 26px;
  border-radius: 6px;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: transform var(--duration-base) var(--ease-out),
              box-shadow var(--duration-base) var(--ease-out),
              background var(--duration-base) var(--ease-out),
              color var(--duration-base) var(--ease-out);
  text-decoration: none;
  white-space: nowrap;
}
.btn:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.btn-primary {
  background: var(--sc-green-500);
  color: var(--sc-blue-900);
  box-shadow: 0 6px 18px rgba(132,191,4,0.30);
}
.btn-primary:hover {
  background: linear-gradient(135deg, #84BF04 0%, #6FA303 100%);
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(132,191,4,0.40);
}
.btn-primary:active { transform: translateY(0); }
.btn-secondary {
  background: var(--sc-blue-900);
  color: #fff;
}
.btn-secondary:hover {
  background: linear-gradient(135deg, #024873 0%, #023859 100%);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.btn-ghost {
  background: transparent;
  color: var(--sc-blue-900);
  border: 1.5px solid var(--sc-gray-400);
}
.btn-ghost:hover {
  border-color: var(--sc-blue-900);
  color: var(--sc-blue-900);
  transform: translateY(-1px);
}
.btn-outline-light {
  background: transparent;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,0.4);
}
.btn-outline-light:hover {
  background: #fff;
  color: var(--sc-blue-900);
  border-color: #fff;
}
.btn-link {
  background: transparent; padding: 6px 0;
  text-transform: none; letter-spacing: 0; font-size: 14px;
  color: var(--sc-blue-700);
}
.btn-link:hover { color: var(--sc-green-500); }
.btn .arrow { transition: transform var(--duration-base) var(--ease-out); }
.btn:hover .arrow { transform: translateX(3px); }

/* ─── Cards & primitives ─── */
.card {
  background: #fff;
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  box-shadow: var(--shadow-xs);
  transition: transform var(--duration-base) var(--ease-out),
              box-shadow var(--duration-base) var(--ease-out),
              border-color var(--duration-base) var(--ease-out);
}
.card:hover {
  transform: translateY(-3px);
  border-color: rgba(132,191,4,0.45);
  box-shadow: var(--shadow-md);
}
.pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.04em;
}
.pill .d { width: 6px; height: 6px; border-radius: 50%; }
.pill.success { background: #EAF6D4; color: #4A6E03; }
.pill.success .d { background: #84BF04; }
.pill.info    { background: #DDEEF8; color: #024873; }
.pill.info .d { background: #0079C1; }
.pill.warn    { background: #FCEED9; color: #8A4F0C; }
.pill.warn .d { background: #E67E22; }
.pill.muted   { background: #EFF1EF; color: #4D4D4D; }
.pill.muted .d { background: #B3B3B3; }

/* ─── Reveal: no-op (content visible always). We had a fade-in animation
   here but the iframe screenshot tooling captures it stuck at frame 0,
   which hides content. Keep .reveal as a placeholder hook for future use. */
.reveal { opacity: 1; }

/* ─── Grain texture for hero, light ─── */
.grain {
  position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
  background-image:
    radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 3px 3px;
}

/* ─── Subtle KLAVEN dotted background ─── */
.dotted-bg {
  background-image: radial-gradient(rgba(2,56,89,0.10) 1px, transparent 1px);
  background-size: 22px 22px;
  background-position: -11px -11px;
}

/* ─── Floating cards animation ─── */
@keyframes float-soft {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.85); }
}
@keyframes slide-in-card {
  from { opacity: 0; transform: translateY(12px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes ticker {
  0% { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}
@keyframes spin-slow {
  to { transform: rotate(360deg); }
}
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.shimmer {
  background: linear-gradient(90deg, transparent, rgba(132,191,4,0.18), transparent);
  background-size: 200% 100%;
  animation: shimmer 2.4s linear infinite;
}

/* ─── Scrollbar polish for embedded mock ─── */
.mock-scroll::-webkit-scrollbar { width: 6px; height: 6px; }
.mock-scroll::-webkit-scrollbar-thumb { background: rgba(2,56,89,0.18); border-radius: 999px; }

/* ─── Small util ─── */
.divider { height: 1px; background: var(--border-subtle); }
.kicker {
  font-size: 11px; font-weight: 800; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--sc-green-500);
}
.text-muted { color: var(--fg-3); }
.mono { font-family: var(--font-mono); }

/* ─── Responsive ─── */
@media (max-width: 960px) {
  .section { padding: 80px 0; }
  .container { padding: 0 20px; }
}
