/*
 * VISTRUBA — Spectrum / premium cool-gray palette (v1.3)
 * Original brand system inspired by modern enterprise technology design.
 * Keep this as a separate token-driven layer: no dependencies, no external font requests.
 * No global animation added here; existing reduced-motion preference remains respected.
 */
:root {
  color-scheme: dark;
  --bg: #0c1126;
  --bg2: #121a32;
  --card: #131d39;
  --line: #313b60;
  --ink: #f8faff;
  --soft: #5a657d;
  --muted: #a5afc5;
  --cyan: #67d9ec;
  --cyan2: #27c4ba;
  --blue: #365cf5;
  --violet: #9471f7;
  --paper: #e9eef4;
  --surface: #f4f6fa;
  --surface-raised: #f7f9fc;
  --border-neutral: #cfd7e4;
  --paper-alt: #e5eaf1;
  --ink-dark: #14203a;
  --ink-muted: #4b5973;
  --gradient: linear-gradient(112deg,#56d9f0 0%,#638ffd 45%,#b399ff 100%);
  --gradient-cta: linear-gradient(112deg,#315eff 0%,#6756ee 62%,#8359f0 100%);
  --line-light: #cfd7e4;
}
::selection { background: #665aee66; color: #fff; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline: 3px solid #34d6c5; outline-offset: 4px;
}
body { background: #0c1126; }
.site-header {
  background: #101527ef;
  border-bottom: 1px solid #5d679444;
  box-shadow: 0 5px 26px #050a211a;
}
.brand { letter-spacing: .14em; }
.brand-a { color: #8b8aff; }
.nav-link { color: #c7cee3; }
.nav-link.active,.nav-link:hover { color: #fff; }
.nav-link::after { background: linear-gradient(90deg,#35d1ca,#9580ff);box-shadow:0 0 11px #736aff66; }
.nav-cta { background:#1c2545; border-color:#5263a4; color:#fff; }
.nav-cta span { color: #94c9ff; }
.nav-cta:hover { background:#293766; border-color:#9c91ff; }
.scroll-progress { background: linear-gradient(90deg,#23c2be,#5570ff,#a879f7); }

/* Preserve the high-contrast cinematic hero above calmer, cool-neutral sections. */
.hero {
  background:radial-gradient(ellipse at 69% 40%,#22347f 0%,#172454 30%,transparent 65%),
             radial-gradient(ellipse at 100% 90%,#2d125d 0%,transparent 42%),
             linear-gradient(117deg,#080f22 4%,#101935 49%,#0a1128 100%);
}
.hero-grid { opacity:.28; background-image: linear-gradient(#8994ef26 1px,transparent 1px),linear-gradient(90deg,#8994ef26 1px,transparent 1px); }
.hero-aurora {
  background:radial-gradient(ellipse at 77% 42%,#6a66fa38,transparent 33%),
             radial-gradient(ellipse at 52% 82%,#17aca61a,transparent 35%),
             radial-gradient(ellipse at 98% 12%,#d56dca1f,transparent 27%);
}
.hero-overline { background:#18264bdd; border:1px solid #4e608f; color:#dfe9ff; }
.pulse-dot { background:#32dfbd;box-shadow:0 0 0 5px #32dfbd20,0 0 14px #32dfbda8; }
.hero-kicker {color:#cbd6f2;}
.hero-kicker>span:first-child {color:#72cffa;}
.kicker-slash {color:#858ec4;}
.hero h1 {font-weight:790;letter-spacing:-.071em;}
.hero-highlight {background:linear-gradient(103deg,#49d9e9 0%,#68a1ff 45%,#bd9bff 100%);background-clip:text;-webkit-background-clip:text;color:transparent;}
.hero-period {color:#35d7cc;}
.hero-desc {color:#cbd4ec;}
.btn-primary { color:#fff; background:var(--gradient-cta);box-shadow:0 14px 40px #4255f448; }
.btn-primary:hover { box-shadow:0 19px 48px #6150f66b; }
.btn-outline { background:#151e3b; border:1px solid #59658a; color:#f4f5ff; }
.btn-outline:hover {background:#202c51;border-color:#b1abff;}
.hero-trust {color:#acbad6;}
.trust-indicator i {background:#2cd5c6;}
.trust-indicator i:nth-child(2) {background:#6587fb;}
.trust-indicator i:nth-child(3) {background:#ac88f5;}
.hero-halo {background:radial-gradient(circle,#5f5efb24 0%,#1283d21a 37%,transparent 65%);}
.lens-art {filter: hue-rotate(11deg) saturate(.95) drop-shadow(0 0 48px #625cf658);}
.orbit {border-color:#9185ff66;box-shadow:0 0 32px #636aff21;}
.orbit::before {background:#44dccd;box-shadow:0 0 20px #31e4c7;}
.orbit-two {border-color:#6b86ce3d;}
.orbit-two::before {background:#b4a1ff;}
.hero-float {background:#131d3eea;border-color:#7a83cf91;box-shadow:0 16px 45px #070b227d;}
.hero-float b {color:#eff4ff;}
.hero-float small {color:#b0bde5;}
.float-icon,.float-signal {color:#60dcd7;}
.compute-indicator {color:#ad9aff;}
.art-corner {border-color:#8b8affb2;}
.art-caption {color:#bac6e5;}
.hero-bottom-line {background:linear-gradient(90deg,transparent,#25c2c599 25%,#7770fda8 62%,#a05aff55,transparent);}

.capability-strip {background:#151a33;border-bottom:1px solid #3e4a78;}
.strip-label {color:#85d6e5;border-right:1px solid #52618b;}
.ticker-track span {color:#d6d9ef;}
.ticker-track b {color:#9d8af7;}

/* Muted mineral grays unify the light sections with the midnight-blue hero. */
.services {background:radial-gradient(ellipse at -7% 3%,#d9e3f2 0%,transparent 42%),linear-gradient(155deg,#e7ecf3 0%,#eff2f6 52%,#e4eaf2 100%);color:var(--ink-dark);border-top:1px solid #cbd4e3;}
.services .eyebrow,.solutions .eyebrow {color:#4242b8;}
.services .tiny-line,.solutions .tiny-line {background:#7154e8;}
.services h2,.solutions h2 {color:#14213d;}
.services h2 span,.solutions h2 span {background:linear-gradient(105deg,#2355c8 0%,#694fc3 100%);background-clip:text;-webkit-background-clip:text;color:transparent;}
.services .section-summary,.solutions .section-summary {color:var(--ink-muted);}
.service-card {
  background:linear-gradient(160deg,#f8f9fc 0%,#f1f4f9 100%);
  border:1px solid #cbd4e1;
  box-shadow:0 8px 30px #18284610, inset 0 1px 0 #ffffff85;
  color:#14213b;
}
.service-card::before {background:radial-gradient(320px circle at var(--mx) var(--my),#7263f51c,transparent 75%);}
.service-card:hover {border-color:#9292db;box-shadow:0 22px 50px #263a6b29;}
.service-no {background:#101831b5!important;border:1px solid #8695c1!important;color:#fff!important;}
.card-visual {background:#16274d;}
.card-visual::after {background:linear-gradient(transparent,#0a163329);}
.service-inner h3 {color:#15223d;}
.service-inner p {color:#4b5971;}
.card-icon {color:#6157e9;}
.circle-link {border-color:#bbc7e5;color:#4047c5;background:#e6eafb;}
.circle-link:hover {border-color:#6754e9;color:#fff;background:#6258e8;}
.service-card:nth-child(1) .card-icon {color:#148baf;}
.service-card:nth-child(2) .card-icon {color:#6856df;}
.service-card:nth-child(3) .card-icon {color:#177c86;}
.service-card:nth-child(4) .card-icon {color:#6e61cf;}
.service-card:nth-child(5) .card-icon {color:#2861c8;}

.values-band {
  background:radial-gradient(ellipse at 90% 45%,#38368855,transparent 53%),
             linear-gradient(110deg,#111936 0%,#1a2453 67%,#271c50 100%);
  border-block:1px solid #414a7b;
}
.values-intro h2 span {background:linear-gradient(100deg,#63ccf3,#a395ff);background-clip:text;-webkit-background-clip:text;color:transparent;}
.value-icon {color:#b5a0ff;text-shadow:0 0 22px #9a7eff59;}
.value:nth-of-type(2) .value-icon,.value:nth-of-type(4) .value-icon {color:#65d9d5;}
.value p {color:#c2cce5;}

.solutions {background:radial-gradient(ellipse at 90% 9%,#dce2f1 0%,transparent 39%),linear-gradient(155deg,#eef1f5 0%,#e5eaf1 58%,#e9edf4 100%);color:var(--ink-dark);border-top:1px solid #d1d9e5;}
.solution-card {background:linear-gradient(158deg,#f7f9fc 0%,#f1f4f8 100%);border:1px solid #ccd5e2;box-shadow:0 7px 26px #15254a12, inset 0 1px 0 #ffffff80;}
.solution-card:hover {border-color:#aaa5e0;box-shadow:0 20px 44px #26386627;}
.solution-content h3 {color:#15223e;}
.solution-content p {color:#4f5b73;}

.approach {
  background:radial-gradient(ellipse at 19% 40%,#234b7959,transparent 49%),
             radial-gradient(ellipse at 100% 100%,#5047a54d,transparent 55%),
             linear-gradient(120deg,#11192d,#161e44);
  border-block:1px solid #3a4770;
}
.approach-steps>div {border-color:#777fe9;}
.approach-steps b {color:#7be0df;}
.approach-steps p {color:#c4cce0;}

.contact-section {
  background:radial-gradient(ellipse at 7% 16%,#d4ddea 0%,transparent 45%),
             radial-gradient(ellipse at 99% 96%,#e0dcef 0%,transparent 48%),
             linear-gradient(157deg,#e9edf3 0%,#e4e9f0 100%);
  color:#15223a;
  border-top:1px solid #cbd4e1;
}
.contact-copy h1 {color:#18213c;}
.contact-copy h1 span {background:linear-gradient(112deg,#3250d7,#9161d9);background-clip:text;-webkit-background-clip:text;color:transparent;}
.contact-copy .eyebrow {color:#5550c7;}
.contact-copy .tiny-line {background:#6a54e9;}
.contact-copy>p:not(.eyebrow) {color:#4e5b73;}
.contact-detail {color:#283ac0;}
.contact-detail span {color:#6962e9;}
.contact-copy .small-note {color:#53617a!important;}
.contact-decor-ring {border-color:#6a64de48;box-shadow:0 0 0 26px #706cf40f,0 0 0 62px #706cf409,0 0 0 100px #706cf407;}
.contact-decoration>span:last-child {color:#5c61a4;}
.contact-form {
  background:linear-gradient(158deg,#f5f7fa 0%,#eff2f7 100%);
  border:1px solid #c9d2df;
  box-shadow:0 24px 72px #25385a20, inset 0 1px 0 #ffffffa6;
  color:#16213b;
}
.form-badge {color:#5a51cb;}
.form-badge-icon {color:#6a5deb;}
.contact-form h3 {color:#171d38;}
.contact-form>p {color:#526079;}
.contact-form label:not(.checkbox-label) {color:#2e3754;}
.contact-form input:not([type=checkbox]), .contact-form textarea, .contact-form select {
  background:#e7ecf3;
  color:#15213b;
  border:1px solid #bfc9d9;
}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus {border-color:#6457d8;box-shadow:0 0 0 3px #6254de29;}
.contact-form input::placeholder,.contact-form textarea::placeholder {color:#5c6a81;}
.contact-form select {background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8"%3E%3Cpath d="m1 1 5 5 5-5" fill="none" stroke="%2350576f" stroke-width="2"/%3E%3C/svg%3E');}
.checkbox-label {color:#414d64;}
.checkbox-label input {accent-color:#6257dc;}
.checkbox-label a {color:#443dc5;}
.form-note {background:#fff3e4;border-color:#d59b55;color:#763d0c!important;}
.form-footer #form-status {color:#4c5a71;}
.form-footer #form-status.error {color:#b32935;}
.form-footer #form-status.success {color:#156f53;}

.footer {background:#0b1023;border-top:1px solid #475076;}
.footer-statement {color:#a8bcf8;}
.footer-statement span {background:linear-gradient(90deg,#40d3cd,#977ff9);}
.footer-contact a,.footer-links a {color:#bbc5db;}
.footer-bottom {border-color:#3e486e;}

/* Keep legal content in an accessible dark shell. */
.legal-page {background:#101831;}
.legal-page .eyebrow {color:#94d6f7;}
.legal-page .legal-back {color:#adc1ff;}

@media (max-width:720px) {
  .nav {background:#131b35;border-color:#505b8e;}
  .menu-toggle {background:#252c52;border-color:#7178ad;}
  .hero {background:radial-gradient(ellipse at 55% 68%,#243478 0%,transparent 65%),linear-gradient(150deg,#090f22,#111935 70%,#21173e);}
  .services {background:linear-gradient(145deg,#e7ecf3,#f0f2f6 65%,#e5eaf2);}
  .solutions {background:linear-gradient(165deg,#edf0f5,#e4e9f1);}
}

@media (prefers-reduced-motion:reduce) {
  .hero-aurora,.lens-art,.orbit,.hero-float {animation:none!important;}
}

/* Native controls inherit the light surface palette; do not repeat select arrow artwork. */
.services,.solutions,.contact-section,.contact-form {color-scheme:light;}
.contact-form select {
  background-repeat:no-repeat;
  background-position:right 15px center;
  background-size:12px 8px;
  padding-right:36px;
}


/* v1.4: field-specific conceptual engineering photography */
.card-visual {isolation:isolate;}
.card-visual img, .solution-card > img {display:block;object-fit:cover;object-position:center 49%;}
.card-visual::after {background:linear-gradient(180deg,transparent 25%,rgba(5,12,31,.64) 100%);z-index:1;}
.card-visual .visual-tag {
  position:absolute;left:17px;bottom:15px;z-index:2;
  padding:7px 10px;border-radius:7px;max-width:calc(100% - 30px);
  color:#f0f7ff;background:rgba(11,23,46,.65);border:1px solid rgba(159,204,255,.36);
  box-shadow:0 3px 14px rgba(4,10,25,.2);
  font-size:10px;font-weight:750;letter-spacing:.10em;line-height:1.25;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.service-card:focus-within {outline:3px solid #596be5;outline-offset:3px;}
@media (max-width:720px) {
  .card-visual .visual-tag {font-size:9px;bottom:11px;left:12px;letter-spacing:.055em;padding:6px 8px;}
}
@media (prefers-reduced-motion: reduce) {
 .card-visual img,.solution-card > img {transition:none!important;transform:none!important;}
}
