/* Async-safe font stack — Inter loads without blocking render */
:root {
  --font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'SF Mono', 'Cascadia Code', 'Consolas', monospace;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast: 0.18s;
  --dur-med: 0.32s;
  --dur-slow: 0.55s;
}

body { font-family: var(--font-body); }
h1, h2, h3, h4 { font-family: var(--font-heading); }

.icon {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  color: inherit;
}
.icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.icon--stroke svg { fill: none; stroke: currentColor; stroke-width: 1.75; }
.icon--fill svg { fill: currentColor; stroke: none; }
.icon--sm { width: 1rem; height: 1rem; }
.icon--md { width: 1.5rem; height: 1.5rem; }
.icon--lg { width: 2rem; height: 2rem; }
.icon--xl { width: 2.5rem; height: 2.5rem; }

/* Contained icon shells */
.icon-shell,
.service-icon,
.trust-item__icon,
.doc-icon,
.contact-icon,
.service-list-card .service-icon {
  color: var(--primary);
}
.icon-shell svg,
.service-icon svg,
.trust-item__icon svg,
.doc-icon svg,
.contact-icon svg,
.feature-icon svg,
.step-icon svg {
  width: 55%;
  height: 55%;
}
.trust-item__icon svg,
.doc-icon svg { width: 50%; height: 50%; }

.service-icon svg,
.trust-item__icon svg,
.doc-icon svg,
.contact-icon svg,
.process-card__icon svg,
.process-step__icon svg,
.feature-list .icon svg,
.hero__float-icon svg,
.hero__chip-icon svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.process-step__icon svg { width: 52%; height: 52%; }
[data-icon="i-whatsapp"] svg,
.icon--whatsapp svg {
  fill: currentColor !important;
  stroke: none !important;
}

.reveal {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
.reveal.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }
.reveal--left { transform: translate3d(-24px, 0, 0); }
.reveal--left.is-visible { transform: translate3d(0, 0, 0); }
.reveal--right { transform: translate3d(24px, 0, 0); }
.reveal--right.is-visible { transform: translate3d(0, 0, 0); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1; transform: none; }
  .hero__eyebrow, .hero__line, .hero__lead, .hero__actions, .hero__chips,
  .hero__showcase, .hero__ribbon, .hero__contactbar { animation: none; opacity: 1; transform: none; }
  .hero__marquee-track, .hero__photo { animation: none; }
}

@keyframes heroAurora {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(3%, -2%) scale(1.06); }
  100% { transform: translate(-2%, 3%) scale(0.96); }
}
@keyframes heroOrbFloat {
  0% { transform: translate(0, 0) scale(1); }
  100% { transform: translate(4%, -3%) scale(1.08); }
}
@keyframes heroKenBurnsA {
  0% { background-size: 100% 100%; background-position: 50% 50%; }
  100% { background-size: 112% 112%; background-position: 48% 46%; }
}
@keyframes heroKenBurnsB {
  0% { background-size: 105% 105%; background-position: 60% 50%; }
  100% { background-size: 115% 115%; background-position: 58% 48%; }
}
@keyframes heroRingSpin {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes heroPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(6,95,133,.22); }
  50% { box-shadow: 0 0 0 8px rgba(6,95,133,.08); }
}
@keyframes heroGlowPulse {
  0% { opacity: 0.65; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.06); }
}
@keyframes heroFloatMain {
  0% { transform: translateY(0); }
  100% { transform: translateY(-10px); }
}
@keyframes heroFloatAlt {
  0% { transform: rotate(5deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(-12px); }
}
@keyframes heroFloatBadge {
  0% { transform: translateY(0); }
  100% { transform: translateY(-8px); }
}
@keyframes heroMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@keyframes heroScrollWheel {
  0%, 100% { opacity: 1; transform: translateY(0); }
  50% { opacity: 0.35; transform: translateY(8px); }
}
@keyframes heroLineReveal {
  from { opacity: 0; transform: translate3d(0, 110%, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes heroFadeUp {
  from { opacity: 0; transform: translate3d(0, 20px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

.hero__line {
  animation: heroLineReveal 0.85s var(--ease-out) both;
}
.hero__line--2 { animation-delay: 0.12s; }

.hero__eyebrow { animation: heroFadeUp 0.65s var(--ease-out) 0.04s both; }
.hero__lead { animation: heroFadeUp 0.8s var(--ease-out) 0.28s both; }
.hero__actions { animation: heroFadeUp 0.8s var(--ease-out) 0.38s both; }
.hero__chips { animation: heroFadeUp 0.8s var(--ease-out) 0.48s both; }
.hero__showcase { animation: heroFadeUp 1s var(--ease-out) 0.22s both; }
.hero__ribbon { animation: heroFadeUp 0.85s var(--ease-out) 0.55s both; }
.hero__contactbar { animation: heroFadeUp 0.85s var(--ease-out) 0.62s both; }

@keyframes scrollLine {
  0%, 100% { transform: scaleY(0.3); opacity: 0.4; }
  50% { transform: scaleY(1); opacity: 1; }
}
.service-card__arrow { transition: transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast); opacity: 0.75; display: inline-flex; align-items: center; }
.service-card__arrow svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2; }
.service-card:hover .service-card__arrow { transform: translateX(5px); opacity: 1; }
.card-link .icon svg { fill: none; stroke: currentColor; stroke-width: 2; }

.section-lazy {
  content-visibility: auto;
  contain-intrinsic-size: auto 520px;
  contain: layout style paint;
}

.stagger-children > * {
  opacity: 0; transform: translate3d(0, 16px, 0);
  transition: opacity 0.45s var(--ease-out), transform 0.45s var(--ease-out);
}
.stagger-children.is-visible > * { opacity: 1; transform: translate3d(0, 0, 0); }
.stagger-children.is-visible > *:nth-child(1) { transition-delay: 0ms; }
.stagger-children.is-visible > *:nth-child(2) { transition-delay: 55ms; }
.stagger-children.is-visible > *:nth-child(3) { transition-delay: 110ms; }
.stagger-children.is-visible > *:nth-child(4) { transition-delay: 165ms; }
.stagger-children.is-visible > *:nth-child(5) { transition-delay: 220ms; }
.stagger-children.is-visible > *:nth-child(6) { transition-delay: 275ms; }
.stagger-children.is-visible > *:nth-child(7) { transition-delay: 330ms; }
.stagger-children.is-visible > *:nth-child(8) { transition-delay: 385ms; }
.stagger-children.is-visible > *:nth-child(9) { transition-delay: 440ms; }
.stagger-children.is-visible > *:nth-child(10) { transition-delay: 495ms; }
