@import url('/css/brand-system-2026.css');

/* Contents X 2026: shared visual language for pages outside Home and Services.
   Home and Services keep their own layouts; this sheet aligns the remaining pages. */
body.cx-sitewide {
  --accent: var(--cx-color-sales);
  --accent-light: rgba(0, 91, 250, .07);
  --accent-rgb: 0, 91, 250;
  --bg-white: var(--cx-color-white);
  --bg-light: var(--cx-color-surface);
  --text-primary: var(--cx-color-ink);
  --text-secondary: var(--cx-color-body);
  --text-muted: var(--cx-color-muted);
  --border: var(--cx-color-border);
  --cx-orange: var(--cx-color-creative);
  --cx-orange-soft: var(--cx-color-creative-soft);
  --cx-shell: 1250px;
  color: var(--text-secondary);
  background: var(--cx-color-white);
  font-family: var(--cx-font-ja);
  font-size: var(--cx-type-body);
  font-weight: var(--cx-weight-body);
}

body.cx-sitewide :is(button, input, select, textarea) { font-family: inherit; }
body.cx-sitewide :is(.ab-hero-title, .ab-statement-lead, .ab-value-jp, .ab-biz-title,
  .ab-cta-message-title, .ab-cta-message-quote, .ab-related-card-jp,
  .ot-lead, .ot-stat-sub, .ot-mvv-text, .ot-value-title, .ot-path-title,
  .ot-closing h2) { font-family: var(--cx-font-ja); }
body.cx-sitewide :is(.rc-hero-heading, .rc-number-value, .rc-section-label,
  .rc-pos-card-num, .rc-flow-marker span, .rc-cta-label, .ab-value-num,
  .ab-global-num, .ab-global-total-num, .ab-rm-year, .ot-stat-num) {
  font-family: var(--cx-font-latin);
}

body.cx-sitewide .container { max-width: var(--cx-shell); padding-inline: clamp(20px, 4vw, 40px); }
body.cx-sitewide .header { border-bottom-color: var(--border); }
body.cx-sitewide .nav-link,
body.cx-sitewide .footer-links a { color: var(--text-secondary); }
body.cx-sitewide .nav-link:hover,
body.cx-sitewide .footer-links a:hover { color: var(--accent); }
body.cx-sitewide .footer { border-top-color: var(--border); background: var(--cx-color-white); }
body.cx-sitewide :is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
body.cx-sitewide :is(.section-label, .cx-col-hero-eyebrow, .rc-section-label, .ab-section-label, .ot-section-num) {
  color: var(--accent);
  font-size: var(--cx-type-label);
  font-weight: var(--cx-weight-strong);
  letter-spacing: .18em;
}
body.cx-sitewide :is(.ab-hero-eyebrow, .ot-hero-label) { font-size: var(--cx-type-label); }
body.cx-sitewide :is(.section-title, .news-page-heading, .partners-title, .leadership-hero-title) {
  color: var(--text-primary);
  font-size: var(--cx-type-section);
  font-weight: var(--cx-weight-heading);
  line-height: 1.3;
  letter-spacing: -.04em;
}
body.cx-sitewide :is(.nav-cta, .btn-primary) { border-radius: 999px; }
body.cx-sitewide :is(.btn-primary, .faq-cta-btn):not(:hover) { background: var(--text-primary); border-color: var(--text-primary); color: var(--cx-color-white); }
body.cx-sitewide :is(.btn-primary, .faq-cta-btn):hover { background: var(--accent); border-color: var(--accent); color: var(--cx-color-white); }

/* Company story pages retain their editorial layouts while sharing the palette. */
body.cx-sitewide.ab-page {
  --ab-bg-alt: var(--cx-color-surface);
  --ab-line: var(--cx-color-border);
  --ab-text: var(--cx-color-ink);
  --ab-text-mid: var(--cx-color-body);
  --ab-text-sub: var(--cx-color-muted);
  --ab-accent: var(--cx-color-sales);
  --ab-accent-soft: rgba(0, 91, 250, .07);
}
body.cx-sitewide .ab-hero {
  background: radial-gradient(ellipse at 80% 25%, rgba(0, 91, 250, .10), transparent 58%), #fff;
}
body.cx-sitewide .ab-section { padding-block: clamp(72px, 8vw, 112px); }
body.cx-sitewide .ab-section--alt { background: var(--bg-light); }
body.cx-sitewide .ab-hero-title,
body.cx-sitewide .ab-section-jp { font-family: var(--cx-font-ja); letter-spacing: -.04em; }
body.cx-sitewide .ab-hero-title { font-size: var(--cx-type-page); }
body.cx-sitewide .ab-section-jp { font-size: var(--cx-type-section); line-height: 1.35; }

