:root {
  --ink: #071522;
  --ink-2: #0d2331;
  --ink-3: #143344;
  --paper: #f6fbfd;
  --white: #ffffff;
  --muted: #587180;
  --line: #d9e7ed;
  --blue: #168ed1;
  --blue-2: #39b8ff;
  --green: #31c96b;
  --green-soft: #7cf29a;
  --shadow: 0 22px 60px rgba(7, 21, 34, .12);
  --radius: 22px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.7; text-rendering: optimizeLegibility; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: #0c6fa8; }
img { max-width: 100%; height: auto; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 9999; background: var(--white); color: var(--ink); padding: .75rem 1rem; border-radius: 0 0 10px 10px; box-shadow: var(--shadow); }
.skip-link:focus { top: 0; }
.container-narrow { max-width: 890px; margin-inline: auto; }
.section { padding: 96px 0; }
.section-sm { padding: 64px 0; }
.section-dark { color: var(--white); background: var(--ink); }
.section-soft { background: var(--paper); }
.eyebrow { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1rem; color: #0e7fb9; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.section-dark .eyebrow { color: var(--green-soft); }
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }
h1,h2,h3,h4,h5 { color: inherit; line-height: 1.16; letter-spacing: -.025em; }
h1 { font-size: clamp(2.75rem, 6vw, 5.5rem); font-weight: 760; }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 740; }
h3 { font-size: 1.35rem; font-weight: 720; }
.lead-copy { max-width: 740px; color: var(--muted); font-size: 1.18rem; }
.section-dark .lead-copy { color: #a9c2cf; }
.text-gradient { background: linear-gradient(100deg, var(--green-soft), var(--blue-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.navbar { min-height: 78px; background: rgba(255,255,255,.92); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(217,231,237,.75); transition: box-shadow .2s ease, min-height .2s ease; }
.navbar.is-scrolled { min-height: 68px; box-shadow: 0 10px 30px rgba(7,21,34,.08); }
.navbar-brand img { width: 208px; height: auto; }
.navbar-nav { align-items: center; gap: .25rem; }
.nav-link { color: #274756 !important; font-size: .93rem; font-weight: 650; padding: .7rem .85rem !important; border-radius: 10px; }
.nav-link:hover, .nav-link.active { color: var(--ink) !important; background: #edf7fa; }
.nav-cta { margin-left: .55rem; }
.btn { border-radius: 11px; padding: .78rem 1.2rem; font-weight: 720; letter-spacing: -.01em; }
.btn-primary { background: var(--ink); border-color: var(--ink); }
.btn-primary:hover, .btn-primary:focus { background: #153448; border-color: #153448; }
.btn-accent { color: #03130a; background: var(--green-soft); border-color: var(--green-soft); }
.btn-accent:hover { color: #03130a; background: #98f8af; border-color: #98f8af; }
.btn-outline-light { border-color: rgba(255,255,255,.42); }
.hero { position: relative; overflow: hidden; min-height: 760px; display: flex; align-items: center; padding: 150px 0 90px; color: var(--white); background: radial-gradient(circle at 78% 18%, rgba(57,184,255,.2), transparent 32%), radial-gradient(circle at 12% 88%, rgba(124,242,154,.11), transparent 30%), var(--ink); }
.hero::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.18; background-image: linear-gradient(rgba(75,130,153,.5) 1px, transparent 1px), linear-gradient(90deg, rgba(75,130,153,.5) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom, black, transparent 88%); }
.hero .container { position: relative; z-index: 1; }
.hero h1 { max-width: 780px; margin-bottom: 1.35rem; }
.hero-copy { max-width: 650px; color: #b8ced8; font-size: clamp(1.08rem, 2vw, 1.35rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.hero-proof { display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:2.3rem; color:#a7c0cc; font-size:.9rem; }
.hero-proof span { display:inline-flex; align-items:center; gap:.45rem; }
.hero-proof i { color:var(--green-soft); }
.hero-visual { position: relative; }
.hero-visual img { filter: drop-shadow(0 26px 65px rgba(0,0,0,.38)); }
.hero-badge { position:absolute; right:1.2rem; bottom:1.2rem; max-width:210px; padding:1rem 1.1rem; color:#dff6ff; background:rgba(7,21,34,.78); border:1px solid rgba(124,242,154,.35); border-radius:16px; backdrop-filter:blur(10px); }
.hero-badge strong { display:block; color:var(--green-soft); font-size:1.35rem; }
.logo-strip { padding:26px 0; border-bottom:1px solid var(--line); background:#fff; }
.logo-strip p { margin:0; color:#68818f; font-size:.86rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; overflow:hidden; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.stat-item { padding:2rem 1.5rem; background:var(--white); }
.stat-number { display:block; color:var(--ink); font-size:2.6rem; font-weight:800; letter-spacing:-.05em; }
.stat-label { margin:0; color:var(--muted); font-size:.94rem; }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.info-card { height:100%; padding:1.65rem; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.info-card:hover { transform:translateY(-4px); border-color:#b9d8e5; box-shadow:0 18px 46px rgba(7,21,34,.09); }
.icon-box { width:52px; height:52px; display:grid; place-items:center; margin-bottom:1.15rem; color:#0f6f9f; font-size:1.35rem; background:#e9f7fc; border-radius:14px; }
.icon-box.green { color:#087b37; background:#e7f9ed; }
.info-card p { margin-bottom:0; color:var(--muted); }
.architecture { position:relative; padding:2rem; color:var(--white); background:linear-gradient(145deg,#0a1c29,#102e3e); border:1px solid #244454; border-radius:28px; box-shadow:0 28px 70px rgba(7,21,34,.25); }
.architecture img { border-radius:18px; }
.layer-list { display:grid; gap:.8rem; }
.layer { display:grid; grid-template-columns:50px 1fr; gap:1rem; padding:1rem; border:1px solid var(--line); border-radius:16px; background:var(--white); }
.layer-number { width:44px; height:44px; display:grid; place-items:center; color:#053047; font-weight:800; background:linear-gradient(135deg,var(--green-soft),#d7ffe1); border-radius:12px; }
.layer h3 { margin:0 0 .25rem; font-size:1.08rem; }
.layer p { margin:0; color:var(--muted); font-size:.92rem; }
.comparison-table { overflow:hidden; border:1px solid var(--line); border-radius:18px; }
.comparison-table .table { margin:0; }
.comparison-table th { padding:1rem; color:var(--ink); background:#edf7fa; border:0; }
.comparison-table td { padding:1rem; border-color:var(--line); vertical-align:middle; }
.comparison-table .vimag-col { background:#effcf3; }
.check { color:#168c48; font-weight:800; }
.cross { color:#b34a4a; }
.application-card { position:relative; min-height:240px; overflow:hidden; padding:1.6rem; color:var(--white); background:linear-gradient(145deg,#0b202e,#153c4d); border:1px solid #2a4d5e; border-radius:var(--radius); }
.application-card::after { content:""; position:absolute; width:140px; height:140px; right:-45px; bottom:-48px; border:22px solid rgba(57,184,255,.11); border-radius:50%; }
.application-card .icon-box { position:relative; z-index:1; color:var(--green-soft); background:rgba(124,242,154,.1); border:1px solid rgba(124,242,154,.24); }
.application-card p { position:relative; z-index:1; color:#afc7d2; }
.application-card h3 { position:relative; z-index:1; }
.tag { display:inline-flex; align-items:center; padding:.35rem .65rem; color:#0f668f; font-size:.74rem; font-weight:750; background:#eaf7fb; border:1px solid #d2e9f1; border-radius:999px; }
.article-card { height:100%; overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 15px 40px rgba(7,21,34,.07); }
.article-card-body { padding:1.6rem; }
.article-card .meta { color:#718997; font-size:.85rem; }
.article-card h3 a { color:var(--ink); }
.article-card h3 a:hover { color:var(--blue); }
.news-feature { padding:2rem; color:var(--white); background:radial-gradient(circle at 85% 10%,rgba(57,184,255,.2),transparent 35%),var(--ink); border-radius:28px; }
.news-feature p { color:#b7ced8; }
.press-metric { padding:1.1rem; border-left:3px solid var(--green-soft); background:rgba(255,255,255,.055); border-radius:0 12px 12px 0; }
.quote-block { margin:2rem 0; padding:1.7rem 2rem; color:var(--ink); font-size:1.25rem; font-weight:650; background:#effbf3; border-left:5px solid var(--green); border-radius:0 18px 18px 0; }
.timeline { position:relative; display:grid; gap:1rem; }
.timeline::before { content:""; position:absolute; top:8px; bottom:8px; left:21px; width:2px; background:#cce1e9; }
.timeline-item { position:relative; padding-left:62px; }
.timeline-dot { position:absolute; top:4px; left:10px; width:24px; height:24px; background:var(--white); border:7px solid var(--blue); border-radius:50%; box-shadow:0 0 0 5px var(--white); }
.timeline-item h3 { margin-bottom:.35rem; }
.timeline-item p { color:var(--muted); }
.page-hero { padding:155px 0 80px; color:var(--white); background:radial-gradient(circle at 84% 15%,rgba(57,184,255,.18),transparent 30%),var(--ink); }
.page-hero h1 { max-width:900px; margin-bottom:1rem; font-size:clamp(2.65rem,5vw,4.8rem); }
.breadcrumb { --bs-breadcrumb-divider-color:#698898; --bs-breadcrumb-item-active-color:#9cb8c5; margin-bottom:1.3rem; }
.breadcrumb a { color:var(--green-soft); }
.content-prose { color:#294653; font-size:1.06rem; }
.content-prose h2 { margin-top:2.5rem; color:var(--ink); font-size:2rem; }
.content-prose h3 { margin-top:1.7rem; color:var(--ink); }
.content-prose p, .content-prose li { color:#405d6b; }
.content-prose ul { padding-left:1.25rem; }
.article-header-meta { display:flex; flex-wrap:wrap; gap:1rem; color:#a9c3cf; font-size:.9rem; }
.article-aside { position:sticky; top:100px; padding:1.4rem; background:var(--paper); border:1px solid var(--line); border-radius:18px; }
.article-aside a { display:block; padding:.45rem 0; color:#3e5e6d; font-size:.92rem; border-bottom:1px solid #e0ebef; }
.article-aside a:last-child { border:0; }
.team-card { height:100%; padding:1.6rem; background:#fff; border:1px solid var(--line); border-radius:var(--radius); }
.avatar { width:76px; height:76px; display:grid; place-items:center; margin-bottom:1rem; color:var(--white); font-size:1.4rem; font-weight:800; background:linear-gradient(135deg,#0a293a,#168ed1); border-radius:20px; }
.team-card .role { color:#0e7dad; font-weight:700; }
.team-card p { color:var(--muted); }
.contact-panel { padding:2rem; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.form-control, .form-select { min-height:52px; border-color:#cfe0e7; border-radius:11px; }
.form-control:focus, .form-select:focus { border-color:#4db6e7; box-shadow:0 0 0 .25rem rgba(57,184,255,.14); }
textarea.form-control { min-height:150px; }
.invalid-feedback { font-size:.82rem; }
.contact-method { display:flex; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.contact-method:last-child { border:0; }
.contact-method i { width:42px; height:42px; display:grid; place-items:center; color:#0d78a8; background:#eaf7fb; border-radius:12px; }
.faq .accordion-item { margin-bottom:.7rem; overflow:hidden; border:1px solid var(--line); border-radius:14px !important; }
.faq .accordion-button { padding:1.15rem 1.25rem; color:var(--ink); font-weight:700; background:#fff; box-shadow:none; }
.faq .accordion-button:not(.collapsed) { color:#0a628d; background:#eff9fc; }
.cta-band { position:relative; overflow:hidden; padding:3.4rem; color:var(--white); background:linear-gradient(125deg,#071522,#123749); border-radius:30px; }
.cta-band::after { content:""; position:absolute; width:270px; height:270px; right:-70px; top:-120px; border:42px solid rgba(124,242,154,.08); border-radius:50%; }
.footer { padding:70px 0 30px; color:#a9c0cb; background:#06121d; }
.footer-logo { width:205px; opacity:.95; }
.footer h5 { color:#fff; font-size:.94rem; letter-spacing:.08em; text-transform:uppercase; }
.footer a { color:#a9c0cb; }
.footer a:hover { color:var(--green-soft); }
.footer ul { margin:0; padding:0; list-style:none; }
.footer li { margin:.45rem 0; }
.footer-bottom { margin-top:3rem; padding-top:1.4rem; border-top:1px solid #1d3442; font-size:.84rem; }
.cookie-banner { position:fixed; right:1.1rem; bottom:1.1rem; z-index:1080; max-width:420px; padding:1.2rem; color:#d8eef7; background:rgba(7,21,34,.97); border:1px solid #2b4b5c; border-radius:16px; box-shadow:0 25px 80px rgba(0,0,0,.32); }
.cookie-banner p { margin:0 0 .8rem; font-size:.88rem; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .55s ease, transform .55s ease; }
.reveal.is-visible { opacity:1; transform:none; }
.notice { padding:1rem 1.2rem; color:#315160; background:#eff8fb; border:1px solid #d6eaf1; border-radius:12px; }
@media (max-width: 991.98px) {
  .navbar-nav { align-items:stretch; padding:1rem 0; }
  .nav-cta { margin:.35rem 0 0; }
  .hero { min-height:auto; padding-top:130px; }
  .hero-visual { margin-top:3rem; }
  .stat-grid { grid-template-columns:repeat(2,1fr); }
  .card-grid { grid-template-columns:repeat(2,1fr); }
  .section { padding:76px 0; }
}
@media (max-width: 767.98px) {
  h1 { font-size:2.75rem; }
  .navbar-brand img { width:180px; }
  .hero { padding-bottom:65px; }
  .hero-actions .btn { width:100%; }
  .hero-badge { position:relative; right:auto; bottom:auto; margin-top:1rem; max-width:none; }
  .stat-grid, .card-grid { grid-template-columns:1fr; }
  .stat-item { padding:1.45rem; }
  .section { padding:64px 0; }
  .page-hero { padding:130px 0 60px; }
  .cta-band { padding:2rem 1.4rem; }
  .comparison-table { font-size:.85rem; }
  .cookie-banner { left:.8rem; right:.8rem; bottom:.8rem; max-width:none; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
