/* IPBRIDGE — "Apple-like" design layer.
   Loaded after the homepage stylesheet (base.css) on every page. It redefines
   the design tokens and refines components; layout and behaviour are untouched.
   Principles: white and #f5f7fb surfaces, one accent blue, Inter (SF-style)
   type with tight tracking, generous space, soft depth, no decorative noise. */

@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/assets/fonts/inter-latin-var-f052ee44c3.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --ink:#ffffff;--ink-2:#f5f7fb;--panel:#ffffff;--panel-2:#f5f7fb;
  --line:rgba(0,0,0,.08);--line-strong:rgba(0,0,0,.14);
  --azure:#2563eb;--azure-soft:#1d4ed8;--cyan:#2563eb;--amber:#f59e0b;
  --text:#0f172a;--muted:#475569;--faint:#64748b;
  --glow-azure:none;
  --shadow-card:0 4px 14px rgba(0,0,0,.04),0 24px 48px -24px rgba(0,0,0,.18);
  --radius:24px;--radius-sm:16px;--maxw:1120px;
  --font-display:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif;
  --font-body:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;
  --font-mono:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.25,.1,.25,1)}

html{background:#fff}
body{background:#fff;color:var(--text);font-family:var(--font-body);font-feature-settings:"cv11","ss01";letter-spacing:-.011em;-webkit-font-smoothing:antialiased}
body:before,body:after{display:none!important}
::selection{background:rgba(37,99,235,.2);color:inherit}
h1,h2,h3,h4{font-family:var(--font-display)}

/* Dark contexts: Apple's near-black, blue links */
.nav:not(.scrolled),#results,#connect,.mobile-menu,.band{
  --ink:#0b1220;--ink-2:#0f172a;--panel:#16213a;--panel-2:#1c2945;
  --line:rgba(255,255,255,.12);--line-strong:rgba(255,255,255,.22);
  --azure:#60a5fa;--azure-soft:#60a5fa;--cyan:#fbbf24;--amber:#fbbf24;
  --text:#f5f7fb;--muted:#94a3b8;--faint:#64748b}

/* ---------- Buttons ---------- */
.btn{font-family:var(--font-body);font-weight:500;font-size:1rem;letter-spacing:-.01em;padding:12px 24px;border-radius:980px;transition:background .2s var(--ease),color .2s,border-color .2s,transform .2s var(--ease)}
.btn-primary,.btn-primary:hover{background:#2563eb;color:#fff;box-shadow:0 8px 20px -10px rgba(37,99,235,.6);border-color:transparent}
.btn-primary:hover{background:#1d4ed8;transform:none}
.btn-primary:active{background:#1e40af}
.sub .btn-primary{color:#fff}
.btn-ghost{background:transparent;border:1px solid #2563eb;color:#2563eb;-webkit-backdrop-filter:none;backdrop-filter:none}
.btn-ghost:hover{background:#2563eb;color:#fff;border-color:#2563eb;transform:none}
.hero .btn-ghost,#results .btn-ghost,#connect .btn-ghost,.band .btn-ghost{border-color:rgba(255,255,255,.6);color:#fff}
.hero .btn-ghost:hover,.band .btn-ghost:hover{background:#fff;color:#0f172a;border-color:#fff}
.btn svg{width:15px;height:15px}

/* ---------- Navigation: frosted glass ---------- */
.nav{border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(255,255,255,.72)!important;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)}
.nav-inner{height:64px}
.brand{font-weight:600;font-size:1.15rem;letter-spacing:-.02em}
.brand-mark{width:30px;height:30px}
.nav-links a{font-size:.88rem;font-weight:400;letter-spacing:-.005em;color:var(--text);opacity:.82;padding:8px 13px;border-radius:980px}
.nav-links a:hover,.nav-links a[aria-current]{opacity:1;background:rgba(0,0,0,.05)}
.nav:not(.scrolled) .nav-links a:hover{background:rgba(255,255,255,.1)}
.nav-phone{font-family:var(--font-body);font-size:.88rem}
.nav-cta .btn-primary{padding:9px 18px!important;font-size:.88rem}
.lang-toggle{border-color:var(--line-strong)}
.burger{border-radius:980px;border-color:var(--line-strong)}
.mobile-menu{background:rgba(11,18,32,.95)!important;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);inset:64px 0 auto 0}
.mobile-menu a{font-size:1.4rem;font-weight:600;letter-spacing:-.02em;border-bottom-color:rgba(255,255,255,.1)}
body.sub{padding-top:64px}

/* ---------- Hero ---------- */
.hero{background:#070b14}
.hero-center{max-width:1000px}
.hero h1{font-weight:700;font-size:clamp(2.8rem,6.4vw,5rem);line-height:1.02;letter-spacing:-.045em}
.hero h1 em,.text-grad{background:linear-gradient(90deg,#2563eb 0%,#3b82f6 50%,#f59e0b 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.hero h1 em:after{display:none}
.hero h1 .hero-kicker{display:block;margin:0 auto 18px;font-size:clamp(.82rem,1.3vw,.95rem);font-weight:600;line-height:1.3;letter-spacing:.14em;text-transform:uppercase;color:#93c5fd;-webkit-text-fill-color:#93c5fd}
.hero h1 em.text-grad,.hero .text-grad{background-image:linear-gradient(90deg,#93c5fd 0%,#60a5fa 45%,#fbbf24 100%)!important}
.hero-sub{font-size:clamp(1.12rem,1.9vw,1.4rem);line-height:1.45;font-weight:400;letter-spacing:-.015em;color:#cbd5e1;max-width:640px}
.hero-actions{gap:14px}
.hero .hero-actions .btn-primary,.hero .btn-primary{background:#2563eb;color:#fff;box-shadow:0 10px 30px -12px rgba(37,99,235,.7)}
.hero .hero-actions .btn-primary:hover{background:#3b82f6}
.hero-actions .btn{padding:14px 28px;font-size:1.05rem}
.hero-proof{font-family:var(--font-body);font-size:.88rem;letter-spacing:-.005em;color:#94a3b8}
.hero-veil{background:radial-gradient(90% 70% at 50% 45%,rgba(7,11,20,.15),rgba(7,11,20,.6) 100%),linear-gradient(180deg,rgba(7,11,20,.5) 0%,rgba(7,11,20,.15) 35%,rgba(7,11,20,.5) 75%,#070b14 100%)!important}

/* ---------- Trust strip ---------- */
.trust{background:#fff;border:0;padding:44px 0 40px}
.trust-label{font-family:var(--font-body);font-size:.8rem;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--faint)}
.marquee-item{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-.02em;color:#64748b}
.marquee-item svg{color:#cbd5e1}

/* ---------- Sections ---------- */
.section{padding:128px 0}
.section--tight{padding:112px 0}
#services,#references,#faq{background:#f5f7fb}
#insights,#industries,#contact{background:#fff}

.section-head{max-width:760px;margin:0 auto 72px;text-align:center}
.section-head h2,.contact-info h2{font-weight:700;font-size:clamp(2.3rem,5.2vw,3.75rem);line-height:1.05;letter-spacing:-.04em;color:var(--text)}
.section-head p{margin:20px auto 0;font-size:clamp(1.08rem,1.6vw,1.3rem);line-height:1.5;letter-spacing:-.015em;color:var(--muted);max-width:640px}
.eyebrow{font-family:var(--font-body);font-size:.95rem;font-weight:600;letter-spacing:-.01em;text-transform:none;color:#b45309;margin-bottom:12px}
.eyebrow:before{display:none}
#results .eyebrow,#connect .eyebrow,.footer .eyebrow,.band .eyebrow{color:#f59e0b}
#results .text-grad,#connect .text-grad,.footer .text-grad{background-image:linear-gradient(90deg,#60a5fa,#fbbf24)}

/* ---------- Cards ---------- */
.card,.insight-card,.ref-card,.ind,.form,.stats{border:0;box-shadow:var(--shadow-card)}
.card{background:#fff;border-radius:28px;padding:36px 32px;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.card:after{display:none}
.card:hover{transform:scale(1.015);box-shadow:0 6px 18px rgba(0,0,0,.05),0 32px 64px -28px rgba(0,0,0,.24)}
.card h3{font-weight:600;font-size:1.45rem;line-height:1.2;letter-spacing:-.025em}
.card p{font-size:1.02rem;line-height:1.55;color:var(--muted)}
.card-num{font-family:var(--font-body);font-weight:500;color:#cbd5e1}
.card li{color:var(--text);font-size:.95rem}
.card li svg{color:#2563eb}
.card-ico{border:0!important;background:#f5f7fb!important;color:#2563eb!important;border-radius:14px!important;box-shadow:none!important}
.card-list .ico-check{color:#2563eb}
.services-grid{gap:20px}

/* Stats */
.stats{background:#16213a;border-radius:28px;max-width:760px}
.stat{border-color:rgba(255,255,255,.08)!important}
.stat .num{font-weight:700;letter-spacing:-.045em;font-size:clamp(3rem,6vw,4.5rem);background:linear-gradient(90deg,#60a5fa,#93c5fd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.stat .lbl{font-size:1rem;color:#94a3b8}

/* Industries */
.ind{background:#f5f7fb;box-shadow:none;border-radius:20px;padding:22px 24px;transition:transform .4s var(--ease),background .3s}
.ind:hover{background:#eaeef5;transform:none}
.ind .ico{background:#fff;color:#2563eb;border-radius:12px}
.ind b{font-weight:600;letter-spacing:-.02em}

/* References */
.ref-card{background:#fff;border-radius:20px;padding:18px 20px}
.ref-card:hover{transform:translateY(-2px)}
.ref-group-head [class*=tag],.ref-group-head span:first-child{font-family:var(--font-body)!important;letter-spacing:0!important;text-transform:none!important;font-weight:600}

/* Insights */
.insight-card{background:#f5f7fb;box-shadow:none;border-radius:24px;padding:30px 28px 26px}
.insight-card:hover{background:#eaeef5}
.insight-title{font-weight:600;letter-spacing:-.02em}
.insight-cta{font-family:var(--font-body);font-size:.95rem;font-weight:500;letter-spacing:-.01em;color:#2563eb}
.insight-cta:hover{color:#1d4ed8;text-decoration:underline}

.insight-cat{font-family:var(--font-body)!important;font-size:.75rem!important;font-weight:600;letter-spacing:0!important;text-transform:none!important;color:#2563eb!important;background:rgba(37,99,235,.08)!important;border:0!important;border-radius:980px}
.insight-meta{font-family:var(--font-body);font-size:.82rem;color:var(--faint)}

/* FAQ */
.faq-item{background:#fff;border:0;border-radius:18px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.faq-item summary{font-family:var(--font-display);font-weight:600;font-size:1.1rem;letter-spacing:-.02em;padding:22px 56px 22px 26px}
.faq-item p{padding:0 26px 24px;font-size:1.02rem;line-height:1.6}

/* Contact & forms */
.contact-info{text-align:left}
.contact-info h2{text-align:left}
.form{background:#f5f7fb;box-shadow:none;border-radius:28px;padding:36px}
.field label{font-family:var(--font-body);font-size:.85rem;font-weight:500;letter-spacing:-.005em;color:var(--text)}
.field input,.field select,.field textarea{background:#fff;border:1px solid #cbd5e1;border-radius:12px;font-size:1rem;padding:14px 16px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.15)}
.form .btn-primary{width:100%;padding:15px 24px;font-size:1.05rem}

/* ---------- Footer: Apple-style light ---------- */
.footer{--line:rgba(0,0,0,.1);--line-strong:rgba(0,0,0,.16);--text:#0f172a;--muted:#475569;--faint:#64748b;
  background:#f5f7fb!important;color:#475569;border-top:0;padding:56px 0 28px;font-size:.82rem}
.footer .brand{color:#0f172a}
.footer-brand p{color:#475569;font-size:.88rem;line-height:1.55}
.footer-h{font-family:var(--font-body);font-size:.8rem;font-weight:600;letter-spacing:-.005em;text-transform:none;color:#0f172a;margin-bottom:10px}
.footer-col a{font-size:.82rem;color:#475569;padding:4px 0;min-height:32px}
.footer-col a:hover{color:#0f172a;text-decoration:underline;transform:none}
.footer-tel{color:#2563eb!important;font-weight:600}
.footer-contact a{color:#0f172a}
.footer-contact span{font-family:var(--font-body);color:#64748b}
.footer-top{border-bottom:1px solid rgba(0,0,0,.1)}
.footer-bottom{font-family:var(--font-body);font-size:.78rem;color:#64748b}
.footer-bottom a:hover{color:#0f172a!important;text-decoration:underline}

.footer .footer-col .footer-h{text-transform:none!important;letter-spacing:-.005em!important;color:#0f172a!important;font-family:var(--font-body)!important}
.footer .brand b,.footer .brand span{color:#0f172a;background:none;-webkit-text-fill-color:currentColor}
.footer .brand b{color:#2563eb}
.cmeta .ico{background:#f5f7fb!important;color:#2563eb!important;border:0!important;border-radius:12px}
.cmeta b{font-family:var(--font-body)!important;text-transform:none!important;letter-spacing:-.005em!important;font-weight:600;color:#0f172a!important;font-size:.85rem!important}
.cmeta span:not(.ico){font-size:1.02rem;color:#334155}

/* Brand logos in the technologies strip */
.marquee-brand{gap:10px}
.marquee-logo{height:15px;width:auto;display:block}

/* ---------- Lenovo partner badge ---------- */
.partner-strip{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:30px;flex-wrap:wrap;text-align:left}
.partner-strip img{width:120px;height:auto;border-radius:12px;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.partner-strip p{margin:0;max-width:520px;font-size:.92rem;line-height:1.5;color:#475569}
.partner-strip strong{color:#0f172a}
.partner-strip a{color:#2563eb;font-weight:500;white-space:nowrap}
.partner-strip a:hover{text-decoration:underline}
.footer-partner{display:inline-block;margin-top:18px;min-height:0!important}
.footer-partner img{width:120px;height:auto;border-radius:10px;display:block}
.partner-note{display:flex;gap:20px;align-items:center;margin:8px 0 28px;padding:20px;background:#f5f7fb;border-radius:20px}
.partner-note img{width:150px;height:auto;flex:0 0 auto;border-radius:12px}
.partner-note figcaption{font-size:1rem;line-height:1.6;color:#334155}
.partner-note strong{color:#0f172a}
@media (max-width:640px){.partner-note{flex-direction:column;align-items:flex-start}.partner-strip{text-align:center}}

/* ---------- Chat ---------- */
.chatbot-launcher{background:#2563eb;color:#fff;box-shadow:0 8px 24px -6px rgba(37,99,235,.6)}
.chatbot-window{border:0;border-radius:24px;box-shadow:0 30px 80px -20px rgba(0,0,0,.35)}

/* ---------- Sub-pages (services, guides, legal, 404) ---------- */
.page-hero{background:linear-gradient(180deg,#fafbfc 0%,#f5f7fb 100%);border-bottom:0}
.page-hero:after{display:none}
.page-hero>.wrap,.doc .page-hero>.doc-wrap{padding-top:72px;padding-bottom:72px}
.page-hero h1{font-weight:700;font-size:clamp(2.4rem,5.6vw,4rem);line-height:1.04;letter-spacing:-.045em}
.page-hero .lead,.page-hero .intro{font-size:clamp(1.1rem,1.7vw,1.32rem);line-height:1.5;letter-spacing:-.015em;color:var(--muted)}
.crumbs{font-family:var(--font-body);font-size:.85rem;letter-spacing:-.005em;text-transform:none;color:var(--faint);margin-bottom:22px}
.crumbs a{color:#2563eb}
.crumbs a:hover{border-bottom-color:transparent;text-decoration:underline}
.page-actions .btn{padding:13px 26px}
.page-actions .btn-ghost{background:transparent}
.page-actions .btn-ghost svg{display:none}

.prose{padding-top:80px}
.prose h2,.doc-body h2{font-weight:700;letter-spacing:-.035em;font-size:clamp(1.6rem,3vw,2.25rem);line-height:1.12}
.prose h3,.doc-body h3{font-weight:600;letter-spacing:-.02em}
.prose p,.prose li,.doc-body p,.doc-body li{font-size:1.08rem;line-height:1.65;color:#334155}
.prose section{border-top:1px solid rgba(0,0,0,.08);padding:48px 0}
.prose section[data-n]>h2:before{font-family:var(--font-body);font-size:.85rem;font-weight:600;letter-spacing:0;color:#b45309}
.prose a:not(.btn),.doc-body a:not(.btn){color:#2563eb;text-decoration:none}
.prose a:not(.btn):hover,.doc-body a:not(.btn):hover{text-decoration:underline}
.prose .note{font-family:var(--font-body);font-size:.85rem;letter-spacing:0}
.qa-item{background:#f5f7fb;border:0;border-radius:18px;padding:22px 26px}
.qa-item h3{margin:0 0 6px}
.qa-item p{font-size:1rem;color:var(--muted)}
.prose .links a{border-color:#2563eb;color:#2563eb;border-radius:980px;font-weight:500}
.prose .links a:hover{background:#2563eb;color:#fff;transform:none}

.band{background:#0b1220;border-radius:28px;box-shadow:none;padding:48px 44px}
.band:before{background:radial-gradient(circle,rgba(96,165,250,.28),transparent 65%)}
.band h2{font-weight:700;letter-spacing:-.035em}
.band a:not(.btn){color:#60a5fa!important;text-decoration:none!important}
.prose section.band{padding:48px 44px}

.svc-card,.res-card{background:#fff;border:0;border-radius:24px;box-shadow:var(--shadow-card);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.prose .svc-grid>section.svc-card{border-top:0;padding:30px 28px 28px}
.svc-card:hover,.res-card:hover{transform:scale(1.015);border:0;box-shadow:0 6px 18px rgba(0,0,0,.05),0 32px 64px -28px rgba(0,0,0,.24)}
.svc-card:before{font-family:var(--font-body);font-weight:500;color:#cbd5e1}
.svc-card h2,.res-card h2{font-weight:600;letter-spacing:-.025em;font-size:1.25rem}
.svc-card .more,.res-more{font-family:var(--font-body);font-size:.95rem;letter-spacing:-.01em;text-transform:none;font-weight:500;color:#2563eb}
.svc-card:hover .more,.res-card:hover .res-more{color:#2563eb;text-decoration:underline}
.svc-grid,.res-grid{gap:20px}
main.svc,.res-grid{background:transparent}

.doc-meta{font-family:var(--font-body);font-size:.88rem}
.doc-meta .cat,.res-meta .cat{font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:0;text-transform:none;color:#2563eb;background:rgba(37,99,235,.08);border:0}
.res-meta{font-family:var(--font-body);font-size:.85rem}
.doc-body li::marker{color:#2563eb}
.doc-body blockquote{border-left-color:#2563eb;background:#f5f7fb}
.doc-table{border:0;background:#f5f7fb;border-radius:18px}
.doc-table th{font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:0;text-transform:none;color:#0f172a;background:#eaeef5;border-bottom:0}
.doc-table td{border-bottom:1px solid rgba(0,0,0,.06)}
.doc-cta{border:0}
.ig{background:#f5f7fb;border:0;border-radius:24px;padding:1.6rem}
.ig-step,.ig-tile,.ig-site{background:#fff;border:0;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.ig-layer{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.ig-tile .k,.ig-site .h,.ig-zone .v{font-family:var(--font-body);letter-spacing:0;text-transform:none;color:#b45309}
.ig .ig-step .ig-num{background:#2563eb;color:#fff;font-family:var(--font-body)}
.ig-arrow{color:#64748b}
.ig-zone{background:#fff;border:1px dashed rgba(0,0,0,.15)}
.ig-hub{background:linear-gradient(90deg,rgba(37,99,235,.1),rgba(167,139,250,.15))}
.ig-bar i,.ig-link .bar{background:linear-gradient(90deg,#2563eb,#f59e0b)}
.legal .muted{font-family:var(--font-body);font-size:.85rem;letter-spacing:0}
.nf .code{font-family:var(--font-body);font-weight:600;letter-spacing:0;color:#b45309;font-size:.95rem}
.nf h1{font-weight:700;letter-spacing:-.045em}
@media (max-width:640px){
  .page-hero>.wrap,.doc .page-hero>.doc-wrap{padding-top:48px;padding-bottom:52px}
  .prose{padding-top:56px}
  .band,.prose section.band{padding:34px 24px}
}

/* ---------- Motion ---------- */
.reveal{transition-timing-function:var(--ease)!important;transition-duration:.9s!important}

@media (max-width:860px){
  .section{padding:88px 0}
  .section--tight{padding:80px 0}
  .section-head{margin-bottom:48px}
  .card{padding:30px 26px}
  .form{padding:26px}
}
@media (max-width:640px){
  .section{padding:72px 0}
  .hero-proof{flex-direction:column;gap:8px}
  .hero-proof .sep{display:none}
  .hero h1{letter-spacing:-.04em}
}
