/* Shared presentation for Default, About, Contact, Insights, Services, Service Detail and Work. */
body.page:not(.home) {
  --ip-canvas: #f4f6f8;
  --ip-paper: #fff;
  --ip-ink: #101828;
  --ip-muted: #667085;
  --ip-line: #dfe4ea;
  --ip-blue: #1769e0;
  --ip-blue-soft: #e8f0ff;
  --ip-night: #0b1324;
  background: var(--ip-canvas);
  color: var(--ip-ink);
}
body.page:not(.home) .site-main { overflow: clip; background: var(--ip-canvas); color: var(--ip-ink); }
body.page:not(.home) .shell { width: min(1180px,calc(100vw - 48px)); max-width: none; }
body.page:not(.home) .narrow { width: min(780px,calc(100vw - 48px)); }
body.page:not(.home) .section { padding: clamp(88px,10vw,140px) 0; }
body.page:not(.home) h1,
body.page:not(.home) h2,
body.page:not(.home) h3,
body.page:not(.home) h4 { color: var(--ip-ink); font-family: Inter,"Noto Sans SC","Microsoft YaHei",sans-serif; font-weight: 500; }
body.page:not(.home) h2 { font-size: clamp(2.5rem,5vw,4.8rem); line-height: .98; letter-spacing: -.055em; }
body.page:not(.home) h3 { letter-spacing: -.035em; }
body.page:not(.home) .eyebrow,
body.page:not(.home) .post-meta,
body.page:not(.home) .card-index,
body.page:not(.home) .step-number { color: var(--ip-blue); font-family: Inter,"Noto Sans SC","Microsoft YaHei",sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .14em; }
body.page:not(.home) a:hover { color: var(--ip-blue); }
body.page:not(.home) .text-link { color: var(--ip-blue); font-size: 13px; font-weight: 600; }
body.page:not(.home) .button { border-color: var(--ip-night); border-radius: 999px; background: var(--ip-night); color: #fff; }
body.page:not(.home) .button:hover,
body.page:not(.home) .button:focus-visible { border-color: var(--ip-blue); background: var(--ip-blue); color: #fff; }

/* A shared thesis hero with a quiet search-signal field. */
body.page:not(.home) .page-hero,
body.page:not(.home) .service-hero,
body.page:not(.home) .about-hero {
  position: relative;
  overflow: hidden;
  min-height: min(720px,78vh);
  padding: clamp(120px,14vw,190px) 0 clamp(90px,10vw,140px);
  display: flex;
  align-items: flex-end;
  border-bottom: 1px solid var(--ip-line);
  background:
    radial-gradient(circle at 82% 16%,rgba(23,105,224,.13),transparent 27%),
    radial-gradient(circle at 13% 88%,rgba(110,231,183,.08),transparent 24%),
    linear-gradient(180deg,#fbfcfd 0%,var(--ip-canvas) 100%);
}
body.page:not(.home) .page-hero::after,
body.page:not(.home) .service-hero::after,
body.page:not(.home) .about-hero::after {
  position: absolute;
  right: -15vw;
  bottom: -56vw;
  width: min(76vw,1050px);
  aspect-ratio: 1;
  border: 1px solid rgba(23,105,224,.13);
  border-radius: 50%;
  box-shadow: 0 0 0 10vw rgba(255,255,255,.24),0 0 0 21vw rgba(23,105,224,.025);
  content: "";
  pointer-events: none;
}
body.page:not(.home) .page-hero-inner,
body.page:not(.home) .service-hero-grid,
body.page:not(.home) .about-hero-grid { position: relative; z-index: 1; }
body.page:not(.home) .page-hero-inner { width: min(1180px,calc(100vw - 48px)); max-width: none; margin-inline: auto; }
body.page:not(.home) .page-hero h1,
body.page:not(.home) .service-hero h1,
body.page:not(.home) .about-hero h1 {
  max-width: 11ch;
  margin: 24px 0 0;
  font-size: clamp(4.2rem,8.2vw,8.2rem);
  font-weight: 600;
  line-height: .88;
  letter-spacing: -.07em;
}
body.page:not(.home) .page-hero .hero-copy,
body.page:not(.home) .service-hero .hero-copy,
body.page:not(.home) .about-hero .hero-copy {
  max-width: 650px;
  margin-top: 34px;
  color: var(--ip-muted);
  font-size: clamp(1rem,1.35vw,1.22rem);
  line-height: 1.68;
}
body.page:not(.home) .service-hero-grid,
body.page:not(.home) .about-hero-grid { width: min(1180px,calc(100vw - 48px)); grid-template-columns: minmax(0,1.1fr) minmax(300px,.6fr); gap: clamp(60px,10vw,150px); align-items: end; }
body.page:not(.home) .about-intro { padding: 28px 0 0; border-top: 1px solid var(--ip-line); color: var(--ip-muted); font-size: 1.08rem; line-height: 1.78; }

/* Service signal: same material language as the homepage process panel. */
body.page:not(.home) .service-symbol {
  min-height: 370px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 30px;
  background: rgba(255,255,255,.68);
  box-shadow: 0 30px 80px rgba(32,49,77,.12);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
body.page:not(.home) .service-symbol::before { position: absolute; inset: 30px; border: 1px solid var(--ip-line); border-radius: 20px; content: ""; }
body.page:not(.home) .service-symbol span { border-color: rgba(23,105,224,.22); border-radius: 18px; }
body.page:not(.home) .service-symbol span:nth-child(1) { background: rgba(232,240,255,.82); }
body.page:not(.home) .service-symbol span:nth-child(2) { background: rgba(255,255,255,.84); }
body.page:not(.home) .service-symbol span:nth-child(3) { height: 2px; background: var(--ip-blue); }

/* Section structure and reusable information components. */
body.page:not(.home) .section + .section { border-top: 1px solid var(--ip-line); }
body.page:not(.home) .section-heading { grid-template-columns: 170px minmax(0,1fr) minmax(280px,.55fr); gap: 46px; align-items: start; margin-bottom: 58px; }
body.page:not(.home) .section-heading .eyebrow { grid-column: auto; margin: 7px 0 0; }
body.page:not(.home) .section-heading h2 { margin: 0; }
body.page:not(.home) .section-heading p:last-child { margin: 7px 0 0; color: var(--ip-muted); font-size: 15px; line-height: 1.7; }
body.page:not(.home) .split-heading { grid-template-columns: minmax(240px,.72fr) minmax(0,1.28fr); gap: clamp(55px,9vw,130px); }
body.page:not(.home) .prose { color: #475467; font-size: clamp(1rem,1.2vw,1.16rem); line-height: 1.82; }
body.page:not(.home) .prose h2,
body.page:not(.home) .prose h3 { margin-top: 1.8em; }
body.page:not(.home) .prose a { color: var(--ip-blue); }
body.page:not(.home) .prose blockquote { border-left-color: var(--ip-blue); border-radius: 0 18px 18px 0; background: var(--ip-paper); box-shadow: 0 16px 44px rgba(16,24,40,.06); font-family: inherit; }

body.page:not(.home) .service-directory,
body.page:not(.home) .situation-grid,
body.page:not(.home) .capability-grid,
body.page:not(.home) .principle-grid {
  gap: 18px;
  border: 0;
  background: transparent;
}
body.page:not(.home) .service-directory article,
body.page:not(.home) .situation-grid article,
body.page:not(.home) .capability-grid article,
body.page:not(.home) .principle-grid article {
  min-height: 270px;
  padding: 32px;
  border: 1px solid rgba(16,24,40,.08);
  border-radius: 24px;
  background: rgba(255,255,255,.84);
  color: var(--ip-ink);
  box-shadow: 0 18px 48px rgba(16,24,40,.055);
  transition: transform 240ms ease,box-shadow 240ms ease,border-color 240ms ease;
}
body.page:not(.home) .service-directory article:hover,
body.page:not(.home) .situation-grid article:hover,
body.page:not(.home) .capability-grid article:hover,
body.page:not(.home) .principle-grid article:hover { transform: translateY(-5px); border-color: rgba(23,105,224,.2); box-shadow: 0 26px 62px rgba(16,24,40,.1); }
body.page:not(.home) .service-directory article:nth-child(odd) { border-right: 1px solid rgba(16,24,40,.08); }
body.page:not(.home) .service-directory article h2 { margin-top: 42px; font-size: clamp(1.8rem,3vw,2.8rem); }
body.page:not(.home) .service-directory article p,
body.page:not(.home) .situation-grid article p,
body.page:not(.home) .capability-grid article p,
body.page:not(.home) .principle-grid article p { color: var(--ip-muted); }
body.page:not(.home) .service-directory .text-link { left: 32px; bottom: 30px; }
body.page:not(.home) .situation-grid article > span { color: var(--ip-blue); }
body.page:not(.home) .section-forest { background: linear-gradient(135deg,#eef5ff 0%,#f8fafc 62%,#edf8f5 100%); color: var(--ip-ink); }
body.page:not(.home) .section-forest .eyebrow { color: var(--ip-blue); }
body.page:not(.home) .section-forest p,
body.page:not(.home) .section-forest a { color: var(--ip-muted); }
body.page:not(.home) .section-forest h2,
body.page:not(.home) .section-forest h3 { color: var(--ip-ink); }

body.page:not(.home) .process-list,
body.page:not(.home) .deliverable-list,
body.page:not(.home) .experience-list,
body.page:not(.home) .faq-list { border-top-color: #aeb8c6; }
body.page:not(.home) .process-list li,
body.page:not(.home) .deliverable-list article,
body.page:not(.home) .experience-list article,
body.page:not(.home) .faq-list details { border-bottom-color: var(--ip-line); }
body.page:not(.home) .process-list h3,
body.page:not(.home) .deliverable-list h3,
body.page:not(.home) .experience-list h3 { font-size: clamp(1.35rem,2vw,1.75rem); }
body.page:not(.home) .process-list p,
body.page:not(.home) .deliverable-list p,
body.page:not(.home) .experience-list p { color: var(--ip-muted); }

/* Work and insight cards use calm evidence surfaces rather than old colored blocks. */
body.page:not(.home) .work-grid { gap: 70px 32px; }
body.page:not(.home) .insight-grid { gap: 60px 24px; }
body.page:not(.home) .case-visual,
body.page:not(.home) .insight-visual,
body.page:not(.home) .featured-insight-visual {
  overflow: hidden;
  border: 1px solid rgba(16,24,40,.08);
  border-radius: 26px;
  background: var(--ip-paper);
  box-shadow: 0 22px 55px rgba(16,24,40,.08);
}
body.page:not(.home) .case-card-body,
body.page:not(.home) .insight-card-body { padding: 24px 4px 8px; }
body.page:not(.home) .case-card h3,
body.page:not(.home) .insight-card h3 { font-family: Inter,"Noto Sans SC","Microsoft YaHei",sans-serif; }
body.page:not(.home) .case-card-body > p:not(.eyebrow):not(.tag-line),
body.page:not(.home) .insight-card-body > p:not(.post-meta),
body.page:not(.home) .featured-insight p:not(.eyebrow) { color: var(--ip-muted); }
body.page:not(.home) .tag-line { border-top-color: var(--ip-line); color: var(--ip-muted); }
body.page:not(.home) .case-fallback { background: linear-gradient(135deg,#edf3ff,#f8fafc); }
body.page:not(.home) .case-fallback i { border-color: rgba(23,105,224,.2); border-radius: 16px; background: rgba(255,255,255,.84); }
body.page:not(.home) .case-fallback i:nth-child(2) { background: rgba(223,235,255,.85); }
body.page:not(.home) .case-fallback i:nth-child(3) { border-radius: 0; background: var(--ip-blue); }
body.page:not(.home) .editorial-fallback { background: linear-gradient(135deg,#e8f0ff,#f8fafc); }
body.page:not(.home) .editorial-fallback::before { border-color: rgba(23,105,224,.24); border-radius: 18px; }
body.page:not(.home) .editorial-fallback i:first-child { border-radius: 14px; background: #fff; }
body.page:not(.home) .editorial-fallback i:last-child { border-radius: 14px; background: #dfeaff; }
body.page:not(.home) .featured-insight { grid-template-columns: 1.15fr .85fr; }
body.page:not(.home) .featured-insight h2 { font-size: clamp(2.3rem,4vw,4.4rem); }

/* About capabilities. */
body.page:not(.home) .capability-matrix { gap: 0 28px; border-top-color: #aeb8c6; }
body.page:not(.home) .capability-matrix article { border-color: var(--ip-line); }
body.page:not(.home) .capability-matrix article:not(:nth-child(3n)) { border-right: 0; margin-right: 0; }
body.page:not(.home) .capability-matrix li { color: var(--ip-muted); }
body.page:not(.home) .capability-matrix li::before { color: var(--ip-blue); }
body.page:not(.home) .tool-list span { border-color: var(--ip-line); border-radius: 999px; background: var(--ip-paper); color: var(--ip-ink); }

/* Contact is a quiet two-panel workspace. */
body.page:not(.home) .contact-grid { grid-template-columns: minmax(0,1.15fr) minmax(300px,.65fr); gap: 24px; }
body.page:not(.home) .contact-panel,
body.page:not(.home) .contact-fit {
  padding: clamp(30px,4vw,52px);
  border: 1px solid rgba(16,24,40,.08);
  border-radius: 28px;
  background: rgba(255,255,255,.84);
  color: var(--ip-ink);
  box-shadow: 0 22px 60px rgba(16,24,40,.07);
}
body.page:not(.home) .contact-fit li { border-bottom-color: var(--ip-line); color: var(--ip-muted); }
body.page:not(.home) .direct-email { border-top-color: var(--ip-line); }
body.page:not(.home) .direct-email span { color: var(--ip-muted); }
body.page:not(.home) .direct-email a { color: var(--ip-blue); }
body.page:not(.home) .editor-notice { border-left-color: var(--ip-blue); border-radius: 0 14px 14px 0; background: var(--ip-blue-soft); }
body.page:not(.home) .fluentform input:not([type="submit"]),
body.page:not(.home) .fluentform textarea,
body.page:not(.home) .fluentform select,
body.page:not(.home) .frm-fluent-form input:not([type="submit"]),
body.page:not(.home) .frm-fluent-form textarea,
body.page:not(.home) .frm-fluent-form select { padding: 14px 16px!important; border: 1px solid var(--ip-line)!important; border-radius: 14px!important; background: #f8fafc!important; }
body.page:not(.home) .fluentform button,
body.page:not(.home) .fluentform input[type="submit"],
body.page:not(.home) .frm-fluent-form button,
body.page:not(.home) .frm-fluent-form input[type="submit"] { border-radius: 999px!important; background: var(--ip-night)!important; }
body.page:not(.home) .faq-list summary { font-family: Inter,"Noto Sans SC","Microsoft YaHei",sans-serif; font-size: 1.18rem; font-weight: 500; }
body.page:not(.home) .faq-list summary::after { color: var(--ip-blue); }
body.page:not(.home) .faq-list details > div { color: var(--ip-muted); }

/* Shared conversion and footer treatment. */
body.page:not(.home) .cta-section { padding: clamp(72px,9vw,120px) 0; background: var(--ip-canvas); }
body.page:not(.home) .cta-panel {
  min-height: 350px;
  border-radius: clamp(24px,3vw,40px);
  background: radial-gradient(circle at 85% 20%,rgba(23,105,224,.42),transparent 25%),var(--ip-night);
  color: #fff;
}
body.page:not(.home) .cta-panel h2,
body.page:not(.home) .cta-panel p { color: #fff; }
body.page:not(.home) .cta-panel .button-light { border-color: #fff; background: #fff; color: var(--ip-night); }
body.page:not(.home) .site-footer { border-top: 0; background: #050914; color: #fff; }
body.page:not(.home) .site-footer .footer-tagline { max-width: 520px; color: #aab3c2; font-family: Inter,"Noto Sans SC","Microsoft YaHei",sans-serif; font-size: clamp(16px,1.4vw,20px); line-height: 1.55; letter-spacing: -.01em; }
body.page:not(.home) .site-footer a { color: #fff; }
body.page:not(.home) .empty-state { padding: 28px; border-color: var(--ip-line); border-radius: 18px; background: var(--ip-paper); color: var(--ip-muted); }
body.page:not(.home) .pagination .page-numbers { border-color: var(--ip-line); border-radius: 50%; }
body.page:not(.home) .pagination .current { border-color: var(--ip-blue); background: var(--ip-blue); color: #fff; }
body.page:not(.home) :focus-visible { outline-color: var(--ip-blue); }

@media (max-width: 980px) {
  body.page:not(.home) .page-hero,
  body.page:not(.home) .service-hero,
  body.page:not(.home) .about-hero { min-height: 620px; }
  body.page:not(.home) .service-hero-grid,
  body.page:not(.home) .about-hero-grid,
  body.page:not(.home) .split-heading,
  body.page:not(.home) .contact-grid { grid-template-columns: 1fr; gap: 54px; }
  body.page:not(.home) .section-heading { grid-template-columns: 130px 1fr; }
  body.page:not(.home) .section-heading p:last-child { grid-column: 2; }
  body.page:not(.home) .service-symbol { max-width: 620px; min-height: 300px; }
  body.page:not(.home) .featured-insight,
  body.page:not(.home) .featured-case .case-card { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  body.page:not(.home) .shell,
  body.page:not(.home) .narrow,
  body.page:not(.home) .page-hero-inner,
  body.page:not(.home) .service-hero-grid,
  body.page:not(.home) .about-hero-grid { width: calc(100vw - 32px); }
  body.page:not(.home) .section { padding: 78px 0; }
  body.page:not(.home) .page-hero,
  body.page:not(.home) .service-hero,
  body.page:not(.home) .about-hero { min-height: 540px; padding: 110px 0 74px; }
  body.page:not(.home) .page-hero h1,
  body.page:not(.home) .service-hero h1,
  body.page:not(.home) .about-hero h1 { font-size: clamp(3.5rem,17vw,5.4rem); }
  body.page:not(.home) .section-heading { display: block; }
  body.page:not(.home) .section-heading .eyebrow { margin-bottom: 24px; }
  body.page:not(.home) .section-heading p:last-child { margin-top: 22px; }
  body.page:not(.home) .service-directory,
  body.page:not(.home) .situation-grid,
  body.page:not(.home) .capability-grid,
  body.page:not(.home) .principle-grid,
  body.page:not(.home) .work-grid,
  body.page:not(.home) .insight-grid,
  body.page:not(.home) .capability-matrix { grid-template-columns: 1fr; }
  body.page:not(.home) .service-directory article,
  body.page:not(.home) .situation-grid article,
  body.page:not(.home) .capability-grid article,
  body.page:not(.home) .principle-grid article { min-height: 240px; }
  body.page:not(.home) .contact-panel,
  body.page:not(.home) .contact-fit { padding: 28px 22px; border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  body.page:not(.home) .service-directory article,
  body.page:not(.home) .situation-grid article,
  body.page:not(.home) .capability-grid article,
  body.page:not(.home) .principle-grid article { transition: none; }
}