body.cx-sitewide.ot-page {
  --ot-off-white: var(--cx-color-surface);
  --ot-warm-gray: #eef5ff;
  --ot-line: var(--cx-color-border);
  --ot-text-primary: var(--cx-color-ink);
  --ot-text-body: var(--cx-color-body);
  --ot-text-light: var(--cx-color-muted);
  --ot-accent: var(--cx-color-creative-text);
  --ot-accent-soft: rgba(250, 77, 18, .08);
}
body.cx-sitewide .ot-hero {
  background: radial-gradient(ellipse at 78% 42%, rgba(250, 77, 18, .17), transparent 58%), #f8fbff;
}
body.cx-sitewide .ot-section,
body.cx-sitewide .ot-section-alt { padding-block: clamp(72px, 9vw, 120px); }
body.cx-sitewide .ot-hero h1,
body.cx-sitewide .ot-section h2,
body.cx-sitewide .ot-section-alt h2 { font-family: var(--cx-font-ja); letter-spacing: -.035em; }
body.cx-sitewide .ot-hero h1 { font-size: var(--cx-type-page); line-height: 1.35; }

/* Listing, FAQ, contact and legal content. */
body.cx-sitewide .cx-col-hero { background: linear-gradient(110deg, #f0f7ff, #fff 68%); border-color: var(--border); }
body.cx-sitewide .cx-col-filter-chip.is-active { background: var(--text-primary); border-color: var(--text-primary); }
body.cx-sitewide .faq-hero { background: linear-gradient(110deg, #f0f7ff, #fff 68%); }
body.cx-sitewide .faq-hero h1,
body.cx-sitewide .legal-page h1 { color: var(--text-primary); }
body.cx-sitewide .faq-cta { background: linear-gradient(110deg, #eaf3ff, #fff 72%); border: 1px solid var(--border); }
body.cx-sitewide .faq-question::before { background: var(--text-primary); }
body.cx-sitewide .legal-page { color: var(--text-secondary); }
body.cx-sitewide .legal-page h2 { color: var(--text-primary); border-color: var(--border); }
body.cx-sitewide .legal-page .legal-intro,
body.cx-sitewide .legal-page th { background: var(--bg-light); }
body.cx-sitewide .legal-page .legal-intro { border-left-color: var(--accent); }
body.cx-sitewide .contact-main { padding-top: clamp(104px, 10vw, 140px); }
body.cx-sitewide .contact-form-section h1 {
  margin-bottom: 10px;
  color: var(--text-primary);
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -.04em;
}
body.cx-sitewide .rc-section-title { color: var(--text-primary); }
body.cx-sitewide .rc-hero-overlay { background: rgba(7, 20, 59, .58); }
body.cx-sitewide .rc-hero-heading { font-size: var(--cx-type-display); }
body.cx-sitewide .rc-hero-sub { color: var(--cx-color-white); }
body.cx-sitewide .rc-hero-nav-line { background: var(--cx-orange); }
body.cx-sitewide .rc-pill { background: var(--text-primary); }
body.cx-sitewide .rc-pill:hover { background: var(--accent); }

/* Static column articles use an older inline theme. These selectors win over it. */
body.cx-sitewide.cx-col-page .cx-col-hero { background: linear-gradient(135deg, #07143b, #143c79); }
body.cx-sitewide.cx-col-page .cx-col-hero h1 { color: var(--cx-color-white); }
body.cx-sitewide.cx-col-page .cx-col-hero-cat { background: var(--cx-color-sales); }
body.cx-sitewide.cx-col-page .cx-col-body { color: var(--text-secondary); }
body.cx-sitewide.cx-col-page .cx-col-body :is(h2, h3) { color: var(--text-primary); border-color: var(--accent); }
body.cx-sitewide.cx-col-page .cx-col-body :is(a, strong),
body.cx-sitewide.cx-col-page .cx-col-toc-label,
body.cx-sitewide.cx-col-page .cx-col-toc-list li::before { color: var(--cx-color-sales); }
body.cx-sitewide.cx-col-page .cx-col-toc { background: var(--bg-light); border-left-color: var(--accent); }
body.cx-sitewide.cx-col-page .cx-col-toc-list a:hover { color: var(--accent); border-color: var(--accent); }
body.cx-sitewide.cx-col-page .cx-col-body blockquote { background: var(--bg-light); border-left-color: var(--accent); }
body.cx-sitewide.cx-col-page .cx-col-cta { background: linear-gradient(120deg, #07143b, #12458c); }
body.cx-sitewide.cx-col-page .cx-col-cta :is(h3, p) { color: var(--cx-color-white); }

/* Standalone 404 page. */
body.cx-sitewide .num {
  background: linear-gradient(110deg, var(--cx-color-sales) 0%, var(--cx-color-sales) 49%, var(--cx-color-creative) 51%, var(--cx-color-creative) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
body.cx-sitewide .suggest-title { color: var(--accent); }
body.cx-sitewide .suggest a { color: var(--text-primary); border: 1px solid var(--border); }
body.cx-sitewide .suggest a:hover { background: var(--text-primary); color: var(--cx-color-white); }
body.cx-sitewide .home { background: var(--text-primary); min-height: 48px; }
body.cx-sitewide .home:hover { background: var(--accent); }

/* Generated column cards do not have the static cx-ui-card class. */
body.cx-sitewide .cx-col-card {
  transition: transform var(--cx-motion-ui) var(--cx-motion-ease),
    box-shadow var(--cx-motion-ui) ease,
    border-color var(--cx-motion-ui) ease;
}
body.cx-sitewide :is(.nav-cta, .btn-primary) {
  transition: transform var(--cx-motion-ui) var(--cx-motion-ease),
    color var(--cx-motion-fast) ease,
    background-color var(--cx-motion-fast) ease,
    border-color var(--cx-motion-fast) ease,
    box-shadow var(--cx-motion-ui) ease;
}
body.cx-sitewide .cx-col-featured-img img,
body.cx-sitewide .cx-col-card img {
  transition: transform .8s var(--cx-motion-ease);
}

@media (hover: hover) and (pointer: fine) {
  body.cx-sitewide .cx-col-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(7, 20, 59, .10);
  }
  body.cx-sitewide :is(.nav-cta, .btn-primary):hover { transform: translateY(-2px); }
  body.cx-sitewide .cx-col-featured-card:hover img,
  body.cx-sitewide .cx-col-card:hover img { transform: scale(1.035); }
}

@media (prefers-reduced-motion: no-preference) {
  body.cx-sitewide :is(.company .section-title, .news-page-heading, .cx-col-hero-title) {
    animation: cx-sitewide-title-in .8s var(--cx-motion-ease) both;
  }
  body.cx-sitewide .cx-motion-pending:not(.cx-motion-visible) {
    opacity: 0;
    transform: translate3d(0, 24px, 0);
  }
  body.cx-sitewide .cx-motion-pending.cx-motion-visible {
    opacity: 1;
    transform: none;
    transition: opacity var(--cx-motion-reveal) ease-out,
      transform var(--cx-motion-reveal) var(--cx-motion-ease);
  }
  body.cx-sitewide .cx-wipe-pending:not(.cx-wipe-visible) {
    clip-path: inset(0 100% 0 0);
  }
  body.cx-sitewide .cx-wipe-pending.cx-wipe-visible {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1.05s cubic-bezier(.77, 0, .18, 1);
  }
  body.cx-sitewide .ab-hero-eyebrow,
  body.cx-sitewide .ot-hero-label { animation-duration: .7s; animation-delay: .08s; animation-timing-function: var(--cx-motion-ease); }
  body.cx-sitewide .ab-hero-title,
  body.cx-sitewide .ot-hero h1 { animation-duration: .8s; animation-delay: .18s; animation-timing-function: var(--cx-motion-ease); }
  body.cx-sitewide .ab-hero-sub,
  body.cx-sitewide .ot-hero-sub { animation-duration: .8s; animation-delay: .3s; animation-timing-function: var(--cx-motion-ease); }
  body.cx-sitewide .ot-hero-line { animation-duration: .8s; animation-delay: .45s; }
}

@keyframes cx-sitewide-title-in {
  from { opacity: .25; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 768px) {
  body.cx-sitewide .container { padding-inline: 20px; }
  body.cx-sitewide .ab-section { padding-inline: 20px; }
  body.cx-sitewide .ab-section-jp { font-size: clamp(28px, 7vw, 46px); }
  body.cx-sitewide :is(.section-title, .news-page-heading, .partners-title, .leadership-hero-title) { font-size: clamp(30px, 7.2vw, 46px); }
  body.cx-sitewide.cx-col-page .cx-col-body { padding-inline: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.cx-sitewide *, body.cx-sitewide *::before, body.cx-sitewide *::after {
    animation: none !important;
    transition: none !important;
  }
  body.cx-sitewide .cx-motion-pending { opacity: 1 !important; transform: none !important; }
  body.cx-sitewide .cx-wipe-pending { clip-path: none !important; }
  body.cx-sitewide :is(.ab-hero-eyebrow, .ab-hero-title, .ab-hero-sub,
    .ot-hero-label, .ot-hero h1, .ot-hero-sub, .ot-hero-line) { opacity: 1 !important; }
}

/* Related corporate link lands below the fixed site header. */
#officers { scroll-margin-top: 100px; }
