/* v1.2.61 — Global UI Foundation Core.
 * Exact cascade concatenation; original source CSS files remain in package for rollback.
 * Order: typography-clarity-v189 -> text-contrast-fix-v111 -> ui-polish-v112 -> surface-contrast-v1115.
 */

/* ===== SOURCE: typography-clarity-v189.css ===== */
/*
 * XAN Office — Typography & Contrast Clarity Standard v1.0.89
 * System-wide visual foundation only: font rendering, text contrast and light/dark surface colors.
 * No grid, width, spacing or positioning resets.
 * Brand-preserving clarity decision: Poppins 400 for reading, Poppins 500 for hierarchy/controls.
 */
:root{
  --xan-font-family:Poppins,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --xan-fw-body:400;
  --xan-fw-strong:500;
  --xan-type-primary:#0B252D;
  --xan-type-secondary:#1B3941;
  --xan-type-accent:#055970;
  --xan-type-inverse:#FFFFFF;
  --xan-type-placeholder:#425B63;
  --xan-bg:#FFFFFF;
  --xan-surface:#FFFFFF;
  --xan-text:#0B252D;
  --xan-muted:#1B3941;
  --xan-ink:#0B252D;
  --xan-petrol:#1B3941;
  --xan-brand:#055970;
  --xan-white:#FFFFFF;
}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  font-kerning:normal;
  font-synthesis:none;
  font-feature-settings:normal;
  text-rendering:auto;
}
body,
button,input,select,textarea{
  font-family:var(--xan-font-family)!important;
  font-synthesis:none!important;
  -webkit-font-smoothing:auto!important;
  -moz-osx-font-smoothing:auto!important;
  text-rendering:auto!important;
}
html body.xan-font-clarity-v189{
  background:#FFFFFF!important;
  color:var(--xan-type-primary)!important;
  font-weight:var(--xan-fw-body)!important;
  text-shadow:none!important;
}
html body.xan-font-clarity-v189 *{
  font-synthesis:none!important;
  text-shadow:none!important;
}
html body.xan-font-clarity-v189 :where(p,li,dd,dt,figcaption,address,blockquote,small,.xan-meta,.xan-card-meta,.xan-subtitle,.xan-muted,.xan-help,.xan-caption,.description){
  font-weight:var(--xan-fw-body)!important;
  color:var(--xan-type-secondary)!important;
  opacity:1!important;
  filter:none!important;
  letter-spacing:0;
}
html body.xan-font-clarity-v189 :where(h1,h2,h3,h4,h5,h6,strong,b,th,legend,label){
  font-weight:var(--xan-fw-strong)!important;
  color:var(--xan-type-primary);
  opacity:1!important;
  filter:none!important;
}
html body.xan-font-clarity-v189 :where(.xan-btn,button,[role="button"],nav a,.xan-nav a,.xan-login-link){
  font-weight:var(--xan-fw-strong)!important;
  opacity:1!important;
  filter:none!important;
}
html body.xan-font-clarity-v189 :where(h1,h2,h3,h4,h5,h6){
  letter-spacing:-.008em!important;
}
html body.xan-font-clarity-v189 :where(input,select,textarea){
  font-weight:var(--xan-fw-body)!important;
  color:var(--xan-type-primary)!important;
  background-color:#FFFFFF!important;
  opacity:1!important;
  filter:none!important;
}
html body.xan-font-clarity-v189 :where(input,textarea)::placeholder{
  color:var(--xan-type-placeholder)!important;
  opacity:1!important;
  font-weight:var(--xan-fw-body)!important;
}

/* Open application surfaces: pure white. Decorative media, badges and dark CTA surfaces are intentionally excluded. */
html body.xan-font-clarity-v189 :where(
  .xan-home-main,.xan-inner-page,.xan-inner-page-v114,.xan-project-detail-v134,
  .xan-project-page-body,.xan-listing-body,.xan-map-page-v151,
  .xan-card,.xan-blog-card-v124,.xan-detail-block,.xan-filter-panel,.xan-listing-toolbar,
  .xan-list-card,.xan-inner-content-card,.xan-home-copy-card,.xan-premium-copy,
  .xan-premium-card,.xan-tool-card,.xan-project-hero-shell-v120,.xan-project-hero-shell-v123,
  .xan-network-card-v177,.xan-network-office-card-v177,.xan-network-consultant-card-v177,
  .xan-lead-shell-v171
){
  background:#FFFFFF!important;
}

