@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap');

:root {
  --arvi-blue: #003A70;
  --arvi-green: #22C55E;
  --arvi-violet: #7C3AED;
  --arvi-cyan: #06B6D4;
  --tech-950: #0B1424;
  --tech-900: #101D32;
  --tech-800: #1C2D45;
  --tech-700: #334863;
  --tech-500: #64748B;
  --tech-300: #CBD5E1;
  --tech-100: #EEF2F7;
  --premium-white: #F8FAFC;
  --white: #FFFFFF;
  --ink: #101D32;
  --muted: #64748B;
  --line: #DCE5EE;
  --blue-soft: #EAF3FA;
  --green-soft: #EAF9F0;
  --cyan-soft: #E8F9FC;
  --violet-soft: #F2EDFD;
  --shadow-sm: 0 10px 28px rgba(0, 58, 112, .08);
  --shadow-md: 0 22px 58px rgba(0, 58, 112, .12);
  --radius: 20px;
  --logo-url: url('https://res.cloudinary.com/dmh6nxvur/image/upload/c_crop,x_270,y_315,w_970,h_350/v1788451856/arvi/brand/logo-arvi.png');
  --isotipo-url: url('https://res.cloudinary.com/dmh6nxvur/image/upload/c_crop,x_520,y_220,w_550,h_530/v1788451865/arvi/brand/isotipo-a.png');

  /* Backwards-compatible aliases for first SEO drafts. */
  --soft: var(--tech-100);
  --green-strong: var(--arvi-green);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--premium-white); }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--premium-white);
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
img { max-width: 100%; }
.container { width: min(1180px, calc(100% - 36px)); margin: 0 auto; }

