/* WCAG 2.0 AA defaults apply without enabling reading preferences. */
:root {
  --brand-dark: #925000;
  --brand-deep: #925000;
  --accent-clay-dark: #925000;
  --editorial-accent: #925000;
  --muted: #515c6b;
}

/* Keep orange branding while using readable labels on orange controls. */
body :is(.btn-primary, .nav-cta),
body :is(.btn-primary, .nav-cta):hover {
  color: #1c2531;
  background: #f39a17;
  border-color: #f39a17;
}
body :is(.btn-primary, .nav-cta):hover { background: #ffb13e; }
body .header-mobile-cta--whatsapp,
body .header-mobile-cta--whatsapp:hover,
body .btn-wa-inline,
body .btn-wa-inline:hover {
  color: #fff;
  background: #116b39;
  border-color: #116b39;
}
body .site-whatsapp-fab,
body .site-whatsapp-fab:hover,
body .site-whatsapp-fab-label { color: #fff; }
body .site-whatsapp-fab-icon { background: #116b39; }

/* Light surfaces and dark artwork bands have separate text colours. */
body main :is(.eyebrow, .ai-outcome-card__kicker) { color: #925000; }
body main :is(.case-detail-label, .related-page-card-eyebrow, .page-hero-trust-hint, .insight-card-tag) { color: #515c6b !important; }
body main :is(.adoption-answer, .adoption-final) .eyebrow,
body main .editorial-section--dark :is(.eyebrow, .ai-outcome-card__kicker),
body main .art-band :is(.eyebrow, .section-card-tag, .home-case-tag-pill-label),
body main > section[class*="-cta"]:not([class*="mid-"]):not([class*="pre-cta"]):not([class*="saas-cta"]) :is(.eyebrow, .section-card-tag, .home-case-tag-pill-label),
body main > section.geo-answer-summary :is(.eyebrow, .section-card-tag, .home-case-tag-pill-label),
body.page-id-home main .section-home-ai-focus :is(.eyebrow, .section-card-tag, .home-case-tag-pill-label) {
  color: #fbb449 !important;
}
body main .art-band .case-detail-label { color: #d6dde8 !important; }
body .site-footer .footer-region-group-label { color: #c8d2df; }

/* Text links carry a non-colour cue; navigation and card controls retain theirs. */
main :is(p, li, dd, td, figcaption) > a:not(.btn):not(.chip):not(.home-case-tag-pill):not(.case-card-link):not(.related-page-card-link),
main .contact-email-cta,
main .insight-related-chips a,
.site-footer .footer-meta a {
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: .08em;
}

/* A two-tone focus ring remains visible over both light and dark surfaces. */
body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #102b46 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px #fff !important;
}
body .skip-link:focus-visible { z-index: 10000; }
#main-content { scroll-margin-top: 6rem; }
body #main-content:focus { outline: none; box-shadow: none; }
body :is(input, select, textarea)::placeholder { color: #515c6b; opacity: 1; }
body :is(input, select, textarea)[aria-invalid="true"] { border: 2px solid #a31922; }
.ig-field-error { display: block; margin-top: .35rem; color: #a31922; font-weight: 600; }
.ig-required-help { font-size: .9rem; }
.product-filter-search-label { display: block; margin-bottom: .35rem; font-weight: 650; }

/* Collapsed disclosure content must not remain in keyboard or screen-reader order. */
body [hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media (forced-colors: active) {
  body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline-color: Highlight !important;
    box-shadow: none !important;
  }
}

/* DOM and visual order both follow brand, navigation, then utility controls. */
body:is(.site-hk-zh, .site-hk-en, .site-hk-cn) .site-head .site-head-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
}
body:is(.site-hk-zh, .site-hk-en, .site-hk-cn) .site-head .site-header-bar { display: contents; }
body:is(.site-hk-zh, .site-hk-en, .site-hk-cn) .site-head .brand { grid-column: 1; grid-row: 1; }
body:is(.site-hk-zh, .site-hk-en, .site-hk-cn) .site-head .site-header-end {
  display: flex;
  grid-column: 2;
  grid-row: 1;
  justify-content: flex-end;
  min-height: var(--header-height);
}
body:is(.site-hk-zh, .site-hk-en, .site-hk-cn) .site-head .site-nav { grid-column: 1 / -1; grid-row: 2; }
@media (min-width: 980px) {
  body:is(.site-hk-zh, .site-hk-en, .site-hk-cn) .site-head .site-head-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }
  body:is(.site-hk-zh, .site-hk-en, .site-hk-cn) .site-head .site-nav {
    grid-column: 2; grid-row: 1; justify-self: end;
  }
  body:is(.site-hk-zh, .site-hk-en, .site-hk-cn) .site-head .site-header-end { grid-column: 3; }
}

/* Show the medical service summary in full instead of a mouse-only scroll box. */
body.page-id-industry-medical .page-hero-visual {
  max-height: none;
  height: auto;
  overflow-y: hidden;
}

/* Card wording remains complete at browser zoom and when reading preferences change. */
html:is([data-ig-a11y-text], [data-ig-a11y-spacing], [data-ig-a11y-lines]) main * {
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}
body main :is(.logo-card-name, .insight-card-excerpt, .related-page-card-desc, .section-card-desc, .section-card-desc--catalog, .ig-case-card__title, .ig-case-card__outcome),
body .contact-prep-section .section-card > p {
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

/* Verified text on gradient and photo backgrounds needs explicit contrast. */
body .proof-strip-attrib { color: #515c6b !important; }
body .work-case-visual:not(.work-case-visual--dark) .work-delivery-stage small,
body .work-case-visual:not(.work-case-visual--dark) .work-visual-proof strong {
  color: #263846 !important;
}
body :is(.hero-visual, .page-hero-visual) :is(.hero-visual-label, .page-hero-visual-label) {
  color: #fff !important;
  background: #102b46 !important;
}
body :is(.hero-visual, .page-hero-visual) :is(.hero-visual-highlight-grid, .page-hero-visual-highlight-grid) {
  display: grid;
  gap: .6rem;
}
body :is(.hero-visual, .page-hero-visual) :is(.hero-visual-highlight-card, .page-hero-visual-highlight-card) {
  min-width: 0;
  padding: .65rem .75rem;
  border-radius: .5rem;
  background: #102b46 !important;
  overflow-wrap: anywhere;
}
body :is(.hero-visual-highlight-card, .page-hero-visual-highlight-card) :is(strong, span) {
  display: block;
  color: #fff !important;
}
body :is(.hero-visual, .page-hero-visual):has(.hero-visual-highlight-grid, .page-hero-visual-highlight-grid) {
  max-height: none !important;
  height: auto !important;
}
body :is(.hero-visual, .page-hero-visual) :is(.hero-visual-photo-micro, .page-hero-visual-photo-micro) {
  position: absolute;
  z-index: 4;
  color: #fff !important;
  background: #102b46 !important;
  padding: .4rem .65rem;
  border-radius: .35rem;
}
body :is(.hero-visual, .page-hero-visual) :is(.hero-visual-delivery-scope, .page-hero-visual-delivery-scope) {
  background: #102b46 !important;
  border-radius: .65rem;
  padding: .75rem;
}
body :is(.hero-visual, .page-hero-visual) :is(.hero-visual-delivery-scope, .page-hero-visual-delivery-scope) :is(p, li, span) {
  color: #fff !important;
}
body .btn-wa-inline :is(.btn-wa-label, .btn-wa-arrow) { color: #fff !important; }
body .btn-wa-inline,
body .btn-wa-inline:hover {
  color: #fff !important;
  background: #116b39 !important;
  border-color: #116b39 !important;
}
body main :is(.step-micro-label, .portfolio-screen-capture-note, .logo-group-summary, .related-pages-intro) {
  color: #515c6b !important;
}
body main .art-band .step-micro-label { color: #d6dde8 !important; }
body :is(.hero-visual, .page-hero-visual) :is(.hero-visual-chip, .page-hero-visual-chip) {
  color: #fff !important;
  background: #102b46 !important;
}
body main :is(.case-direction-category, .case-direction-detail > dt) { color: #515c6b !important; }
body main .chip--trust { color: #633400 !important; }
body main .art-band .chip--trust { color: #fbb449 !important; }
/* Photo summaries also grow with their text, including at browser zoom. */
body :is(.hero-visual, .page-hero-visual):has(.hero-visual-delivery-scope, .page-hero-visual-delivery-scope) {
  max-height: none !important;
  height: auto !important;
}
/* Production funding pages use a separate dark hero and brighter link theme. */
body .funding-hero .funding-eyebrow { color: #fbb449 !important; }
body .funding-featured-banner .sector-link--emphasis,
body .funding-hero ~ section .sector-link--emphasis {
  color: #03679b !important;
}

/* Field-specific errors include a linked summary and visible correction guidance. */
.ig-form-errors{margin:0 0 1.25rem;padding:1rem 1.25rem;border:2px solid #a31922;border-radius:6px;background:#fff5f5;color:#79141b;overflow-wrap:anywhere}
.ig-form-errors p{margin:0 0 .5rem;font-weight:650}
.ig-form-errors ul{margin:.5rem 0 0;padding-left:1.25rem}
.ig-form-errors a{color:#79141b;text-decoration:underline;text-underline-offset:.15em}
.ig-form-field-error{margin:.4rem 0 .75rem;color:#a31922;font-size:.9rem;font-weight:600;line-height:1.5;overflow-wrap:anywhere}

/* Row headers retain the existing table layout and their mobile labels. */
body .comparison-table tbody th[scope="row"] {
  background: transparent;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  border-bottom: 1px solid rgba(221, 227, 236, .95);
}
body .comparison-table tbody tr:last-child th[scope="row"] { border-bottom: 0; }
body .comparison-table--hover tbody tr:hover th[scope="row"] { background: #f8fafc; }
body.page-id-industries .comparison-table--industries tbody th[scope="row"] {
  padding: 14px 16px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.55;
  border-bottom: 1px solid #edf1f7;
}
@media (max-width: 719px) {
  body .comparison-table--mobile-stack:not(.comparison-table--industries) tbody th[scope="row"] {
    display: grid;
    grid-template-columns: minmax(7rem, 34%) minmax(0, 1fr);
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    border: 0;
    overflow-wrap: anywhere;
  }
  body .comparison-table--mobile-stack:not(.comparison-table--industries) tbody th[scope="row"] + td {
    border-top: 1px solid rgba(221, 227, 236, .95);
  }
  body .comparison-table--mobile-stack:not(.comparison-table--industries) tbody th[scope="row"]::before {
    content: attr(data-label);
    color: #526071;
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.45;
  }
  body.page-id-industries .comparison-table--industries {
    display: block;
    min-width: 0;
    width: 100%;
  }
  body.page-id-industries .comparison-table--industries tbody { display: block; }
  body.page-id-industries .comparison-table--industries thead {
    display: block;
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
  }
  body.page-id-industries .comparison-table--industries tbody th[scope="row"] {
    display: block;
    width: 100% !important;
    padding: 8px 0;
    border: 0;
    overflow-wrap: anywhere;
  }
  body.page-id-industries .comparison-table--industries tbody th[scope="row"] + td { border-top: 1px dashed #e5eaf0; }
  body.page-id-industries .comparison-table--industries tbody th[scope="row"]::before {
    content: attr(data-label);
    display: block;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 4px;
  }
}
@media (max-width: 420px) {
  body .comparison-table--mobile-stack:not(.comparison-table--industries) tbody th[scope="row"] {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
}

.html-site-map{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
.html-site-map ul{margin:0;padding-left:1.25rem}
.html-site-map li{margin:.6rem 0;overflow-wrap:anywhere}

/* Browser text enlargement must also grow or wrap visual summaries. */
body .ai-economics-equation { grid-template-columns: repeat(7, minmax(0, auto)); min-width: 0; }
body .ai-economics-equation__term { min-width: 0; overflow-wrap: anywhere; }
body .work-visual-status { white-space: normal; max-width: 100%; min-width: 0; }
body main dd { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 900px) {
  body .ai-economics-equation { grid-template-columns: 1fr; width: 100%; }
  body .ai-economics-equation__operator { text-align: center; }
}
.comparison-cell-value {
  min-width: 0;
  overflow-wrap: anywhere;
}
