/* Visual identity layer. Layout, data, table widths and first-fold chart stay in
   the section styles. This file is loaded after experience.css. */
:root {
  --visual-navy: #12354f;
  --visual-sky: #eaf4fe;
  --visual-line: #d9e6f1;
  --visual-card-shadow: 0 3px 5px #193b5703, 0 16px 35px #193b5707;
}

/* A crisp masthead, with an intentional current-section marker. */
.header {
  background: #ffffffef;
  border-bottom-color: #dce8f3;
  box-shadow: 0 3px 16px #15375005;
}
.brand-symbol {
  background: linear-gradient(145deg, #3298ed, #126bce 72%);
  box-shadow: inset 0 1px 0 #ffffff40, 0 5px 12px #126bce1a;
}
#main-nav > a:not(.btn) { position: relative; }
#main-nav > a[aria-current="page"]:not(.btn)::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: 2px;
  border-radius: 2px;
  background: #1779d7;
}
.nav-search { background: #f7fbff; border-color: #d6e5f2; }
.btn:not(.btn-outline):not(.btn-white):not(.product-cta) {
  background: linear-gradient(120deg, #167ce1, #0968c4);
  box-shadow: inset 0 1px 0 #ffffff22, 0 6px 16px #0968c416;
}
.btn:not(.btn-outline):not(.btn-white):not(.product-cta):hover {
  background: linear-gradient(120deg, #0c69c6, #0758a5);
  box-shadow: inset 0 1px 0 #ffffff22, 0 8px 19px #0968c423;
}
.btn-outline { border-color: #cbddec; }
.btn-outline:hover { border-color: #9ebfe0; }
.btn:disabled { transform: none; box-shadow: none; }

/* Light comes from one direction, so page introductions and the chart feel
   related. Nothing is added to the chart's height or above it on mobile. */
.hero {
  position: relative;
  background:
    radial-gradient(ellipse at 90% 15%, #c5e5fb8c, transparent 53%),
    linear-gradient(115deg, #fff 28%, #f0f7fe 100%);
  border-bottom: 1px solid #ddebf6;
}
.hero-copy h1 em { color: #1379d9; }
.hero-visual .visual-orbit { border-color: #bad9ef; opacity: .7; }
.nbu-chart-card {
  border-color: #cbdff0;
  background: linear-gradient(170deg, #fff 80%, #f6fbff);
  box-shadow: 0 2px 2px #12354f03, 0 20px 45px #264f7410;
}
.nbu-chart-card::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 24px;
  right: 24px;
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: linear-gradient(90deg, #1d82e1, #87c9f4);
  pointer-events: none;
}
.nbu-rate-summary strong { color: var(--visual-navy); }
.nbu-chart-card [data-nbu-period][aria-pressed="true"] {
  color: #135da6;
  background: #e5f1fc;
  border-color: #c7dff3;
}
.nbu-data-badge { background: #eef7fd; border-color: #cbdff0; }

/* Section changes are visible as broad quiet surfaces, not extra decoration. */
.data-home-access {
  background: linear-gradient(135deg, #edf5fc, #f7fbff);
  border-block-color: #dce9f4;
}
.services-section {
  background: linear-gradient(130deg, #f2f7fc, #eaf3fb);
  border-block-color: #dce7f1;
}
.about-section {
  background: linear-gradient(125deg, #edf5fc, #f7fafd 65%);
  border-block: 1px solid #dce8f2;
}
.section-heading .eyebrow,
.products-section-heading .eyebrow,
.library-heading .eyebrow,
.data-hero > .container > .eyebrow,
.sample-hero > .container > .eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-heading .eyebrow::before,
.products-section-heading .eyebrow::before,
.library-heading .eyebrow::before,
.data-hero > .container > .eyebrow::before,
.sample-hero > .container > .eyebrow::before {
  content: '';
  flex: 0 0 20px;
  height: 2px;
  background: #2d8ddd;
}
.home-find-field input { background: #fff; box-shadow: 0 3px 12px #163d5605; }
.home-task-card {
  background: linear-gradient(150deg, #fff 75%, #f3f8fd);
  border-color: #d6e4f1;
  box-shadow: var(--visual-card-shadow);
  transition: border-color .18s, box-shadow .18s, transform .18s;
}
.home-task-card:hover {
  background: linear-gradient(150deg, #fff 65%, #eaf5ff);
  border-color: #8bbde8;
  box-shadow: 0 5px 8px #193b5703, 0 18px 36px #193b570d;
}
.home-task-card > span { border-top: 1px solid #e0eaf3; padding-top: 14px; width: 100%; }
.service-card { border-color: #d6e4ef; box-shadow: 0 5px 18px #183f5905; }
.service-icon {
  border: 1px solid #d5e7f6;
  background: linear-gradient(135deg, #eef7fe, #dfedfa);
  box-shadow: inset 0 1px 0 #ffffffa6;
}
.service-number { color: #6889a7; }
.research-art, .article-illustration img { border-color: #d4e3f0; }
.research-card .research-art { box-shadow: 0 12px 24px #173d580a; }

/* The three price tiers now have a visible hierarchy. The business tier is a
   single dark anchor; detailed content retains the same contrast when opened. */
.product-card { border-color: #d8e5f0; box-shadow: var(--visual-card-shadow); }
.product-card-free { background: linear-gradient(145deg, #fff 72%, #f5f9fd); }
.product-card-overview {
  border-color: #b4d2ed;
  background: linear-gradient(145deg, #fff 58%, #edf6fe);
}
.product-card-quarterly {
  border-color: #214c6c;
  background: linear-gradient(145deg, #1a4563, #12354f 74%);
  box-shadow: 0 18px 36px #12354f18;
  color: #fff;
}
.product-card-quarterly h3,
.product-card-quarterly .product-price strong,
.product-card-quarterly .product-audience strong,
.product-card-quarterly .product-details h4 { color: #fff; }
.product-card-quarterly .product-description,
.product-card-quarterly .product-number,
.product-card-quarterly .product-price > span,
.product-card-quarterly .product-audience,
.product-card-quarterly .product-deliverables,
.product-card-quarterly .product-card-action > p,
.product-card-quarterly .product-details p { color: #cadceb; }
.product-card-quarterly .product-scope {
  background: #ffffff12;
  border-color: #ffffff30;
  color: #d6ecff;
}
.product-card-quarterly .product-summary-facts li {
  background: #ffffff0f;
  border: 1px solid #ffffff18;
  color: #d6e6f4;
}
.product-card-quarterly .product-cta { background: #eaf5ff; color: #17466c; }
.product-card-quarterly .product-cta:hover { background: #fff; color: #0c5dab; }
.product-card-quarterly .home-product-details,
.product-card-quarterly .product-sample-link,
.product-card-quarterly .product-details summary,
.product-card-quarterly .product-deliverables li::before { color: #9ed1fa; }
.product-card-quarterly .product-details,
.product-card-quarterly .product-audience,
.product-card-quarterly .product-sample-link { border-color: #ffffff24; }
.product-card-quarterly .product-value { background: #ffffff0f; color: #e8f2fa; border-left-color: #8ec7f4; }
.products-hero-map { border-color: #cadfee; box-shadow: 0 18px 38px #163b550e; }
.products-process { background: linear-gradient(135deg, #f0f6fc, #f7fbfe); }
.products-step { box-shadow: 0 7px 20px #163b5505; }
.products-step > span { background: #eaf4fe; border-color: #bed8ef; }
.rating-request-section {
  background: linear-gradient(135deg, #edf5fc, #f8fbfe);
  border-block: 1px solid #dce8f3;
}

/* Information pages read as documents on a pale desk. Numbered source tables
   remain ordinary accessible tables, with all overflow behavior untouched. */
body:has(.data-hero) { background: #f8fbfe; }
.data-hero, .products-hero, .journal-hero, .article-hero, .sample-hero {
  background:
    radial-gradient(ellipse at 100% 0, #cce6f982, transparent 57%),
    linear-gradient(115deg, #fff 15%, #edf5fc 100%);
  border-bottom-color: #d5e4f1;
}
.data-card {
  border-color: #d5e3ef;
  background: linear-gradient(150deg, #fff 82%, #f5f9fd);
  box-shadow: 0 2px 4px #163b5502, 0 10px 28px #163b5505;
  transition: border-color .18s, box-shadow .18s, transform .18s;
}
.data-card:hover { border-color: #8dbde5; box-shadow: 0 12px 30px #163b550b; }
.data-card .data-card-label { color: #326fa4; }
.data-card .data-card-link { margin-top: auto; padding-top: 24px; }
.data-stat {
  border-color: #d5e5f2;
  background: linear-gradient(145deg, #fff, #f3f8fe);
  box-shadow: 0 5px 16px #163b5504;
}
.data-stat strong { color: #1a6cbb; font-variant-numeric: tabular-nums; }
.data-prose > section:not(.data-table-widget) { border-color: #dce7f1; box-shadow: 0 4px 17px #163b5503; }
.data-table-widget, .profile-history { border-color: #d2e1ee; box-shadow: 0 6px 22px #163b5504; }
.data-table-controls { background: #f2f7fc; }
.data-table-widget th { background: #eaf2fa; color: #42617d; }
.data-table-meta { background: #fff; }
.data-table-widget tr:hover td { background: #f0f7fd; }
.data-doc-item { background: #fff; border-color: #dce7f1; }
.data-subnav a { box-shadow: 0 2px 4px #153b5503; }
.data-subnav a[aria-current="page"] { background: #176fc5; border-color: #176fc5; }
.data-toc { border-top-color: #2b86d6; }
.data-toc a:hover { color: #0f67b8; }

/* The rating remains the most prominent fact in a company profile. */
.profile-summary-card {
  border-color: #bdd6eb;
  background: linear-gradient(140deg, #fff 50%, #edf6fd);
  box-shadow: 0 4px 10px #163b5503, 0 18px 42px #163b5508;
}
.profile-grade { border-left: 3px solid #2c86d9; padding-left: 17px; }
.profile-grade dd { color: #126ac1; }
.profile-state { border: 1px solid #cbdff0; background: #e9f4fc; color: #205f94; }
.profile-state-muted { border-color: #dce3e9; background: #eff3f6; color: #526779; }
.profile-timeline li { border-left-color: #9ccbf1; }
.compare-controls { background: linear-gradient(140deg, #fff, #edf5fc); border-color: #cddfec; }
.compare-card { box-shadow: var(--visual-card-shadow); border-color: #cddfed; }
.compare-pick[aria-pressed="true"] { background: #e8f3fd; border-color: #76afe0; }
.search-start { background: linear-gradient(135deg, #fff, #eff6fc); }
.search-result { box-shadow: 0 6px 20px #163b5505; }

/* Journal illustrations and report previews act as visual entry points. */
.journal-feature { box-shadow: 0 18px 40px #163b550c; border-color: #c8dfef; }
.journal-card { box-shadow: 0 6px 18px #163b5506; border-color: #d8e5f0; }
.journal-card:hover { box-shadow: 0 14px 30px #163b550d; }
.article-sidebar { background: #f7fbfe; border-color: #d3e3ef; }
.article-takeaway { background: #eaf4fd; border-left-color: #3b8fdb; }
.report-preview-card {
  border-color: #c5dcec;
  background: linear-gradient(140deg, #fff 35%, #e9f3fc);
  box-shadow: 0 8px 24px #163b5507;
}
.report-preview-card .eyebrow { color: #3674a8; }
.report-preview-link { border-top: 1px solid #d4e4f1; padding-top: 18px; }
.sample-observations article { border-color: #d9e6f1; box-shadow: 0 4px 15px #163b5503; }
.sample-toc { background: #f2f7fc; }
.sample-figure svg { border: 1px solid #d9e7f2; border-radius: 12px; background: #fff; }

/* New agency art is conceptual; photographs of a real team are not implied. */
.agency-illustration { margin: 0; min-width: 0; }
.agency-illustration img, img.agency-illustration {
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto;
  border: 1px solid #d4e3ef;
  border-radius: 20px;
  background: #eef5fc;
  box-shadow: 0 12px 30px #163b550a;
}
.agency-illustration figcaption { color: #58738b; font-size: 11px; line-height: 1.7; margin-top: 12px; }
.agency-card-image { display: block; width: 100%; height: auto; border-radius: 11px; background: #edf5fc; }

/* A navy closing block makes the page feel complete without darkening the
   reading surfaces. Links and small source text retain explicit contrast. */
.contact-section {
  background: linear-gradient(120deg, #174c75, #12354f 78%);
  border: 1px solid #17486b;
  box-shadow: 0 16px 30px #12354f15;
}
.contact-section .eyebrow { color: #b6d9f6; }
.contact-section p:not(.eyebrow) { color: #cee1f0; }
.contact-section .btn-white { color: #155a91; box-shadow: 0 5px 14px #071e351a; }
.footer {
  background: linear-gradient(120deg, #143952, #102e44);
  border-top: 1px solid #1e4765;
  color: #edf6ff;
}
.footer .brand strong { color: #fff; }
.footer .brand small { color: #b9cddb; }
.footer-grid > div > p { color: #8fadc4; letter-spacing: .04em; }
.footer-grid > div > a { color: #d0e1ee; }
.footer-grid > div > a:hover { color: #fff; }
.footer-note { color: #abc2d3; border-top-color: #ffffff1a; }
.footer-note a { color: #b8dafa; }
.footer .site-provenance { color: #adc3d5; }
.footer .site-provenance summary { color: #c7dceb; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .home-task-card:hover, .data-card:hover { transform: translateY(-3px); }
  .service-card:hover { box-shadow: 0 10px 25px #163b5508; }
}
@media (max-width: 1120px) {
  #main-nav > a[aria-current="page"]:not(.btn)::after { left: 13px; right: auto; width: 22px; bottom: 4px; }
}
@media (max-width: 620px) {
  .nbu-chart-card { box-shadow: 0 8px 22px #264f740b; }
  .nbu-chart-card::before { left: 20px; right: 20px; height: 2px; }
  .home-task-card > span { padding-top: 12px; }
  .profile-grade { padding-left: 12px; border-left-width: 2px; }
  .agency-illustration img, img.agency-illustration { border-radius: 14px; }
  .product-card-quarterly { box-shadow: 0 12px 25px #12354f12; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .home-task-card:hover, .data-card:hover, .journal-card:hover,
  .journal-feature:hover, .report-preview-card:hover, .btn:hover { transform: none !important; }
}
@media print {
  body, body:has(.data-hero) { background: #fff; }
  .hero, .data-hero, .products-hero, .journal-hero,
  .article-hero, .sample-hero { background: #fff; }
  .footer, .contact-section { display: none !important; }
  *, *::before, *::after { box-shadow: none !important; }
  .product-card-quarterly { background: #fff; color: #112b47; border-color: #b7c9d7; }
  .product-card-quarterly h3, .product-card-quarterly p,
  .product-card-quarterly span, .product-card-quarterly strong,
  .product-card-quarterly h4, .product-card-quarterly li,
  .product-card-quarterly summary, .product-card-quarterly a { color: #112b47 !important; }
  .profile-grade { border-left-color: #668dab; }
  .sample-figure svg { border-radius: 0; }
}