/* Official ARVI wordmark. */
.brand {
  flex: 0 0 auto;
  display: block;
  width: 142px;
  height: 52px;
  overflow: hidden;
  color: transparent !important;
  font-size: 0 !important;
  text-decoration: none;
  background-image: var(--logo-url);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.brand > * { display: none !important; }
.brand:hover { opacity: .94; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(248,250,252,.94);
  border-bottom: 1px solid rgba(203,213,225,.72);
  backdrop-filter: blur(18px);
}
.nav-wrap { min-height: 76px; display: flex; align-items: center; gap: 28px; }
.nav-links { margin-left: auto; display: flex; align-items: center; gap: 24px; }
.nav-links a { color: var(--tech-700); text-decoration: none; font-size: 13px; font-weight: 700; }
.nav-links a:hover { color: var(--arvi-blue); }

.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  text-decoration: none;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.button:hover { transform: translateY(-1px); }
.button-small { min-height: 42px; padding: 10px 17px; font-size: 12px; }
.button-primary { color: #07160C; background: var(--arvi-green); box-shadow: 0 12px 28px rgba(34,197,94,.20); }
.button-primary:hover { background: #1FB257; box-shadow: 0 15px 32px rgba(34,197,94,.26); }
.button-secondary { color: var(--arvi-blue); background: var(--white); border-color: rgba(0,58,112,.22); }
.button-secondary:hover { border-color: rgba(0,58,112,.42); box-shadow: var(--shadow-sm); }
.dark-section .button-secondary,
.cta-box .button-secondary,
.page-hero .button-secondary,
.article-hero .button-secondary { color: var(--white); background: transparent; border-color: rgba(255,255,255,.28); }

.eyebrow {
  margin: 0 0 14px;
  color: var(--arvi-cyan);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.eyebrow.dark { color: var(--arvi-blue); }

.hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 84% 14%, rgba(6,182,212,.08), transparent 24%),
    radial-gradient(circle at 76% 48%, rgba(124,58,237,.07), transparent 26%),
    var(--premium-white);
}
.hero-grid {
  min-height: 690px;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  align-items: center;
  gap: clamp(38px,6vw,86px);
  padding: 74px 0 86px;
}
.hero-copy { position: relative; z-index: 2; }
.hero h1 {
  max-width: 760px;
  margin: 0;
  color: var(--tech-950);
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: clamp(46px,6vw,76px);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -.028em !important;
}
.hero h1 .brand-emphasis { color: var(--arvi-blue); }
.hero h1 .action-emphasis,
.hero h1 > span { color: var(--arvi-green); }
.hero-lead {
  max-width: 700px;
  margin: 24px 0 0;
  color: var(--tech-700);
  font-size: clamp(17px,1.8vw,20px);
  line-height: 1.7;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.hero-actions.centered { justify-content: center; }
.trust-row { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 31px; }
.trust-row span { padding: 8px 11px; border-radius: 999px; color: var(--tech-700); background: var(--white); border: 1px solid var(--line); font-size: 12px; font-weight: 600; }

.mascot-stage {
  position: relative;
  min-height: 548px;
  overflow: hidden;
  border-radius: 34px;
  background:
    radial-gradient(circle at 68% 20%, rgba(124,58,237,.30), transparent 24%),
    radial-gradient(circle at 20% 72%, rgba(6,182,212,.24), transparent 30%),
    linear-gradient(145deg,var(--tech-950) 0%,#0C2340 56%,var(--arvi-blue) 100%);
  box-shadow: var(--shadow-md);
}
.mascot-stage::before { content:""; position:absolute; inset:22px; border:1px solid rgba(255,255,255,.09); border-radius:25px; pointer-events:none; }
.mascot-stage::after { content:""; position:absolute; width:250px; height:250px; right:-70px; bottom:-90px; border-radius:50%; background:rgba(34,197,94,.12); }
.mascot-image-wrap { position:absolute; inset:-55px -210px -85px -190px; display:grid; place-items:center; pointer-events:none; }
.mascot-image { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 22px 34px rgba(0,0,0,.20)); }
.mascot-label { position:absolute; left:28px; top:28px; z-index:4; display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid rgba(255,255,255,.12); border-radius:999px; color:#DCEAF5; background:rgba(11,20,36,.54); backdrop-filter:blur(12px); font-size:12px; font-weight:700; }
.mascot-label::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--arvi-green); box-shadow:0 0 0 5px rgba(34,197,94,.13); }
.stage-chip { position:absolute; z-index:5; max-width:220px; padding:13px 15px; border:1px solid rgba(255,255,255,.13); border-radius:17px; color:var(--white); background:rgba(11,20,36,.72); backdrop-filter:blur(14px); box-shadow:0 16px 34px rgba(0,0,0,.14); }
.stage-chip strong { display:block; font-family:"Plus Jakarta Sans",sans-serif; font-size:13px; }
.stage-chip span { display:block; margin-top:4px; color:#B7CBDB; font-size:11px; line-height:1.45; }
.stage-chip.one { right:22px; top:95px; border-left:3px solid var(--arvi-cyan); }
.stage-chip.two { left:22px; bottom:104px; border-left:3px solid var(--arvi-violet); }
.stage-chip.three { right:22px; bottom:29px; border-left:3px solid var(--arvi-green); }

.proof-strip { padding:0 0 22px; background:var(--premium-white); }
.proof-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--line); box-shadow:var(--shadow-sm); }
.proof-item { padding:21px; background:var(--white); }
.proof-item strong { display:block; color:var(--arvi-blue); font-family:"Plus Jakarta Sans",sans-serif; font-size:14px; }
.proof-item span { display:block; margin-top:5px; color:var(--muted); font-size:12px; line-height:1.5; }

.section { padding:90px 0; }
.light { background:var(--premium-white); }
.soft-section { background:var(--tech-100); }
.dark-section { position:relative; overflow:hidden; color:var(--white); background:radial-gradient(circle at 85% 0%,rgba(124,58,237,.20),transparent 25%),radial-gradient(circle at 10% 100%,rgba(6,182,212,.16),transparent 28%),var(--tech-950); }
.section-heading { max-width:830px; margin-bottom:34px; }
.section-heading.split { max-width:none; display:grid; grid-template-columns:1fr .72fr; gap:50px; align-items:end; }
.section-heading h2 {
  margin:0;
  color:var(--tech-950);
  font-family:"Plus Jakarta Sans",sans-serif !important;
  font-size:clamp(32px,4.4vw,52px);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.02em !important;
}
.section-heading > p:last-child,
.section-intro { color:var(--muted); line-height:1.72; font-size:16px; }
.section-heading.inverted h2 { color:var(--white); }
.section-heading.inverted > p:last-child { color:#B7CBDB; }
.section-intro { max-width:760px; margin:16px 0 0; }

.cards { display:grid; gap:18px; }
.cards.three { grid-template-columns:repeat(3,1fr); }
.card { padding:26px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:0 1px 0 rgba(0,58,112,.02); }
.card-number,
.service-kicker { display:inline-flex; min-height:34px; align-items:center; padding:7px 10px; border-radius:999px; color:var(--arvi-blue); background:var(--blue-soft); font-family:"Plus Jakarta Sans",sans-serif; font-size:11px; font-weight:800; letter-spacing:.05em; }
.card h3 { margin:19px 0 10px; font-family:"Plus Jakarta Sans",sans-serif !important; font-size:21px; line-height:1.25; letter-spacing:-.01em; }
.card p { margin:0; color:var(--muted); line-height:1.68; }
.service-card { display:block; text-decoration:none; background:var(--white); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.service-card:hover { transform:translateY(-3px); border-color:rgba(0,58,112,.24); box-shadow:var(--shadow-sm); }
.service-card > span:not(.service-kicker) { color:var(--arvi-blue); }
.service-card b { display:block; margin-top:20px; color:var(--arvi-blue); font-family:"Plus Jakarta Sans",sans-serif; font-size:13px; }
.service-card.accent-green { border-top:3px solid var(--arvi-green); }
.service-card.accent-cyan { border-top:3px solid var(--arvi-cyan); }
.service-card.accent-violet { border-top:3px solid var(--arvi-violet); }

.flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; gap:12px; align-items:center; margin-top:42px; }
.flow-item { min-height:126px; display:flex; flex-direction:column; justify-content:center; padding:19px; border-radius:var(--radius); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.11); }
.flow-item strong { font-family:"Plus Jakarta Sans",sans-serif; font-size:16px; }
.flow-item span { margin-top:7px; color:#B7CBDB; font-size:12px; line-height:1.45; }
.flow-arrow { color:var(--arvi-cyan); font-size:22px; font-weight:900; }

.sector-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.sector-grid article,
.sector-grid > a { padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); text-decoration:none; box-shadow:0 1px 0 rgba(0,58,112,.02); }
.sector-grid > a:hover { border-color:rgba(0,58,112,.24); box-shadow:var(--shadow-sm); }
.sector-grid > a > span { display:inline-flex; padding:6px 9px; border-radius:999px; color:var(--arvi-blue); background:var(--blue-soft); font-family:"Plus Jakarta Sans",sans-serif; font-size:10px; font-weight:800; letter-spacing:.06em; }
.sector-grid h3 { margin:17px 0 9px; font-family:"Plus Jakarta Sans",sans-serif; font-size:19px; }
.sector-grid p { margin:0; color:var(--muted); line-height:1.62; }

.case-band { overflow:hidden; display:grid; grid-template-columns:.9fr 1.1fr; min-height:390px; border:1px solid var(--line); border-radius:28px; background:var(--white); box-shadow:var(--shadow-sm); }
.case-visual { position:relative; padding:34px; color:var(--white); background:linear-gradient(145deg,var(--arvi-blue),#07558B); }
.case-visual::after { content:""; position:absolute; width:180px; height:180px; right:-54px; bottom:-62px; border-radius:50%; background:rgba(34,197,94,.18); }
.case-visual strong { display:block; max-width:420px; margin-top:58px; font-family:"Plus Jakarta Sans",sans-serif; font-size:clamp(28px,4vw,44px); line-height:1.1; letter-spacing:-.02em; }
.case-copy { padding:42px; align-self:center; }
.case-copy h3 { margin:0 0 15px; font-family:"Plus Jakarta Sans",sans-serif; font-size:26px; }
.case-copy p { color:var(--muted); line-height:1.7; }

.steps { list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.steps li { padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); }
.steps li > span { width:31px; height:31px; display:grid; place-items:center; border-radius:999px; color:var(--white); background:var(--arvi-blue); font-family:"JetBrains Mono",monospace; font-size:12px; font-weight:600; }
.steps strong { display:block; margin-top:15px; font-family:"Plus Jakarta Sans",sans-serif; font-size:15px; }
.steps p { margin:7px 0 0; color:var(--muted); font-size:13px; line-height:1.55; }

.cta-section { padding:20px 0 90px; background:var(--premium-white); }
.cta-box { position:relative; overflow:hidden; padding:clamp(40px,6vw,72px); border-radius:30px; text-align:center; color:var(--white); background:radial-gradient(circle at 50% 120%,rgba(34,197,94,.15),transparent 40%),radial-gradient(circle at 92% 0%,rgba(124,58,237,.16),transparent 28%),var(--tech-950); }
.cta-box h2 { max-width:840px; margin:8px auto 16px; font-family:"Plus Jakarta Sans",sans-serif !important; font-size:clamp(34px,5vw,56px); line-height:1.08; letter-spacing:-.02em !important; }
.cta-box > p:not(.eyebrow) { max-width:700px; margin:0 auto; color:#B7CBDB; line-height:1.7; }

.footer { color:#B7CBDB; background:var(--tech-950); padding:58px 0 22px; }
.footer-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr 1fr; gap:42px; }
.footer-grid > div { display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
.footer-grid p { max-width:280px; color:#8FA8BC; line-height:1.6; }
.footer-grid strong { color:var(--white); font-family:"Plus Jakarta Sans",sans-serif; margin-bottom:5px; }
.footer-grid a,.footer-grid span { color:#B7CBDB; text-decoration:none; font-size:13px; }
.footer-grid a:hover { color:var(--white); }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:44px; padding-top:18px; border-top:1px solid rgba(255,255,255,.08); color:#71899D; font-size:12px; }

/* Shared service and editorial pages. The !important declarations deliberately beat first-draft inline page CSS. */
.page-hero,
.article-hero { color:var(--white); background:linear-gradient(145deg,var(--tech-950),var(--arvi-blue)); }
.page-hero .copy,
.article-hero .copy { width:min(900px,100%); }
.page-hero h1,
.article-hero h1 {
  font-family:"Plus Jakarta Sans",sans-serif !important;
  font-size:clamp(40px,5.5vw,66px) !important;
  font-weight:800 !important;
  line-height:1.06 !important;
  letter-spacing:-.025em !important;
}
.page-hero p.lead,
.page-hero .lead,
.article-hero .lead { color:#C8D9E9; font-family:"Inter",sans-serif; font-size:18px; line-height:1.72; }

.article-body,.content-shell,.calculator-shell { background:var(--premium-white); }
.article { width:min(860px,calc(100% - 36px)); margin:0 auto; }
.article h2 { font-family:"Plus Jakarta Sans",sans-serif !important; letter-spacing:-.018em !important; line-height:1.14 !important; }
.article h3,
.article th { font-family:"Plus Jakarta Sans",sans-serif !important; letter-spacing:-.01em !important; }
.article p,.article li { font-family:"Inter",sans-serif; color:var(--tech-700) !important; }
.article th { background:var(--tech-100) !important; }
.callout { border-left-color:var(--arvi-green) !important; background:var(--green-soft) !important; }

/* Compatibility card used in guides created before the brand pass. */
.conversation-card,
.pricing-card {
  padding:30px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--white);
  box-shadow:var(--shadow-md);
}
.conversation-card h2,
.pricing-card h2 { font-family:"Plus Jakarta Sans",sans-serif !important; letter-spacing:-.02em !important; line-height:1.1 !important; }
.conversation-card p { color:var(--tech-500); line-height:1.65; }

.process-step { display:grid; grid-template-columns:38px minmax(0,1fr); gap:13px; align-items:start; margin-top:11px; padding:14px; border:1px solid var(--line); border-radius:16px; background:var(--premium-white); }
.process-step > span { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:var(--white); background:var(--arvi-blue); font-family:"JetBrains Mono",monospace; font-size:12px; font-weight:600; }
.process-step strong { display:block; color:var(--tech-900); font-family:"Plus Jakarta Sans",sans-serif; font-size:14px; line-height:1.3; }
.process-step small { display:block; margin-top:4px; color:var(--tech-500); font-size:12px; line-height:1.5; }

.faq { display:grid; gap:12px; }
.faq article { padding:22px; border:1px solid var(--line); border-radius:18px; background:var(--white); }
.faq h3 { margin:0 0 8px; font-family:"Plus Jakarta Sans",sans-serif !important; letter-spacing:-.01em; }
.faq p { margin:0; color:var(--muted); line-height:1.65; }

.journey { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.journey article { padding:20px; border:1px solid var(--line); border-radius:18px; background:var(--white); }
.journey strong { display:block; font-family:"Plus Jakarta Sans",sans-serif !important; letter-spacing:-.01em; }
.journey p { margin:8px 0 0; color:var(--muted); font-size:13px; line-height:1.55; }

.roi-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.roi-panel { padding:28px; border:1px solid var(--line); border-radius:24px; background:var(--white); box-shadow:var(--shadow-sm); }
.roi-panel label { display:block; margin:0 0 18px; font-weight:700; }
.roi-panel label span { display:block; margin-bottom:7px; }
.roi-panel input { width:100%; min-height:48px; padding:11px 13px; border:1px solid var(--tech-300); border-radius:13px; font:inherit; color:var(--ink); background:var(--white); }
.roi-help { display:block; margin-top:5px; color:var(--muted); font-size:12px; font-weight:600; line-height:1.4; }
.roi-results { display:grid; gap:13px; }
.roi-result { padding:20px; border-radius:18px; background:var(--tech-100) !important; border:1px solid var(--line); }
.roi-result small { display:block; color:var(--muted); font-weight:700; }
.roi-result strong { display:block; margin-top:5px; font-family:"Plus Jakarta Sans",sans-serif !important; font-size:30px; font-weight:800; line-height:1.12; letter-spacing:-.02em; }
.roi-note { margin-top:18px; padding:16px; border-radius:16px; background:var(--green-soft); border:1px solid rgba(34,197,94,.25); color:#245B37; line-height:1.55; font-size:13px; }
.roi-assumption { margin-top:20px; color:var(--muted); font-size:13px; line-height:1.6; }

code,.metric,.mono { font-family:"JetBrains Mono",monospace; }

@media (max-width:980px) {
  .nav-links { display:none; }
  .hero-grid,.section-heading.split,.case-band { grid-template-columns:1fr; }
  .hero-grid { min-height:auto; padding-top:58px; }
  .mascot-stage { min-height:500px; }
  .cards.three,.sector-grid { grid-template-columns:repeat(2,1fr); }
  .proof-grid { grid-template-columns:repeat(2,1fr); }
  .flow { grid-template-columns:1fr; }
  .flow-arrow { transform:rotate(90deg); justify-self:center; }
  .steps { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
  .case-visual { min-height:280px; }
  .journey { grid-template-columns:1fr 1fr; }
}

@media (max-width:800px) {
  .roi-grid { grid-template-columns:1fr; }
}

@media (max-width:640px) {
  .container { width:min(100% - 20px,1180px); }
  .nav-wrap { min-height:68px; gap:12px; }
  .brand { width:112px; height:42px; }
  .topbar .button-small { min-height:38px; padding:9px 13px; font-size:11px; }
  .hero-grid { min-height:auto; padding:50px 0 58px; }
  .hero h1 { font-size:42px; letter-spacing:-.018em !important; }
  .hero-lead { font-size:16px; }
  .page-hero h1,.article-hero h1 { font-size:40px !important; letter-spacing:-.016em !important; }
  .mascot-stage { min-height:430px; border-radius:26px; }
  .mascot-image-wrap { inset:-35px -165px -65px -155px; }
  .stage-chip { max-width:180px; padding:10px 12px; }
  .stage-chip.one { right:14px; top:80px; }
  .stage-chip.two { left:14px; bottom:82px; }
  .stage-chip.three { right:14px; bottom:18px; }
  .section { padding:68px 0; }
  .cards.three,.sector-grid,.steps,.proof-grid,.footer-grid,.journey { grid-template-columns:1fr; }
  .section-heading.split { gap:22px; }
  .case-copy { padding:28px 22px; }
  .conversation-card,.pricing-card,.roi-panel { padding:22px; border-radius:20px; }
  .footer-bottom { flex-direction:column; }
}

/* ARVI motion system — cinematic, restrained and brand-safe. */
@media (prefers-reduced-motion: no-preference) {
  .hero-copy .eyebrow { animation: arvi-rise .55s cubic-bezier(.2,.8,.2,1) both; }
  .hero-copy h1 { animation: arvi-rise .72s .08s cubic-bezier(.2,.8,.2,1) both; }
  .hero-copy .hero-lead { animation: arvi-rise .72s .16s cubic-bezier(.2,.8,.2,1) both; }
  .hero-copy .hero-actions { animation: arvi-rise .72s .24s cubic-bezier(.2,.8,.2,1) both; }
  .hero-copy .trust-row { animation: arvi-rise .72s .32s cubic-bezier(.2,.8,.2,1) both; }

  .mascot-stage { animation: arvi-stage-in .9s .12s cubic-bezier(.2,.8,.2,1) both, arvi-stage-glow 8s 1.1s ease-in-out infinite alternate; }
  .mascot-image { animation: arvi-mascot-float 5.8s 1s ease-in-out infinite; }
  .stage-chip.one { animation: arvi-chip-in .65s .55s cubic-bezier(.2,.8,.2,1) both, arvi-chip-float 5.6s 1.4s ease-in-out infinite; }
  .stage-chip.two { animation: arvi-chip-in .65s .72s cubic-bezier(.2,.8,.2,1) both, arvi-chip-float 6.2s 1.8s ease-in-out infinite reverse; }
  .stage-chip.three { animation: arvi-chip-in .65s .9s cubic-bezier(.2,.8,.2,1) both, arvi-chip-float 5.2s 2.1s ease-in-out infinite; }
  .mascot-label::before { animation: arvi-status-pulse 2.2s ease-out infinite; }

  .flow-arrow { animation: arvi-arrow-pulse 1.9s ease-in-out infinite; }
  .flow-arrow:nth-of-type(4) { animation-delay:.18s; }
  .flow-arrow:nth-of-type(6) { animation-delay:.36s; }

  .page-hero,
  .article-hero { background-size: 140% 140%; animation: arvi-dark-drift 12s ease-in-out infinite alternate; }
  .page-hero .copy,
  .article-hero .copy { animation: arvi-rise .72s cubic-bezier(.2,.8,.2,1) both; }

  .cta-box { animation: arvi-cta-breathe 9s ease-in-out infinite alternate; }

  @supports (animation-timeline: view()) {
    .section-heading,
    .proof-item,
    .card,
    .sector-grid > a,
    .flow-item,
    .case-band,
    .steps li,
    .journey article,
    .process-step,
    .faq article,
    .pricing-card,
    .conversation-card,
    .roi-panel,
    .monthly-card,
    .plan {
      animation-name: arvi-scroll-reveal;
      animation-duration: 1ms;
      animation-timing-function: linear;
      animation-fill-mode: both;
      animation-timeline: view();
      animation-range: entry 8% cover 28%;
    }

    .cards > :nth-child(2),
    .sector-grid > :nth-child(2),
    .journey > :nth-child(2),
    .steps > :nth-child(2) { animation-range: entry 12% cover 31%; }
    .cards > :nth-child(3),
    .sector-grid > :nth-child(3),
    .journey > :nth-child(3),
    .steps > :nth-child(3) { animation-range: entry 16% cover 34%; }
    .cards > :nth-child(4),
    .sector-grid > :nth-child(4),
    .journey > :nth-child(4),
    .steps > :nth-child(4) { animation-range: entry 20% cover 37%; }
    .cards > :nth-child(5),
    .journey > :nth-child(5),
    .steps > :nth-child(5) { animation-range: entry 24% cover 40%; }
    .cards > :nth-child(6) { animation-range: entry 28% cover 43%; }
  }
}

.topbar { transition: box-shadow .28s ease, background .28s ease, border-color .28s ease; }
.topbar:hover { box-shadow: 0 10px 28px rgba(0,58,112,.06); }
.nav-links a { position:relative; transition:color .2s ease; }
.nav-links a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:2px; border-radius:2px; background:linear-gradient(90deg,var(--arvi-cyan),var(--arvi-green)); transition:right .25s ease; }
.nav-links a:hover::after { right:0; }

.button { position:relative; overflow:hidden; isolation:isolate; }
.button::after { content:""; position:absolute; inset:-2px; z-index:-1; background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.34) 46%,transparent 72%); translate:-130% 0; transition:translate .62s cubic-bezier(.2,.8,.2,1); }
.button:hover::after { translate:130% 0; }

.hero::before { content:""; position:absolute; inset:-20% -8%; pointer-events:none; opacity:.55; background:radial-gradient(circle at 22% 34%,rgba(34,197,94,.08),transparent 18%),radial-gradient(circle at 68% 58%,rgba(6,182,212,.08),transparent 22%); filter:blur(6px); }
.hero h1 .action-emphasis,
.hero h1 > span { background:linear-gradient(90deg,var(--arvi-green),#45D77A,var(--arvi-cyan)); background-size:180% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; }

.mascot-stage { transition:box-shadow .35s ease, translate .35s ease; background-size:125% 125%; }
.mascot-stage:hover { translate:0 -3px; box-shadow:0 30px 78px rgba(0,58,112,.18); }
.mascot-stage::before { background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size:32px 32px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 88%); }
.stage-chip { transition:border-color .24s ease, background .24s ease, box-shadow .24s ease; }
.stage-chip:hover { background:rgba(11,20,36,.88); border-color:rgba(255,255,255,.25); box-shadow:0 20px 42px rgba(0,0,0,.2); }

.card,
.sector-grid > a,
.steps li,
.journey article,
.process-step,
.faq article,
.pricing-card,
.conversation-card,
.roi-panel,
.monthly-card,
.plan { transition:translate .24s ease, transform .24s ease, box-shadow .24s ease, border-color .24s ease; }
.card:hover,
.sector-grid > a:hover,
.steps li:hover,
.journey article:hover,
.process-step:hover,
.faq article:hover,
.pricing-card:hover,
.conversation-card:hover,
.roi-panel:hover,
.monthly-card:hover,
.plan:hover { translate:0 -5px; border-color:rgba(0,58,112,.22); box-shadow:0 20px 48px rgba(0,58,112,.1); }
.dark-section .flow-item:hover { translate:0 -4px; border-color:rgba(6,182,212,.32); box-shadow:0 18px 42px rgba(0,0,0,.16); }
.service-card b { transition:letter-spacing .22s ease, color .22s ease; }
.service-card:hover b { letter-spacing:.015em; color:var(--arvi-cyan); }
.card-number,
.service-kicker { transition:transform .22s ease, background .22s ease, color .22s ease; }
.card:hover .card-number,
.service-card:hover .service-kicker { transform:translateY(-2px); background:var(--cyan-soft); color:var(--arvi-blue); }

.dark-section::before { content:""; position:absolute; width:420px; height:420px; right:-170px; top:18%; border-radius:50%; pointer-events:none; background:rgba(34,197,94,.055); filter:blur(10px); }
.case-visual::after { transition:scale .55s cubic-bezier(.2,.8,.2,1), opacity .55s ease; }
.case-band:hover .case-visual::after { scale:1.28; opacity:.9; }
.cta-box::after { content:""; position:absolute; width:380px; height:380px; right:-180px; top:-210px; border-radius:50%; background:rgba(6,182,212,.11); filter:blur(4px); pointer-events:none; }

@keyframes arvi-rise {
  from { opacity:0; translate:0 24px; }
  to { opacity:1; translate:0 0; }
}
@keyframes arvi-stage-in {
  from { opacity:0; translate:28px 18px; scale:.97; }
  to { opacity:1; translate:0 0; scale:1; }
}
@keyframes arvi-stage-glow {
  0% { background-position:0% 15%; box-shadow:0 22px 58px rgba(0,58,112,.12); }
  100% { background-position:100% 85%; box-shadow:0 28px 76px rgba(0,58,112,.18); }
}
@keyframes arvi-mascot-float {
  0%,100% { translate:0 0; }
  50% { translate:0 -10px; }
}
@keyframes arvi-chip-in {
  from { opacity:0; scale:.94; translate:0 14px; }
  to { opacity:1; scale:1; translate:0 0; }
}
@keyframes arvi-chip-float {
  0%,100% { translate:0 0; }
  50% { translate:0 -6px; }
}
@keyframes arvi-status-pulse {
  0% { box-shadow:0 0 0 0 rgba(34,197,94,.28); }
  70%,100% { box-shadow:0 0 0 10px rgba(34,197,94,0); }
}
@keyframes arvi-arrow-pulse {
  0%,100% { opacity:.45; translate:0 0; }
  50% { opacity:1; translate:3px 0; }
}
@keyframes arvi-dark-drift {
  0% { background-position:0% 20%; }
  100% { background-position:100% 80%; }
}
@keyframes arvi-cta-breathe {
  0% { box-shadow:0 0 0 rgba(0,58,112,0); }
  100% { box-shadow:0 30px 78px rgba(0,58,112,.16); }
}
@keyframes arvi-scroll-reveal {
  from { opacity:.18; translate:0 34px; filter:blur(5px); }
  to { opacity:1; translate:0 0; filter:blur(0); }
}

@media (max-width:980px) {
  .flow-arrow { animation-name:none !important; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .mascot-stage:hover,
  .card:hover,
  .sector-grid > a:hover,
  .steps li:hover,
  .journey article:hover,
  .process-step:hover,
  .faq article:hover,
  .pricing-card:hover,
  .conversation-card:hover,
  .roi-panel:hover,
  .monthly-card:hover,
  .plan:hover { translate:0 0; }
}

/* Floating ARVI contact bubble. It reuses each page's contextual WhatsApp CTA. */
.topbar a.button-primary[href^="https://wa.me/573183074381"] { overflow:visible; }
.topbar a.button-primary[href^="https://wa.me/573183074381"]::before {
  content:"Hablar con ARVI";
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:1000;
  width:auto;
  min-width:176px;
  height:58px;
  display:flex;
  align-items:center;
  padding:0 18px 0 58px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  color:#fff;
  background-image:var(--isotipo-url),linear-gradient(135deg,var(--tech-950),var(--arvi-blue));
  background-size:34px 34px,100% 100%;
  background-position:12px center,center;
  background-repeat:no-repeat,no-repeat;
  font-family:"Plus Jakarta Sans",sans-serif;
  font-size:13px;
  font-weight:800;
  line-height:1;
  letter-spacing:0;
  box-shadow:0 18px 48px rgba(0,58,112,.30),0 0 0 1px rgba(34,197,94,.08);
  opacity:1;
  translate:0 0;
  transition:translate .22s ease,box-shadow .22s ease;
}
.topbar a.button-primary[href^="https://wa.me/573183074381"]:hover::before {
  translate:0 -4px;
  box-shadow:0 24px 58px rgba(0,58,112,.38),0 0 0 4px rgba(34,197,94,.08);
}
@media (prefers-reduced-motion:no-preference) {
  .topbar a.button-primary[href^="https://wa.me/573183074381"]::before { animation:arvi-bubble-in .55s .8s cubic-bezier(.2,.8,.2,1) both; }
}
@keyframes arvi-bubble-in {
  from { opacity:0; translate:0 18px; }
  to { opacity:1; translate:0 0; }
}
@media (max-width:640px) {
  .topbar a.button-primary[href^="https://wa.me/573183074381"]::before {
    content:"";
    right:14px;
    bottom:14px;
    width:58px;
    min-width:58px;
    height:58px;
    padding:0;
    background-size:36px 36px,100% 100%;
    background-position:center,center;
  }
}