/* Major light page shells are intentionally flat white; tinted badges/media placeholders are not flattened. */
html body.xan-font-clarity-v189 :where(.xan-tools-shell,.xan-map-filters-v151){background:#FFFFFF!important}
html body.xan-font-clarity-v189.post-type-archive-xan_project,
html body.xan-font-clarity-v189.tax-xan_project_type,
html body.xan-font-clarity-v189.tax-xan_project_location{background:#FFFFFF!important}
html body.xan-font-clarity-v189 .xan-listing-page-v133 :where(.xan-project-hero-v120,.xan-project-hero-v132,.xan-section){background:#FFFFFF!important}

/* Dark surface text contract. The explicit surface list prevents accidental global inversion. */
html body.xan-font-clarity-v189 :is(
  .xan-cta-v105 .xan-cta-box,
  .xan-cta-v112 .xan-cta-box,
  .xan-cta-v113 .xan-cta-box,
  .xan-cta-card,
  .xan-final-cta-card-v116,
  .xan-final-cta-card-v118,
  .xan-final-cta-card-v119,
  .xan-final-cta-card-v122,
  .xan-single-cta-v124,
  .xan-single-end-cta-v127,
  .xan-inner-video-hero-v118,
  .xan-project-hero-card-v138,
  .xan-project-summary-panel-v143,
  .xan-project-summary-panel-v145,
  .xan-office-card,
  .xan-mobile-dock,
  .xan-compare-tray-v164,
  .xan-map-sidebar-head-v151,
  .xan-map-resultbar-v151
) :where(h1,h2,h3,h4,h5,h6,p,small,span,strong,b,label,li,em){
  color:#FFFFFF!important;
  opacity:1!important;
  filter:none!important;
}
html body.xan-font-clarity-v189.xan-home .xan-hero :where(h1,h2,h3,h4,h5,h6,p,small,span,strong,b,label,li,em){
  color:#FFFFFF!important;
  opacity:1!important;
}
html body.xan-font-clarity-v189 :is(.xan-mobile-dock,.xan-map-resultbar-v151) :where(a,button){
  color:#FFFFFF!important;
}
html body.xan-font-clarity-v189 .xan-compare-tray-v164 .xan-compare-tray-actions .is-primary{color:#FFFFFF!important}
html body.xan-font-clarity-v189 .xan-compare-tray-v164 .xan-compare-tray-actions button:not(.is-primary),
html body.xan-font-clarity-v189 .xan-compare-tray-v164 .xan-compare-chip button{color:#055970!important;background:#FFFFFF!important}
html body.xan-font-clarity-v189 :is(
  .xan-map-stats-v151 button.is-active,
  .xan-map-toolbar-v151 button.is-active,
  .xan-map-nearby-radius-v182 button.is-active,
  .xan-map-nearby-counts-v182 button.is-active,
  .xan-project-tool-btn[aria-pressed="true"],
  .xan-favorite-filter-v164 button.is-active
){
  color:#FFFFFF!important;
}
/* White controls living inside dark surfaces keep dark petrol text. */
html body.xan-font-clarity-v189 :is(
  .xan-cta-v105 .xan-cta-box,
  .xan-cta-v112 .xan-cta-box,
  .xan-cta-v113 .xan-cta-box,
  .xan-cta-card,
  .xan-final-cta-card-v116,
  .xan-final-cta-card-v118,
  .xan-final-cta-card-v119,
  .xan-final-cta-card-v122,
  .xan-single-cta-v124,
  .xan-single-end-cta-v127
) :where(.xan-btn-light,.xan-btn-outline,.xan-btn-secondary){
  color:#055970!important;
}
@media(min-width:761px){
  html body.xan-font-clarity-v189 .xan-project-teaser-v113 .xan-project-teaser-card :where(h1,h2,h3,h4,h5,h6,p,small,span,strong,label,li,em){
    color:#FFFFFF!important;
  }
  html body.xan-font-clarity-v189 .xan-project-teaser-v113 .xan-project-teaser-copy>b{
    color:#055970!important;
  }
}
@media(max-width:760px){
  html body.xan-font-clarity-v189 .xan-project-teaser-v113 .xan-project-teaser-card :where(h1,h2,h3,h4,h5,h6,p,small,span,strong,b,label,li,em){
    color:var(--xan-type-primary)!important;
  }
}

/* Map open-surface ink inherits the same system standard. */
html body.xan-font-clarity-v189 .xan-map-page-v152{--map-ink:#0B252D;--map-muted:#1B3941;--map-soft:#FFFFFF}
html body.xan-font-clarity-v189 :is(.xan-map-marker-v151,.xan-map-marker-v163,.xan-map-cluster-v152){color:#FFFFFF!important}

html body.xan-font-clarity-v189 .xan-map-resultbar-v151 button:hover,
html body.xan-font-clarity-v189 .xan-map-resultbar-v151 button:focus-visible{color:#055970!important;background:#FFFFFF!important}


/* ===== SOURCE: text-contrast-fix-v111.css ===== */
/* XAN Office v1.1.01 — scoped text visibility & contrast hotfix
   Purpose: prevent dark-text regressions on dark metric cards and ensure
   project detail top action labels are always visible. */

/* Consultant / office directory hero metric cards must keep white text on brand surface. */
.xan-office-page .xan-network-hero-metrics-v177 > div,
.xan-consultant-page .xan-network-hero-metrics-v177 > div{
  background:#055970!important;
  color:#FFFFFF!important;
  border:1px solid rgba(5,89,112,.14)!important;
}
.xan-office-page .xan-network-hero-metrics-v177 > div *,
.xan-consultant-page .xan-network-hero-metrics-v177 > div *{
  color:#FFFFFF!important;
  opacity:1!important;
  text-shadow:none!important;
  filter:none!important;
}
.xan-office-page .xan-network-hero-metrics-v177 > div span,
.xan-consultant-page .xan-network-hero-metrics-v177 > div span{
  color:rgba(255,255,255,.90)!important;
}

/* Directory primary CTA must preserve white text on teal background. */
.xan-office-page .xan-network-filters-v177 .xan-btn.xan-btn-primary,
.xan-consultant-page .xan-network-filters-v177 .xan-btn.xan-btn-primary{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#055970!important;
  border:1px solid #055970!important;
  color:#FFFFFF!important;
}
.xan-office-page .xan-network-filters-v177 .xan-btn.xan-btn-primary *,
.xan-consultant-page .xan-network-filters-v177 .xan-btn.xan-btn-primary *{
  color:#FFFFFF!important;
  opacity:1!important;
}

/* Project detail top summary action boxes: always show icon + label together. */
.single-xan_project .xan-project-summary-actions-v145 a{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:7px!important;
  overflow:visible!important;
}
.single-xan_project .xan-project-summary-actions-v145 a > .xan-icon,
.single-xan_project .xan-project-summary-actions-v145 a > svg{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
}
.single-xan_project .xan-project-summary-actions-v145 a > span{
  display:inline-block!important;
  visibility:visible!important;
  opacity:1!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  color:#055970!important;
  font-size:inherit!important;
  line-height:1.18!important;
  font-weight:500!important;
}

/* Keep buttons readable on tighter widths too. */
@media (max-width: 640px){
  .single-xan_project .xan-project-summary-actions-v145 a{
    min-height:40px!important;
    padding:6px 8px!important;
  }
  .single-xan_project .xan-project-summary-actions-v145 a > span{
    font-size:9.8px!important;
  }
}


/* ===== SOURCE: ui-polish-v112.css ===== */
/* XAN Office v1.1.02 — UI hierarchy, empty-state and mobile summary polish.
   Scope: project detail top summary, office/consultant directories and listing cards only. */

/* Directory hero: metrics should feel intentional, not like error boxes. */
.xan-office-page .xan-network-hero-v177,
.xan-consultant-page .xan-network-hero-v177{
  padding:38px 0 28px!important;
}
.xan-office-page .xan-network-hero-grid-v177,
.xan-consultant-page .xan-network-hero-grid-v177{
  grid-template-columns:minmax(0,1fr) minmax(460px,.82fr)!important;
  align-items:center!important;
  gap:34px!important;
}
.xan-office-page .xan-network-hero-metrics-v177,
.xan-consultant-page .xan-network-hero-metrics-v177{
  align-self:center!important;
  gap:12px!important;
}
.xan-office-page .xan-network-hero-metrics-v177>div,
.xan-consultant-page .xan-network-hero-metrics-v177>div{
  min-height:96px!important;
  padding:18px 18px 16px!important;
  justify-content:center!important;
  border-radius:18px!important;
  box-shadow:0 16px 38px rgba(4,31,64,.10)!important;
}
.xan-office-page .xan-network-hero-metrics-v177 strong,
.xan-consultant-page .xan-network-hero-metrics-v177 strong{
  display:block!important;
  margin:0 0 6px!important;
  font-size:clamp(24px,2.4vw,34px)!important;
  line-height:1!important;
  font-weight:500!important;
  letter-spacing:-.03em!important;
  text-align:left!important;
}
.xan-office-page .xan-network-hero-metrics-v177 span,
.xan-consultant-page .xan-network-hero-metrics-v177 span{
  display:block!important;
  margin:0!important;
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:400!important;
  text-align:left!important;
}

/* Filter row alignment and button rhythm. */
.xan-office-page .xan-network-filters-v177,
.xan-consultant-page .xan-network-filters-v177{
  align-items:end!important;
  gap:13px!important;
}
.xan-office-page .xan-network-filters-v177 .xan-btn,
.xan-consultant-page .xan-network-filters-v177 .xan-btn{
  min-height:50px!important;
  border-radius:12px!important;
  padding:0 18px!important;
  line-height:1.2!important;
}

/* Office and consultant cards: consistent hierarchy. */
.xan-network-office-card-v177 h2,
.xan-network-consultant-card-v177 h3{
  margin-top:8px!important;
  margin-bottom:10px!important;
  color:#041F40!important;
  font-weight:500!important;
  letter-spacing:-.02em!important;
}
.xan-network-office-card-v177 h2 a,
.xan-network-consultant-card-v177 h3 a{
  color:#041F40!important;
  text-decoration:none!important;
}
.xan-network-consultant-card-v177 .xan-consultant-role,
.xan-network-office-place-v177,
.xan-network-office-manager-v177 small{
  color:#055970!important;
  font-weight:500!important;
}
.xan-network-consultant-card-v177 .xan-consultant-card-body>p,
.xan-network-office-manager-v177 strong,
.xan-network-office-stats-v177 span{
  color:#13364C!important;
  opacity:1!important;
}
.xan-network-consultant-card-v177 .xan-consultant-card-body>p{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  margin:7px 0!important;
  line-height:1.45!important;
}
.xan-network-consultant-card-v177 .xan-consultant-card-body>p .xan-icon,
.xan-network-consultant-card-v177 .xan-consultant-card-body>p svg{
  width:15px!important;
  height:15px!important;
  flex:0 0 15px!important;
  color:#055970!important;
  stroke:currentColor!important;
}
.xan-network-office-actions-v177 .xan-btn,
.xan-network-consultant-card-v177 .xan-consultant-actions .xan-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  min-height:44px!important;
  border-radius:12px!important;
  font-size:12px!important;
  line-height:1.2!important;
}
.xan-network-office-actions-v177 .xan-btn-primary,
.xan-network-consultant-card-v177 .xan-consultant-actions .xan-btn-primary{
  color:#FFFFFF!important;
  background:#055970!important;
  border-color:#055970!important;
}

/* Project listing/card hierarchy without touching map or portal. */
.xan-project-page .xan-list-card-body h2,
.xan-project-page .xan-project-card h3,
.xan-project-page .xan-list-card-price-v133 strong{
  color:#041F40!important;
  font-weight:500!important;
  letter-spacing:-.018em!important;
}
.xan-project-page .xan-list-card-body p,
.xan-project-page .xan-specs-v133 span,
.xan-project-page .xan-card-meta{
  color:#13364C!important;
  opacity:1!important;
}

/* Project detail top area: action labels + summary cards should not look empty. */
.single-xan_project .xan-project-summary-actions-v145{
  gap:10px!important;
}
.single-xan_project .xan-project-summary-actions-v145 a{
  min-height:46px!important;
  border-radius:12px!important;
  padding:6px 12px!important;
  box-shadow:0 8px 20px rgba(4,31,64,.05)!important;
}
.single-xan_project .xan-project-summary-actions-v145 a>span{
  max-width:100%!important;
}
.single-xan_project .xan-project-summary-cards-v145>div{
  min-height:78px!important;
  border-radius:14px!important;
  overflow:hidden!important;
}
.single-xan_project .xan-project-summary-cards-v145 span{
  color:#516174!important;
  font-weight:400!important;
}
.single-xan_project .xan-project-summary-cards-v145 strong{
  color:#041F40!important;
  font-weight:500!important;
  overflow-wrap:anywhere!important;
}

/* Professional empty states. */
.xan-network-empty-v112{
  min-height:178px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  padding:34px 28px!important;
  border:1px solid #DDE6EA!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,#FFFFFF 0%,#F8FBFC 100%)!important;
  box-shadow:0 14px 34px rgba(4,31,64,.045)!important;
  text-align:center!important;
}
.xan-network-empty-v112 h2{
  margin:0!important;
  max-width:760px!important;
  color:#041F40!important;
  font-size:clamp(22px,2.4vw,30px)!important;
  line-height:1.18!important;
  font-weight:500!important;
  letter-spacing:-.025em!important;
}
.xan-network-empty-v112 p{
  margin:0!important;
  max-width:760px!important;
  color:#13364C!important;
  font-size:14px!important;
  line-height:1.65!important;
}
.xan-network-empty-v112 .xan-btn{
  margin-top:6px!important;
  color:#FFFFFF!important;
}
.xan-network-empty-v112.is-empty-dataset{
  border-style:dashed!important;
}

@media (max-width:1180px){
  .xan-office-page .xan-network-hero-grid-v177,
  .xan-consultant-page .xan-network-hero-grid-v177{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
  .xan-office-page .xan-network-hero-metrics-v177,
  .xan-consultant-page .xan-network-hero-metrics-v177{
    width:100%!important;
    max-width:none!important;
  }
}
@media (max-width:760px){
  .xan-office-page .xan-network-hero-v177,
  .xan-consultant-page .xan-network-hero-v177{
    padding:24px 0 18px!important;
  }
  .xan-office-page .xan-network-hero-v177 h1,
  .xan-consultant-page .xan-network-hero-v177 h1{
    font-size:34px!important;
    line-height:1.08!important;
    letter-spacing:-.035em!important;
  }
  .xan-office-page .xan-network-hero-metrics-v177,
  .xan-consultant-page .xan-network-hero-metrics-v177{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .xan-office-page .xan-network-hero-metrics-v177>div,
  .xan-consultant-page .xan-network-hero-metrics-v177>div{
    min-height:76px!important;
    padding:13px!important;
    border-radius:15px!important;
  }
  .xan-office-page .xan-network-hero-metrics-v177 strong,
  .xan-consultant-page .xan-network-hero-metrics-v177 strong{
    font-size:24px!important;
  }
  .xan-office-page .xan-network-filters-v177,
  .xan-consultant-page .xan-network-filters-v177{
    gap:10px!important;
  }
  .single-xan_project .xan-project-summary-actions-v145{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .single-xan_project .xan-project-summary-cards-v145{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
}
@media (max-width:480px){
  .xan-office-page .xan-network-hero-metrics-v177,
  .xan-consultant-page .xan-network-hero-metrics-v177{
    grid-template-columns:1fr 1fr!important;
  }
  .xan-office-page .xan-network-hero-metrics-v177 span,
  .xan-consultant-page .xan-network-hero-metrics-v177 span{
    font-size:10.5px!important;
  }
  .single-xan_project .xan-project-summary-actions-v145 a{
    min-height:42px!important;
    padding:6px 7px!important;
    gap:5px!important;
  }
  .single-xan_project .xan-project-summary-actions-v145 a>span{
    font-size:9.5px!important;
    line-height:1.12!important;
  }
  .single-xan_project .xan-project-summary-cards-v145>div{
    min-height:68px!important;
    padding:8px!important;
    grid-template-columns:26px minmax(0,1fr)!important;
  }
  .xan-network-empty-v112{
    min-height:150px!important;
    padding:26px 16px!important;
    border-radius:18px!important;
  }
  .xan-network-empty-v112 h2{
    font-size:21px!important;
  }
}


/* ===== SOURCE: surface-contrast-v1115.css ===== */
/* XAN Office v1.1.15 — scoped surface contrast contract */

/* Dark feature metrics: white typography is mandatory. */
.xan-showcase-metric-v173{
  background:#055970!important;
  border-color:rgba(255,255,255,.14)!important;
  color:#FFFFFF!important;
}
.xan-showcase-metric-v173 :where(h1,h2,h3,h4,h5,h6,strong,b,span,label,p,em){
  color:#FFFFFF!important;
  opacity:1!important;
  text-shadow:none!important;
  filter:none!important;
}
.xan-showcase-metric-v173 small{
  color:rgba(255,255,255,.88)!important;
  opacity:1!important;
}

/* Other known dark informational surfaces. */
.xan-network-hero-metrics-v177 > div,
.xan-article-ecosystem-embed-v1103,
.xan-project-summary-panel-v145,
.xan-project-summary-panel-v143{
  color:#FFFFFF!important;
}
.xan-network-hero-metrics-v177 > div :where(strong,b,span,small,p),
.xan-article-ecosystem-embed-v1103 :where(h1,h2,h3,h4,strong,b,span,small,p),
.xan-project-summary-panel-v145 :where(h1,h2,h3,h4,strong,b,span,small,p),
.xan-project-summary-panel-v143 :where(h1,h2,h3,h4,strong,b,span,small,p){
  color:#FFFFFF!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Primary buttons keep the brand surface / white text contract. */
.xan-btn.xan-btn-primary,
a.xan-btn.xan-btn-primary,
button.xan-btn.xan-btn-primary{
  background:#055970!important;
  border-color:#055970!important;
  color:#FFFFFF!important;
}
.xan-btn.xan-btn-primary :where(span,strong,b,small){color:#FFFFFF!important;}
.xan-btn.xan-btn-primary:hover{background:#13364C!important;border-color:#13364C!important;}

