/* Visual-only refinement. Existing copy, routes and controls stay intact. */
:root { --visual-ease: cubic-bezier(.16,1,.3,1); }
.section-intro h2 span, .numbers h2 span {
  background: linear-gradient(115deg,#116980 8%,#16889c 55%,#267688 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.cap-card { border-radius: 19px; }
.cap-card a span {
  display: grid; place-items: center;
  width: 30px; height: 30px; border-radius: 50%;
  background: #edf8f9; border: 1px solid #cde8eb;
  transition: background .25s, color .25s, transform .3s var(--visual-ease);
}
.cap-card a { display:flex; align-items:center; justify-content:space-between; }
.cap-card:focus-within a span { background:#167f94; color:#fff; }
.number-item strong { letter-spacing: -.045em; }
#process .process-guide-tabs { gap: 9px; }
#process .process-guide-tab {
  position: relative; overflow: hidden; isolation: isolate;
  border-radius: 13px;
  background: linear-gradient(145deg,#f9fdfd,#eff7f8);
  transition: background .3s, border-color .3s, box-shadow .3s;
}
#process .process-guide-tab[aria-selected="true"] {
  border-color: #78b6c2;
  background: linear-gradient(140deg,#fff,#dceff1);
  box-shadow: 0 5px 16px #15677b0e, inset 0 1px 0 #fff;
}
#process .process-guide-tab::after {
  content: ''; position: absolute; bottom: 0; left: 18%; right: 18%; height: 2px;
  background: linear-gradient(90deg,transparent,#2198ac,transparent);
  transform: scaleX(0); transition: transform .5s var(--visual-ease);
}
#process .process-guide-tab[aria-selected="true"]::after { transform:scaleX(1); }
#process .process-guide-panels {
  border-color: #cde4e8; border-radius: 17px;
  background: linear-gradient(135deg,#fff,#f2fafa);
  box-shadow: 0 14px 35px #164f6007, inset 0 1px 0 #fff;
}
.visual-touch-surface { position:relative; isolation:isolate; }
.tap-lustre {
  position:absolute; inset:0; z-index:6; border-radius:inherit;
  pointer-events:none; opacity:0;
  background: radial-gradient(ellipse 150px 100px at var(--touch-x,50%) var(--touch-y,50%),#63d6d35e, #9bdeda2e 42%,transparent 78%);
}
.cases .case-card.visual-poster {
  scale: var(--poster-scale,1);
  opacity: var(--poster-opacity,1);
  transform-origin: center center;
  transition: scale .35s var(--visual-ease), opacity .35s, box-shadow .35s;
}
@media (hover:hover) and (pointer:fine) {
  .cap-card:hover a span { background:#167f94; color:#fff; transform:rotate(-8deg); }
}

@media (max-width:760px) {
  html { scroll-padding-top:100px; }
  .site-header, .site-header.is-scrolled {
    top: max(9px,env(safe-area-inset-top)); left:12px; right:12px;
    height:62px; padding:0 13px; gap:6px;
    border:1px solid #c6e2e5a6; border-radius:20px;
    background:rgba(248,253,253,.88);
    -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
    box-shadow:0 8px 28px #105c7510, inset 0 1px 0 #fff;
  }
  .site-header.is-scrolled { background:rgba(248,253,253,.95); box-shadow:0 8px 28px #105c7520; }
  .site-header .brand-logo { width:114px; }
  .site-header .header-cta {
    min-height:38px; padding:8px 11px; font-size:10px; margin:0 0 0 auto;
    background:linear-gradient(140deg,#fff,#e9f6f7); border-color:#cae2e6;
  }
  .menu-toggle { flex:0 0 40px; min-width:40px; min-height:44px; font-size:20px; }
  .menu-toggle,.menu-toggle.is-open { position:relative; font-size:0; transform:none; }
  .menu-toggle::before,.menu-toggle::after {
    content:''; position:absolute; left:11px; width:18px; height:1.5px;
    background:#24576a; border-radius:2px; transition:transform .3s var(--visual-ease);
  }
  .menu-toggle::before { top:18px; }
  .menu-toggle::after { top:25px; }
  .menu-toggle.is-open::before { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle.is-open::after { transform:translateY(-3.5px) rotate(-45deg); }
  .site-header .main-nav.is-open {
    left:0; right:0; top:calc(100% + 9px); border-radius:20px; padding:10px;
    background:rgba(247,253,253,.98); box-shadow:0 20px 44px #164f6026;
  }
  .site-header .main-nav.is-open a { padding:14px 17px; border-radius:10px; }
  .site-header .main-nav.is-open a.is-active { background:#e5f3f5; }
  .hero { min-height:590px; }
  #hero .hero-editorial { gap:22px; }
  .section { padding-top:64px; padding-bottom:64px; }
  .section-intro { margin-bottom:30px; }
  .section-intro .eyebrow { color:#477685; letter-spacing:.08em; margin-bottom:18px; }
  .section-intro .eyebrow::before {
    width:28px; height:2px; border-radius:2px;
    background:linear-gradient(90deg,#138ca5,#91d4d0); opacity:1;
  }
  .section-intro h2, .numbers h2 { line-height:1.27; letter-spacing:-.045em; }
  .about { background:linear-gradient(155deg,#fff 40%,#f0f9f9); }
  .about-copy .lead { font-size:19px; line-height:1.75; color:#254f5e; }
  .about-copy p { color:#557580; }
  .about .arrow-link { border-color:#c9e3e7; }
  .capabilities {
    background-image:radial-gradient(ellipse at 100% 0%,#c8eaea8c,transparent 38%),linear-gradient(180deg,#edf7f8,#e6f3f4 55%,#f0f8f9);
    background-size:auto; border-color:#d7e9ec;
  }
  .cap-grid { gap:16px; }
  .cap-card, .cap-card:last-child {
    padding:24px; border-radius:22px; overflow:hidden;
    border:1px solid #bfdee3;
    background:radial-gradient(ellipse at 105% 105%,#d5efef96,transparent 62%),linear-gradient(135deg,#fffffffa,#f6fbfbe8);
    box-shadow:0 12px 26px #0f687b0b,inset 0 1px 0 #fff;
  }
  .cap-card.cap-feature {
    background:radial-gradient(ellipse at 100% 100%,#b0e0e2a3,transparent 67%),linear-gradient(140deg,#f9fefe,#e7f5f6);
    border-color:#96c8d1;
  }
  .cap-card h3 { font-size:21px; color:#153f51; margin-bottom:12px; font-weight:650; }
  .cap-card p { color:#537480; font-size:13px; line-height:1.85; }
  .cap-card a { margin-top:17px; min-height:38px; color:#1b7187; }
  .cap-card a span { width:31px; height:31px; font-size:18px; }
  .cap-card::after { left:24px; right:24px; height:1px; opacity:.65; }
  .cap-card.visual-entered::after { transform:scaleX(1); }
  .cap-card .optical-edge { border-radius:22px; }
  .cap-card.is-touched::before {
    opacity:1;
    background:radial-gradient(ellipse 180px 120px at var(--mx,50%) var(--my,50%),#66d8d44d,#b7e6e322 50%,transparent 80%);
  }
  .ai-stack { background:radial-gradient(ellipse at 100% 42%,#d7f1f066,transparent 60%),#f8fcfc; }
  .stack-rail { border-radius:17px; padding:6px; gap:5px; background:#eaf4f5; }
  .stack-step { border-radius:11px; min-height:47px; }
  .stack-step.active { background:linear-gradient(140deg,#fff,#f2fafa); box-shadow:0 3px 10px #23657a14,inset 0 0 0 1px #b7dbe1; }
  .stack-panel { border-radius:22px; border-color:#c6dfe4; padding:23px; box-shadow:0 18px 45px #17627610,inset 0 1px 0 #fff; }
  .stack-panel h3 { font-size:25px; line-height:1.5; }
  .stack-panel .stack-copy > p { color:#5b7b86; font-size:13px; }
  .stack-visual { border-radius:13px; box-shadow:0 8px 20px #063c4a18; }
  .brain-ui,.cockpit-ui,.growth-ui,.sales-ui,.digital-ui { border-radius:13px; }
  .stack-swipe-controls { padding-top:13px; }
  .stack-swipe-controls button { background:#fff; box-shadow:0 3px 9px #286f810a; }
  .cases { background:linear-gradient(165deg,#fff,#f6fbfc); }
  .cases-head .case-controls { border-radius:14px; background:#edf5f6; border-color:#dcebef; }
  .filter { border-radius:10px; }
  .filter.active { background:#fff; border-color:#b4d9e0; box-shadow:0 3px 9px #246d8010; }
  .cases .case-grid { padding-bottom:26px; padding-top:8px; }
  .cases .case-card,.cases .case-card.case-wide,.cases .case-card.case-large {
    border-radius:17px; border-color:#c9dfe4; box-shadow:0 10px 24px #114e5914;
  }
  .cases .case-card img { background:linear-gradient(140deg,#e9f2f4,#fbfdfd); }
  .cases .case-overlay { background:#fff; }
  .cases .case-overlay h3 { color:#244f61; }
  .gallery-buttons button { border-color:#c1dfe5; background:#fff; box-shadow:0 4px 12px #1a617a0b; }
  .numbers { background:radial-gradient(ellipse at 10% 0%,#dcefee,transparent 65%),#edf7f7; }
  .number-grid { display:grid; grid-template-columns:1fr; gap:10px; }
  .number-item {
    position:relative; overflow:hidden; border:1px solid #c6e1e4; border-radius:17px;
    padding:21px 16px; gap:10px; background:linear-gradient(130deg,#ffffffd9,#f1fafad9);
    box-shadow:0 5px 16px #28657605;
  }
  .number-item strong {
    font-size:clamp(27px,7.7vw,35px); line-height:1.15; letter-spacing:-.045em;
    background:linear-gradient(115deg,#0c657c,#2198a7); -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .number-item span { font-size:11px; line-height:1.65; color:#527580; }
  #process .process-guide-tabs { gap:5px; }
  #process .process-guide-tab { border-radius:11px; min-height:83px; padding:10px 3px; }
  #process .process-guide-tab-title { font-size:13px; }
  #process .process-guide-number { font-size:10px; }
  #process .process-guide-panel { padding:23px 18px; }
  #process .process-guide-summary { font-size:15px; color:#224f61; }
  #process .process-guide-detail { gap:15px; }
  #process .process-guide-detail > div + div { padding-left:15px; }
  #contact .contact-qr-wrap { box-shadow:0 24px 44px #07506524,inset 0 0 0 5px #ffffff66; }
  .site-footer { background:linear-gradient(140deg,#f7fcfc,#edf6f8); }
}
@media (max-width:350px) {
  .site-header,.site-header.is-scrolled { left:9px; right:9px; padding:0 10px; gap:3px; }
  .site-header .brand-logo { width:100px; }
  .site-header .header-cta { padding:8px 9px; }
  .cap-card,.cap-card:last-child { padding:22px; }
  .stack-panel { padding:19px; }
  .stack-panel h3 { font-size:23px; }
  .number-item { padding:20px 13px; }
  .number-item strong { font-size:27px; }
}
@media (max-width:380px) {
  #process .process-guide-detail { grid-template-columns:1fr; gap:16px; }
  #process .process-guide-detail > div + div { padding:16px 0 0; border-left:0; border-top:1px solid #dfedef; }
}
@media (hover:none) {
  .cap-card:hover h3,.cap-card:hover a,.cap-card:hover a span,
  .stack-step:hover,.stack-step:hover b,.cases .case-card:hover { transform:none; }
  .cases .case-card:hover img { filter:none; }
}
@media (prefers-reduced-motion:reduce) {
  .cases .case-card.visual-poster { scale:1; opacity:1; }
  .tap-lustre { display:none; }
  #process .process-guide-tab::after { transition:none; }
}
